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/serverlist.h"
29 #include "configuration/doomseekerconfig.h"
30 #include "serverapi/server.h"
32 #include <QItemDelegate>
35 using namespace ServerListColumnId;
40 : QStandardItemModel(parent),
43 setSortRole(SLDT_SORT);
48 QList<QStandardItem*> columns;
49 ServerListColumns::generateListOfCells(columns);
56 QModelIndex index = indexFromItem(columns[0]);
58 if (parentHandler->getMainWindow()->isActiveWindow())
60 rowHandler.setCountryFlag();
63 return rowHandler.updateServer(response);
66 void ServerListModel::destroyRows()
68 int rows = rowCount();
77 for (
int i = 0; i < rowCount(); ++i)
79 ServerCPtr savedServ = serverFromList(i);
80 if (server == savedServ)
91 ServerPtr server = serverFromList(row);
96 void ServerListModel::redrawAll()
98 int slotstyle = gConfig.doomseeker.slotStyle;
101 for (
int i = 0; i < rowCount(); ++i)
107 void ServerListModel::removeCustomServers()
109 QList<ServerPtr> serversToRemove;
110 for (
int i = 0; i < rowCount(); ++i)
112 ServerPtr server = serverFromList(i);
113 if (server->isCustom())
115 serversToRemove.append(server);
119 foreach (ServerPtr server, serversToRemove)
129 ServerPtr ServerListModel::serverFromList(
int rowIndex)
131 return ServerListRowHandler::serverFromList(
this, rowIndex);
134 ServerPtr ServerListModel::serverFromList(
const QModelIndex& index)
136 return ServerListRowHandler::serverFromList(
this, index.row());
141 QStandardItem* qstdItem = item(row, IDHiddenGroup);
145 void ServerListModel::setRefreshing(ServerPtr server)
151 rowHandler.setRefreshing();
155 void ServerListModel::prepareHeaders()
158 ServerListColumns::generateColumnHeaderLabels(labels);
159 setHorizontalHeaderLabels(labels);
165 rowHandler.updateServer(response);
170 QVariant ServerListModel::columnSortData(
int row,
int column)
172 QStandardItem* it = item(row, column);
173 return it->data(SLDT_SORT);
178 ServerPtr server = serverFromList(row);
180 QStandardItem* itm = item(row, IDServerName);
182 if (force || itm->icon().isNull())
184 rowHandler.setCountryFlag();
static void loadImages(int style)
A representation of a server for a given game.
int updateServer(int row, ServerPtr server, int response)
int addServer(ServerPtr server, int response)
int findServerOnTheList(const Server *server)
Finds index of the row where server is contained.
void updateFlag(int row, bool force=true)