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> 
   36 using namespace ServerListColumnId;
 
   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);
 
  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)
 
  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, COL_META);
 
  179 void ServerListModel::setRefreshing(ServerPtr server)
 
  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();