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> 39 ServerListModel::ServerListModel(
ServerList* parent)
40 : QStandardItemModel(parent),
43 setSortRole(SLDT_SORT);
48 QList<QStandardItem*> columns = ServerListColumns::generateListOfCells();
54 QModelIndex index = indexFromItem(columns[0]);
56 if (parentHandler->getMainWindow()->isActiveWindow())
58 rowHandler.setCountryFlag();
61 return rowHandler.updateServer();
68 for (
int i = 0; i < rowCount(); ++i)
70 ServerCPtr savedServ = serverFromList(i);
71 if (server == savedServ)
82 ServerPtr server = serverFromList(row);
87 void ServerListModel::redrawAll()
89 int slotstyle = gConfig.doomseeker.slotStyle;
92 for (
int i = 0; i < rowCount(); ++i)
98 QList<ServerPtr> ServerListModel::customServers()
const 100 QList<ServerPtr> servers;
101 for (
int i = 0; i < rowCount(); ++i)
103 ServerPtr server = serverFromList(i);
104 if (server->isCustom())
112 QList<ServerPtr> ServerListModel::nonSpecialServers()
const 114 QList<ServerPtr> servers;
115 for (
int i = 0; i < rowCount(); ++i)
117 ServerPtr server = serverFromList(i);
118 if (!server->isCustom() && !server->isLan())
126 QList<ServerPtr> ServerListModel::servers()
const 128 QList<ServerPtr> servers;
129 for (
int i = 0; i < rowCount(); ++i)
131 servers << serverFromList(i);
136 QList<ServerPtr> ServerListModel::serversForPlugin(
const EnginePlugin *plugin)
const 138 QList<ServerPtr> servers;
139 for (
int i = 0; i < rowCount(); ++i)
141 ServerPtr server = serverFromList(i);
142 if (server->plugin() == plugin)
150 void ServerListModel::removeServer(
const ServerPtr &server)
152 int index = findServerOnTheList(server.data());
159 ServerPtr ServerListModel::serverFromList(
int rowIndex)
const 161 return ServerListRowHandler::serverFromList(
this, rowIndex);
164 ServerPtr ServerListModel::serverFromList(
const QModelIndex& index)
const 166 return ServerListRowHandler::serverFromList(
this, index.row());
171 QStandardItem* qstdItem = item(row, IDHiddenGroup);
175 void ServerListModel::setRefreshing(ServerPtr server)
177 int rowIndex = findServerOnTheList(server.data());
181 rowHandler.setRefreshing();
185 void ServerListModel::prepareHeaders()
187 setHorizontalHeaderLabels(ServerListColumns::generateColumnHeaderLabels());
193 rowHandler.updateServer();
198 QVariant ServerListModel::columnSortData(
int row,
int column)
200 QStandardItem* it = item(row, column);
201 return it->data(SLDT_SORT);
206 ServerPtr server = serverFromList(row);
208 QStandardItem* itm = item(row, IDServerName);
210 if (force || itm->icon().isNull())
212 rowHandler.setCountryFlag();
static void loadImages(int style)
int addServer(ServerPtr server)
A representation of a server for a given game.
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)