QTfrontend/pages.cpp
changeset 3865 0b1c426b035f
parent 3864 cbd37f91d9a2
child 3867 5c432e64f5ae
equal deleted inserted replaced
3864:cbd37f91d9a2 3865:0b1c426b035f
  1086     roomsList = new QTableWidget(this);
  1086     roomsList = new QTableWidget(this);
  1087     roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
  1087     roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
  1088     roomsList->verticalHeader()->setVisible(false);
  1088     roomsList->verticalHeader()->setVisible(false);
  1089     roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
  1089     roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
  1090     roomsList->setAlternatingRowColors(true);
  1090     roomsList->setAlternatingRowColors(true);
       
  1091     roomsList->setShowGrid(false);
       
  1092     roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
  1091     pageLayout->addWidget(roomsList, 1, 0, 3, 1);
  1093     pageLayout->addWidget(roomsList, 1, 0, 3, 1);
  1092     pageLayout->setRowStretch(2, 320);
  1094     pageLayout->setRowStretch(2, 320);
  1093     
  1095     
  1094     QHBoxLayout * filterLayout = new QHBoxLayout();
  1096     QHBoxLayout * filterLayout = new QHBoxLayout();
  1095     
  1097     
  1172     BtnAdmin->setVisible(flag);
  1174     BtnAdmin->setVisible(flag);
  1173 }
  1175 }
  1174 
  1176 
  1175 void PageRoomsList::setRoomsList(const QStringList & list)
  1177 void PageRoomsList::setRoomsList(const QStringList & list)
  1176 {
  1178 {
       
  1179     QBrush red(QColor(255, 0, 0));
       
  1180     QBrush orange(QColor(127, 127, 0));
       
  1181     QBrush yellow(QColor(255, 255, 0));
       
  1182     QBrush green(QColor(0, 255, 0));
       
  1183 
  1177     listFromServer = list;
  1184     listFromServer = list;
  1178     
  1185     
  1179     QString selection = "";
  1186     QString selection = "";
  1180     
  1187     
  1181     if(QTableWidgetItem *item = roomsList->item(roomsList->currentRow(), 0))
  1188     if(QTableWidgetItem *item = roomsList->item(roomsList->currentRow(), 0))
  1213 
  1220 
  1214     roomsList->setRowCount(list.size() / 8);
  1221     roomsList->setRowCount(list.size() / 8);
  1215     for(int i = 0, r = 0; i < list.size(); i += 8, r++)
  1222     for(int i = 0, r = 0; i < list.size(); i += 8, r++)
  1216     {
  1223     {
  1217         // if we are joining a game
  1224         // if we are joining a game
       
  1225         // TODO: Should NOT be done here
  1218         if (gameInLobby) {
  1226         if (gameInLobby) {
  1219             if (gameInLobbyName == list[i + 1]) {
  1227             if (gameInLobbyName == list[i + 1]) {
  1220                 gameCanBeJoined = list[i].compare("True");
  1228                 gameCanBeJoined = list[i].compare("True");
  1221             }
  1229             }
  1222         }
  1230         }
  1271 
  1279 
  1272         item = new QTableWidgetItem(list[i + 3]); // number of teams
  1280         item = new QTableWidgetItem(list[i + 3]); // number of teams
  1273         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1281         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1274         item->setTextAlignment(Qt::AlignCenter);
  1282         item->setTextAlignment(Qt::AlignCenter);
  1275         item->setToolTip(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3]));
  1283         item->setToolTip(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3]));
       
  1284         //Should we highlight "full" games? Might get misinterpreted
       
  1285         //if(list[i + 3].toInt() >= cMaxTeams)
       
  1286         //    item->setForeground(red);
  1276         roomsList->setItem(r, 2, item);
  1287         roomsList->setItem(r, 2, item);
  1277 
  1288 
  1278         item = new QTableWidgetItem(list[i + 4].left(15)); // name of host
  1289         item = new QTableWidgetItem(list[i + 4].left(15)); // name of host
  1279         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1290         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1280         item->setToolTip(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4]));
  1291         item->setToolTip(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4]));
  1281         roomsList->setItem(r, 3, item);
  1292         roomsList->setItem(r, 3, item);
  1282 
  1293 
  1283         if(list[i + 5] == "+rnd+")
  1294         if(list[i + 5] == "+rnd+")
       
  1295         {
  1284             item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
  1296             item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
       
  1297             item->setIcon(QIcon(":/res/mapRandom.png"));
       
  1298         }
  1285         else if (list[i+5] == "+maze+")
  1299         else if (list[i+5] == "+maze+")
       
  1300         {
  1286             item = new QTableWidgetItem(tr("Random Maze"));
  1301             item = new QTableWidgetItem(tr("Random Maze"));
       
  1302             item->setIcon(QIcon(":/res/mapMaze.png"));
       
  1303         }
  1287         else
  1304         else
  1288         {
  1305         {
  1289             item = new QTableWidgetItem(list[i + 5]); // selected map
  1306             item = new QTableWidgetItem(list[i + 5]); // selected map
  1290             
  1307             
  1291             // check to see if we've got this map
  1308             // check to see if we've got this map
  1292             // not perfect but a start
  1309             // not perfect but a start
  1293             if(!mapList->contains(list[i + 5]))
  1310             if(!mapList->contains(list[i + 5]))
  1294                 item->setForeground(QBrush(QColor(255, 0, 0)));
  1311             {
       
  1312                 item->setForeground(red);
       
  1313                 item->setIcon(QIcon(":/res/mapMissing.png"));
       
  1314             }
       
  1315             else
       
  1316             {
       
  1317                 // todo: mission icon?
       
  1318                 item->setIcon(QIcon(":/res/mapCustom.png"));
       
  1319             }
  1295         }
  1320         }
  1296         
  1321         
  1297         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1322         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1298         item->setToolTip(tr("Games may be played on precreated or randomized maps."));
  1323         item->setToolTip(tr("Games may be played on precreated or randomized maps."));
  1299         roomsList->setItem(r, 4, item);
  1324         roomsList->setItem(r, 4, item);
  1307         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1332         item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
  1308         item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
  1333         item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
  1309         roomsList->setItem(r, 6, item);
  1334         roomsList->setItem(r, 6, item);
  1310 
  1335 
  1311         if(!list[i + 1].compare(selection) && !selection.isEmpty())
  1336         if(!list[i + 1].compare(selection) && !selection.isEmpty())
  1312             roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r,0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
  1337             roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
  1313     }
  1338     }
  1314    roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
  1339 
  1315    roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
  1340     roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
  1316    roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
  1341     roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
  1317    roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
  1342     roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
  1318    roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
  1343     roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
  1319    roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
  1344     roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
  1320    roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
  1345     roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
  1321 
  1346     roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
       
  1347 
       
  1348     // TODO: Should NOT be done here
  1322     if (gameInLobby) {
  1349     if (gameInLobby) {
  1323         gameInLobby = false;
  1350         gameInLobby = false;
  1324         if (gameCanBeJoined) {
  1351         if (gameCanBeJoined) {
  1325             emit askForJoinRoom(gameInLobbyName);
  1352             emit askForJoinRoom(gameInLobbyName);
  1326         } else {
  1353         } else {