23 #include "gui/models/serverlistmodel.h" 24 #include "gui/models/serverlistcolumn.h" 25 #include "gui/models/serverlistrowhandler.h" 26 #include "gui/helpers/playersdiagram.h" 27 #include "gui/widgets/serverlistview.h" 28 #include "gui/mainwindow.h" 29 #include "gui/serverlist.h" 30 #include "configuration/doomseekerconfig.h" 31 #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())
59 rowHandler.setCountryFlag();
62 return rowHandler.updateServer();
68 for (
int i = 0; i < rowCount(); ++i)
70 ServerPtr serverOnList = serverFromList(i);
71 CustomServerInfo serverOnListInfo = CustomServerInfo::fromServer(serverOnList.data());
82 for (
int i = 0; i < rowCount(); ++i)
84 ServerCPtr serverOnList = serverFromList(i);
85 if (server == serverOnList)
96 ServerPtr server = serverFromList(row);
103 int row = findServerOnTheList(server);
108 void ServerListModel::redrawAll()
112 for (
int i = 0; i < rowCount(); ++i)
118 QList<ServerPtr> ServerListModel::customServers()
const 120 QList<ServerPtr> servers;
121 for (
int i = 0; i < rowCount(); ++i)
123 ServerPtr server = serverFromList(i);
124 if (server->isCustom())
132 QList<ServerPtr> ServerListModel::nonSpecialServers()
const 134 QList<ServerPtr> servers;
135 for (
int i = 0; i < rowCount(); ++i)
137 ServerPtr server = serverFromList(i);
138 if (!server->isCustom() && !server->isLan())
146 QList<ServerPtr> ServerListModel::servers()
const 148 QList<ServerPtr> servers;
149 for (
int i = 0; i < rowCount(); ++i)
151 servers << serverFromList(i);
156 QList<ServerPtr> ServerListModel::serversForPlugin(
const EnginePlugin *plugin)
const 158 QList<ServerPtr> servers;
159 for (
int i = 0; i < rowCount(); ++i)
161 ServerPtr server = serverFromList(i);
162 if (server->plugin() == plugin)
170 void ServerListModel::removeServer(
const ServerPtr &server)
172 int index = findServerOnTheList(server.data());
179 ServerPtr ServerListModel::serverFromList(
int rowIndex)
const 181 return ServerListRowHandler::serverFromList(
this, rowIndex);
184 ServerPtr ServerListModel::serverFromList(
const QModelIndex& index)
const 186 return ServerListRowHandler::serverFromList(
this, index.row());
191 QStandardItem* qstdItem = item(row, IDHiddenGroup);
195 void ServerListModel::setRefreshing(ServerPtr server)
197 int rowIndex = findServerOnTheList(server.data());
201 rowHandler.setRefreshing();
205 void ServerListModel::prepareHeaders()
207 setHorizontalHeaderLabels(ServerListColumns::generateColumnHeaderLabels());
213 rowHandler.updateServer();
218 QVariant ServerListModel::columnSortData(
int row,
int column)
220 QStandardItem* it = item(row, column);
221 return it->data(SLDT_SORT);
226 ServerPtr server = serverFromList(row);
228 QStandardItem* itm = item(row, IDServerName);
230 if (force || itm->icon().isNull())
232 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)