Frontend:
* Removed grid lines from room list
* Added map icons to room list and map selection (for easier identifying; have to be drawn)
* Removed multi row selection from room list
--- a/QTfrontend/hedgewars.qrc Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/hedgewars.qrc Tue Sep 14 18:41:37 2010 +0200
@@ -109,5 +109,10 @@
<file>res/StatsMostSelfDamage.png</file>
<file>res/StatsSelfKilled.png</file>
<file>res/StatsSkipped.png</file>
+ <file>res/mapRandom.png</file>
+ <file>res/mapMaze.png</file>
+ <file>res/mapMissing.png</file>
+ <file>res/mapCustom.png</file>
+ <file>res/mapMission.png</file>
</qresource>
</RCC>
--- a/QTfrontend/hwconsts.cpp.in Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/hwconsts.cpp.in Tue Sep 14 18:41:37 2010 +0200
@@ -30,6 +30,8 @@
QStringList * Themes;
QStringList * mapList;
+int cMaxTeams = 6;
+
QString * cDefaultAmmoStore = new QString(
"939192942219912103223511100120100000021111010101"
"040504054160065554655446477657666666615551010111"
--- a/QTfrontend/hwconsts.h Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/hwconsts.h Tue Sep 14 18:41:37 2010 +0200
@@ -31,6 +31,8 @@
extern QDir * cfgdir;
extern QDir * datadir;
+extern int cMaxTeams;
+
extern QStringList * Themes;
extern QStringList * mapList;
--- a/QTfrontend/main.cpp Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/main.cpp Tue Sep 14 18:41:37 2010 +0200
@@ -180,6 +180,7 @@
"}"
"QTableView {"
"alternate-background-color: #2f213a;"
+ "gridline-color: transparent;"
"}"
"QTabBar::tab {"
--- a/QTfrontend/mapContainer.cpp Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/mapContainer.cpp Tue Sep 14 18:41:37 2010 +0200
@@ -61,8 +61,8 @@
chooseMap = new QComboBox(this);
chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- chooseMap->addItem(QComboBox::tr("generated map..."));
- chooseMap->addItem(QComboBox::tr("generated maze..."));
+ chooseMap->addItem(QIcon(":/res/mapRandom.png"), QComboBox::tr("generated map..."));
+ chooseMap->addItem(QIcon(":/res/mapMaze.png"), QComboBox::tr("generated maze..."));
chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
int missionindex = chooseMap->count();
@@ -92,9 +92,9 @@
mapInfo.push_back(18);
mapInfo.push_back(mapLuaFile.exists());
if(mapLuaFile.exists())
- chooseMap->insertItem(missionindex++, QComboBox::tr("Mission") + ": " + map, mapInfo);
+ chooseMap->insertItem(missionindex++, QIcon(":/res/mapMission.png"), QComboBox::tr("Mission") + ": " + map, mapInfo);
else
- chooseMap->addItem(map, mapInfo);
+ chooseMap->addItem(QIcon(":/res/mapCustom.png"), map, mapInfo);
mapCfgFile.close();
}
}
--- a/QTfrontend/pages.cpp Tue Sep 14 17:42:51 2010 +0200
+++ b/QTfrontend/pages.cpp Tue Sep 14 18:41:37 2010 +0200
@@ -1088,6 +1088,8 @@
roomsList->verticalHeader()->setVisible(false);
roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
roomsList->setAlternatingRowColors(true);
+ roomsList->setShowGrid(false);
+ roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
pageLayout->addWidget(roomsList, 1, 0, 3, 1);
pageLayout->setRowStretch(2, 320);
@@ -1174,6 +1176,11 @@
void PageRoomsList::setRoomsList(const QStringList & list)
{
+ QBrush red(QColor(255, 0, 0));
+ QBrush orange(QColor(127, 127, 0));
+ QBrush yellow(QColor(255, 255, 0));
+ QBrush green(QColor(0, 255, 0));
+
listFromServer = list;
QString selection = "";
@@ -1215,6 +1222,7 @@
for(int i = 0, r = 0; i < list.size(); i += 8, r++)
{
// if we are joining a game
+ // TODO: Should NOT be done here
if (gameInLobby) {
if (gameInLobbyName == list[i + 1]) {
gameCanBeJoined = list[i].compare("True");
@@ -1273,6 +1281,9 @@
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
item->setTextAlignment(Qt::AlignCenter);
item->setToolTip(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3]));
+ //Should we highlight "full" games? Might get misinterpreted
+ //if(list[i + 3].toInt() >= cMaxTeams)
+ // item->setForeground(red);
roomsList->setItem(r, 2, item);
item = new QTableWidgetItem(list[i + 4].left(15)); // name of host
@@ -1281,9 +1292,15 @@
roomsList->setItem(r, 3, item);
if(list[i + 5] == "+rnd+")
+ {
item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
+ item->setIcon(QIcon(":/res/mapRandom.png"));
+ }
else if (list[i+5] == "+maze+")
+ {
item = new QTableWidgetItem(tr("Random Maze"));
+ item->setIcon(QIcon(":/res/mapMaze.png"));
+ }
else
{
item = new QTableWidgetItem(list[i + 5]); // selected map
@@ -1291,7 +1308,15 @@
// check to see if we've got this map
// not perfect but a start
if(!mapList->contains(list[i + 5]))
- item->setForeground(QBrush(QColor(255, 0, 0)));
+ {
+ item->setForeground(red);
+ item->setIcon(QIcon(":/res/mapMissing.png"));
+ }
+ else
+ {
+ // todo: mission icon?
+ item->setIcon(QIcon(":/res/mapCustom.png"));
+ }
}
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
@@ -1309,16 +1334,18 @@
roomsList->setItem(r, 6, item);
if(!list[i + 1].compare(selection) && !selection.isEmpty())
- roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r,0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
+ roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
}
- roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
- roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
- roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+ roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
+ roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
+
+ // TODO: Should NOT be done here
if (gameInLobby) {
gameInLobby = false;
if (gameCanBeJoined) {
Binary file QTfrontend/res/mapCustom.png has changed
Binary file QTfrontend/res/mapMaze.png has changed
Binary file QTfrontend/res/mapMissing.png has changed
Binary file QTfrontend/res/mapMission.png has changed
Binary file QTfrontend/res/mapRandom.png has changed