23 #include "configuration/doomseekerconfig.h"
24 #include "gui/helpers/playersdiagram.h"
25 #include "gui/mainwindow.h"
26 #include "gui/models/serverlistcolumn.h"
27 #include "gui/models/serverlistmodel.h"
28 #include "gui/models/serverlistrowhandler.h"
29 #include "gui/serverlist.h"
30 #include "gui/widgets/serverlistview.h"
32 #include "serverapi/server.h"
33 #include "serverapi/serverid.h"
34 #include <QItemDelegate>
37 using namespace ServerListColumnId;
41 ServerListModel::ServerListModel(
ServerList *parent)
42 : QStandardItemModel(parent),
45 setSortRole(SLDT_SORT);
50 QList<QStandardItem *> columns = ServerListColumns::generateListOfCells();
56 QModelIndex index = indexFromItem(columns[0]);
58 if (parentHandler->getMainWindow()->isEffectivelyActiveWindow())
59 rowHandler.setCountryFlag();
61 return rowHandler.updateServer();
67 for (
int i = 0; i < rowCount(); ++i)
69 ServerPtr serverOnList = serverFromList(i);
70 const ServerRuntimeId serverOnListInfo = ServerRuntimeId::fromServer(serverOnList.data());
71 if (serverOnListInfo == serverInfo)
79 if (server !=
nullptr)
81 for (
int i = 0; i < rowCount(); ++i)
83 ServerCPtr serverOnList = serverFromList(i);
84 if (server == serverOnList)
93 ServerPtr server = serverFromList(row);
105 void ServerListModel::redrawAll()
109 for (
int i = 0; i < rowCount(); ++i)
113 QList<ServerPtr> ServerListModel::customServers()
const
115 QList<ServerPtr> servers;
116 for (
int i = 0; i < rowCount(); ++i)
118 ServerPtr server = serverFromList(i);
119 if (server->isCustom())
125 QList<ServerPtr> ServerListModel::nonSpecialServers()
const
127 QList<ServerPtr> servers;
128 for (
int i = 0; i < rowCount(); ++i)
130 ServerPtr server = serverFromList(i);
131 if (!server->isCustom() && !server->isLan())
137 QList<ServerPtr> ServerListModel::servers()
const
139 QList<ServerPtr> servers;
140 for (
int i = 0; i < rowCount(); ++i)
141 servers << serverFromList(i);
145 QList<ServerPtr> ServerListModel::serversForPlugin(
const EnginePlugin *plugin)
const
147 QList<ServerPtr> servers;
148 for (
int i = 0; i < rowCount(); ++i)
150 ServerPtr server = serverFromList(i);
151 if (server->plugin() == plugin)
157 void ServerListModel::removeServer(
const ServerPtr &server)
164 ServerPtr ServerListModel::serverFromList(
int rowIndex)
const
166 return ServerListRowHandler::serverFromList(
this, rowIndex);
169 ServerPtr ServerListModel::serverFromList(
const QModelIndex &index)
const
171 return ServerListRowHandler::serverFromList(
this, index.row());
176 QStandardItem *qstdItem = item(row, COL_META);
180 void ServerListModel::setRefreshing(ServerPtr server)
186 rowHandler.setRefreshing();
190 void ServerListModel::prepareHeaders()
192 setHorizontalHeaderLabels(ServerListColumns::generateColumnHeaderLabels());
198 rowHandler.updateServer();
203 QVariant ServerListModel::columnSortData(
int row,
int column)
205 QStandardItem *it = item(row, column);
206 return it->data(SLDT_SORT);
211 ServerPtr server = serverFromList(row);
213 QStandardItem *itm = item(row, IDServerName);
215 if (force || itm->icon().isNull())
216 rowHandler.setCountryFlag();