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 <QItemDelegate> 40 ServerListModel::ServerListModel(
ServerList *parent)
41 : QStandardItemModel(parent),
44 setSortRole(SLDT_SORT);
49 QList<QStandardItem *> columns = ServerListColumns::generateListOfCells();
55 QModelIndex index = indexFromItem(columns[0]);
57 if (parentHandler->getMainWindow()->isEffectivelyActiveWindow())
58 rowHandler.setCountryFlag();
60 return rowHandler.updateServer();
66 for (
int i = 0; i < rowCount(); ++i)
68 ServerPtr serverOnList = serverFromList(i);
69 CustomServerInfo serverOnListInfo = CustomServerInfo::fromServer(serverOnList.data());
78 if (server !=
nullptr)
80 for (
int i = 0; i < rowCount(); ++i)
82 ServerCPtr serverOnList = serverFromList(i);
83 if (server == serverOnList)
92 ServerPtr server = serverFromList(row);
99 int row = findServerOnTheList(server);
104 void ServerListModel::redrawAll()
108 for (
int i = 0; i < rowCount(); ++i)
112 QList<ServerPtr> ServerListModel::customServers()
const 114 QList<ServerPtr> servers;
115 for (
int i = 0; i < rowCount(); ++i)
117 ServerPtr server = serverFromList(i);
118 if (server->isCustom())
124 QList<ServerPtr> ServerListModel::nonSpecialServers()
const 126 QList<ServerPtr> servers;
127 for (
int i = 0; i < rowCount(); ++i)
129 ServerPtr server = serverFromList(i);
130 if (!server->isCustom() && !server->isLan())
136 QList<ServerPtr> ServerListModel::servers()
const 138 QList<ServerPtr> servers;
139 for (
int i = 0; i < rowCount(); ++i)
140 servers << serverFromList(i);
144 QList<ServerPtr> ServerListModel::serversForPlugin(
const EnginePlugin *plugin)
const 146 QList<ServerPtr> servers;
147 for (
int i = 0; i < rowCount(); ++i)
149 ServerPtr server = serverFromList(i);
150 if (server->plugin() == plugin)
156 void ServerListModel::removeServer(
const ServerPtr &server)
158 int index = findServerOnTheList(server.data());
163 ServerPtr ServerListModel::serverFromList(
int rowIndex)
const 165 return ServerListRowHandler::serverFromList(
this, rowIndex);
168 ServerPtr ServerListModel::serverFromList(
const QModelIndex &index)
const 170 return ServerListRowHandler::serverFromList(
this, index.row());
175 QStandardItem *qstdItem = item(row, IDHiddenGroup);
179 void ServerListModel::setRefreshing(ServerPtr server)
181 int rowIndex = findServerOnTheList(server.data());
185 rowHandler.setRefreshing();
189 void ServerListModel::prepareHeaders()
191 setHorizontalHeaderLabels(ServerListColumns::generateColumnHeaderLabels());
197 rowHandler.updateServer();
202 QVariant ServerListModel::columnSortData(
int row,
int column)
204 QStandardItem *it = item(row, column);
205 return it->data(SLDT_SORT);
210 ServerPtr server = serverFromList(row);
212 QStandardItem *itm = item(row, IDServerName);
214 if (force || itm->icon().isNull())
215 rowHandler.setCountryFlag();
static void loadImages(const QString &style)
int addServer(ServerPtr server)
A representation of a server for a given game.
bool isSameServer(const CustomServerInfo &other) const
int updateServer(int row, ServerPtr server)
int findServerOnTheList(const Server *server)
Finds index of the row where server is contained.
void updateFlag(int row, bool force=true)
ServerPtr findSameServer(const Server *server)