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 { |