adds fourth column for display ranking icon for ranking games

This commit is contained in:
doitux
2010-01-05 12:53:37 +00:00
parent 6807449a33
commit b598129cf9
4 changed files with 75 additions and 30 deletions
@@ -67,13 +67,14 @@ gameLobbyDialogImpl::gameLobbyDialogImpl(startWindowImpl *parent, ConfigFile *c)
myGameListSelectionModel = treeView_GameList->selectionModel(); myGameListSelectionModel = treeView_GameList->selectionModel();
QStringList headerList; QStringList headerList;
headerList << tr("Game") << tr("Players") << tr("State") << tr("Private"); headerList << tr("Game") << tr("Players") << tr("State") << tr("R") << tr("P");
myGameListModel->setHorizontalHeaderLabels(headerList); myGameListModel->setHorizontalHeaderLabels(headerList);
treeView_GameList->setColumnWidth(0,185); treeView_GameList->setColumnWidth(0,220);
treeView_GameList->setColumnWidth(1,65); treeView_GameList->setColumnWidth(1,65);
treeView_GameList->setColumnWidth(2,65); treeView_GameList->setColumnWidth(2,65);
treeView_GameList->setColumnWidth(3,65); treeView_GameList->setColumnWidth(3,30);
treeView_GameList->setColumnWidth(4,30);
treeView_GameList->setStyleSheet("QTreeView {background-color: white; background-image: url(\""+myAppDataPath +"gfx/gui/misc/background_gamelist.png\"); background-attachment: fixed; background-position: top center ; background-repeat: no-repeat;}"); treeView_GameList->setStyleSheet("QTreeView {background-color: white; background-image: url(\""+myAppDataPath +"gfx/gui/misc/background_gamelist.png\"); background-attachment: fixed; background-position: top center ; background-repeat: no-repeat;}");
treeView_GameList->setAutoFillBackground(TRUE); treeView_GameList->setAutoFillBackground(TRUE);
@@ -114,6 +115,7 @@ void gameLobbyDialogImpl::exec()
waitStartGameMsgBoxTimer->stop(); waitStartGameMsgBoxTimer->stop();
waitStartGameMsgBox->hide(); waitStartGameMsgBox->hide();
} }
@@ -234,7 +236,7 @@ void gameLobbyDialogImpl::joinAnyGame() {
int players = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",0,0).toInt(); int players = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",0,0).toInt();
int maxPlayers = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",1,1).toInt(); int maxPlayers = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",1,1).toInt();
if (myGameListModel->item(it, 2)->data(16) == "open" && myGameListModel->item(it, 3)->data(16) == "nonpriv" && players < maxPlayers) if (myGameListModel->item(it, 2)->data(16) == "open" && myGameListModel->item(it, 4)->data(16) == "nonpriv" && players < maxPlayers)
{ {
if(players > mostConnectedPlayers) { if(players > mostConnectedPlayers) {
mostConnectedPlayers = players; mostConnectedPlayers = players;
@@ -263,12 +265,13 @@ void gameLobbyDialogImpl::refresh(int actionID) {
treeWidget_NickList->clear(); treeWidget_NickList->clear();
QStringList headerList; QStringList headerList;
headerList << tr("Game") << tr("Players") << tr("State") << tr("Private"); headerList << tr("Game") << tr("Players") << tr("State") << tr("R") << tr("P");
myGameListModel->setHorizontalHeaderLabels(headerList); myGameListModel->setHorizontalHeaderLabels(headerList);
treeView_GameList->setColumnWidth(0,185); treeView_GameList->setColumnWidth(0,220);
treeView_GameList->setColumnWidth(1,65); treeView_GameList->setColumnWidth(1,65);
treeView_GameList->setColumnWidth(2,65); treeView_GameList->setColumnWidth(2,65);
treeView_GameList->setColumnWidth(3,65); treeView_GameList->setColumnWidth(3,30);
treeView_GameList->setColumnWidth(4,30);
this->accept(); this->accept();
myW->show(); myW->show();
@@ -343,6 +346,7 @@ void gameLobbyDialogImpl::updateGameItem(QList <QStandardItem*> itemList, unsign
itemList.at(1)->setBackground(QBrush(QColor(0, 255, 0, 127))); itemList.at(1)->setBackground(QBrush(QColor(0, 255, 0, 127)));
itemList.at(2)->setBackground(QBrush(QColor(0, 255, 0, 127))); itemList.at(2)->setBackground(QBrush(QColor(0, 255, 0, 127)));
itemList.at(3)->setBackground(QBrush(QColor(0, 255, 0, 127))); itemList.at(3)->setBackground(QBrush(QColor(0, 255, 0, 127)));
itemList.at(4)->setBackground(QBrush(QColor(0, 255, 0, 127)));
break; break;
} }
else { else {
@@ -351,6 +355,7 @@ void gameLobbyDialogImpl::updateGameItem(QList <QStandardItem*> itemList, unsign
itemList.at(1)->setBackground(QBrush()); itemList.at(1)->setBackground(QBrush());
itemList.at(2)->setBackground(QBrush()); itemList.at(2)->setBackground(QBrush());
itemList.at(3)->setBackground(QBrush()); itemList.at(3)->setBackground(QBrush());
itemList.at(4)->setBackground(QBrush());
} }
++i; ++i;
} }
@@ -371,13 +376,13 @@ void gameLobbyDialogImpl::updateGameItem(QList <QStandardItem*> itemList, unsign
} }
if (info.isPasswordProtected) { if (info.isPasswordProtected) {
itemList.at(3)->setIcon(QIcon(myAppDataPath+"gfx/gui/misc/lock.png")); itemList.at(4)->setIcon(QIcon(myAppDataPath+"gfx/gui/misc/lock.png"));
itemList.at(3)->setData(" ", Qt::DisplayRole); itemList.at(4)->setData(" ", Qt::DisplayRole);
itemList.at(3)->setData("private", 16); itemList.at(4)->setData("private", 16);
} }
else { else {
itemList.at(3)->setData("", Qt::DisplayRole); itemList.at(4)->setData("", Qt::DisplayRole);
itemList.at(3)->setData("nonpriv", 16); itemList.at(4)->setData("nonpriv", 16);
} }
// treeView_GameList->sortByColumn(myConfig->readConfigInt("DlgGameLobbyGameListSortingSection"), (Qt::SortOrder)myConfig->readConfigInt("DlgGameLobbyGameListSortingOrder") ); // treeView_GameList->sortByColumn(myConfig->readConfigInt("DlgGameLobbyGameListSortingSection"), (Qt::SortOrder)myConfig->readConfigInt("DlgGameLobbyGameListSortingOrder") );
@@ -391,7 +396,8 @@ void gameLobbyDialogImpl::addGame(unsigned gameId)
QStandardItem *item2 = new QStandardItem(); QStandardItem *item2 = new QStandardItem();
QStandardItem *item3 = new QStandardItem(); QStandardItem *item3 = new QStandardItem();
QStandardItem *item4 = new QStandardItem(); QStandardItem *item4 = new QStandardItem();
itemList << item1 << item2 << item3 << item4; QStandardItem *item5 = new QStandardItem();
itemList << item1 << item2 << item3 << item4 << item5;
myGameListModel->appendRow(itemList); myGameListModel->appendRow(itemList);
@@ -406,7 +412,7 @@ void gameLobbyDialogImpl::updateGameMode(unsigned gameId, int /*newMode*/)
if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId) if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId)
{ {
QList <QStandardItem*> itemList; QList <QStandardItem*> itemList;
itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3); itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3) << myGameListModel->item(it, 4);
updateGameItem(itemList, gameId); updateGameItem(itemList, gameId);
break; break;
} }
@@ -482,7 +488,7 @@ void gameLobbyDialogImpl::gameAddPlayer(unsigned gameId, unsigned playerId)
while (myGameListModel->item(it)) { while (myGameListModel->item(it)) {
if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId) { if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId) {
QList <QStandardItem*> itemList; QList <QStandardItem*> itemList;
itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3); itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3) << myGameListModel->item(it, 4);
updateGameItem(itemList, gameId); updateGameItem(itemList, gameId);
break; break;
@@ -509,7 +515,7 @@ void gameLobbyDialogImpl::gameRemovePlayer(unsigned gameId, unsigned playerId)
while (myGameListModel->item(it)) { while (myGameListModel->item(it)) {
if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId) { if (myGameListModel->item(it, 0)->data(Qt::UserRole) == gameId) {
QList <QStandardItem*> itemList; QList <QStandardItem*> itemList;
itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3); itemList << myGameListModel->item(it, 0) << myGameListModel->item(it, 1) << myGameListModel->item(it, 2) << myGameListModel->item(it, 3) << myGameListModel->item(it, 4);
updateGameItem(itemList, gameId); updateGameItem(itemList, gameId);
break; break;
@@ -557,12 +563,13 @@ void gameLobbyDialogImpl::clearDialog()
pushButton_joinAnyGame->setEnabled(false); pushButton_joinAnyGame->setEnabled(false);
QStringList headerList; QStringList headerList;
headerList << tr("Game") << tr("Players") << tr("State") << tr("Private"); headerList << tr("Game") << tr("Players") << tr("State") << tr("R") << tr("P");
myGameListModel->setHorizontalHeaderLabels(headerList); myGameListModel->setHorizontalHeaderLabels(headerList);
treeView_GameList->setColumnWidth(0,185); treeView_GameList->setColumnWidth(0,220);
treeView_GameList->setColumnWidth(1,65); treeView_GameList->setColumnWidth(1,65);
treeView_GameList->setColumnWidth(2,65); treeView_GameList->setColumnWidth(2,65);
treeView_GameList->setColumnWidth(3,65); treeView_GameList->setColumnWidth(3,30);
treeView_GameList->setColumnWidth(4,30);
pushButton_CreateGame->clearFocus(); pushButton_CreateGame->clearFocus();
lineEdit_ChatInput->setFocus(); lineEdit_ChatInput->setFocus();
@@ -914,6 +921,8 @@ void gameLobbyDialogImpl::keyPressEvent ( QKeyEvent * event ) {
// if (event->key() == Qt::Key_Tab) event->ignore(); else { /*blah*/ } // if (event->key() == Qt::Key_Tab) event->ignore(); else { /*blah*/ }
// if (event->key() == Qt::Key_N) registeredUserMode();
// if (event->key() == Qt::Key_M) guestUserMode();
} }
@@ -973,7 +982,7 @@ void gameLobbyDialogImpl::joinAnyGameButtonRefresh() {
int players = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",0,0).toInt(); int players = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",0,0).toInt();
int maxPlayers = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",1,1).toInt(); int maxPlayers = myGameListModel->item(it, 1)->data(Qt::DisplayRole).toString().section("/",1,1).toInt();
if (myGameListModel->item(it, 2)->data(16) == "open" && myGameListModel->item(it, 3)->data(16) == "nonpriv" && players < maxPlayers) { if (myGameListModel->item(it, 2)->data(16) == "open" && myGameListModel->item(it, 4)->data(16) == "nonpriv" && players < maxPlayers) {
openNonPrivateNonFullGamesCounter++; openNonPrivateNonFullGamesCounter++;
} }
++it; ++it;
@@ -1029,31 +1038,37 @@ void gameLobbyDialogImpl::changeGameListFilter(int index) {
myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn4RegExp(QRegExp());
} }
break; break;
case 1: { case 1: {
myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn4RegExp(QRegExp());
} }
break; break;
case 2: { case 2: {
myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp()); myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn4RegExp(QRegExp());
} }
break; break;
case 3: { case 3: {
myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp("nonpriv", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn4RegExp(QRegExp("nonpriv", Qt::CaseInsensitive, QRegExp::FixedString));
} }
break; break;
case 4: { case 4: {
myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp("nonfull", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn2RegExp(QRegExp("open", Qt::CaseInsensitive, QRegExp::FixedString));
myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp("private", Qt::CaseInsensitive, QRegExp::FixedString)); myGameListSortFilterProxyModel->setColumn3RegExp(QRegExp());
myGameListSortFilterProxyModel->setColumn4RegExp(QRegExp("private", Qt::CaseInsensitive, QRegExp::FixedString));
} }
break; break;
// case 5: { // case 5: {
// myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp()); // myGameListSortFilterProxyModel->setColumn1RegExp(QRegExp());
@@ -1149,3 +1164,26 @@ void gameLobbyDialogImpl::changeGameListSorting() {
// <string>11 - Show private games</string> // <string>11 - Show private games</string>
// </property> // </property>
// </item> // </item>
void gameLobbyDialogImpl::registeredUserMode()
{
pushButton_CreateGame->setEnabled(true);
pushButton_CreateGame->setToolTip("");
pushButton_CreateGame->setWhatsThis("");
pushButton_CreateGame->setStatusTip("");
lineEdit_ChatInput->clear();
lineEdit_ChatInput->setEnabled(true);
}
void gameLobbyDialogImpl::guestUserMode()
{
pushButton_CreateGame->setDisabled(true);
pushButton_CreateGame->setToolTip("Create games is available only for registered members");
pushButton_CreateGame->setWhatsThis("Create games is available only for registered members");
pushButton_CreateGame->setStatusTip("Create games is available only for registered members");
lineEdit_ChatInput->setText("Chat is avaiable only for registered members");
lineEdit_ChatInput->setDisabled(true);
}
@@ -115,6 +115,9 @@ public slots:
void changeGameListFilter(int); void changeGameListFilter(int);
void changeGameListSorting(); void changeGameListSorting();
void registeredUserMode();
void guestUserMode();
private: private:
gameTableImpl* myW; gameTableImpl* myW;
@@ -13,9 +13,11 @@ bool MyGameListSortFilterProxyModel::filterAcceptsRow(int sourceRow, const QMode
QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent); QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);
QModelIndex index2 = sourceModel()->index(sourceRow, 2, sourceParent); QModelIndex index2 = sourceModel()->index(sourceRow, 2, sourceParent);
QModelIndex index3 = sourceModel()->index(sourceRow, 3, sourceParent); QModelIndex index3 = sourceModel()->index(sourceRow, 3, sourceParent);
QModelIndex index4 = sourceModel()->index(sourceRow, 4, sourceParent);
return ((sourceModel()->data(index1, 16).toString().contains(column1RegExp) return ((sourceModel()->data(index1, 16).toString().contains(column1RegExp)
&& sourceModel()->data(index2, 16).toString().contains(column2RegExp) && sourceModel()->data(index2, 16).toString().contains(column2RegExp)
&& sourceModel()->data(index3, 16).toString().contains(column3RegExp)) || sourceModel()->data(index0, 16) == "MeInThisGame"); && sourceModel()->data(index3, 16).toString().contains(column3RegExp)
&& sourceModel()->data(index4, 16).toString().contains(column4RegExp)) || sourceModel()->data(index0, 16) == "MeInThisGame");
} }
@@ -12,6 +12,7 @@ Q_OBJECT
void setColumn1RegExp(QRegExp column1) { column1RegExp = column1; } void setColumn1RegExp(QRegExp column1) { column1RegExp = column1; }
void setColumn2RegExp(QRegExp column2) { column2RegExp = column2; } void setColumn2RegExp(QRegExp column2) { column2RegExp = column2; }
void setColumn3RegExp(QRegExp column3) { column3RegExp = column3; } void setColumn3RegExp(QRegExp column3) { column3RegExp = column3; }
void setColumn4RegExp(QRegExp column4) { column3RegExp = column4; }
protected: protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
@@ -20,6 +21,7 @@ Q_OBJECT
QRegExp column1RegExp; QRegExp column1RegExp;
QRegExp column2RegExp; QRegExp column2RegExp;
QRegExp column3RegExp; QRegExp column3RegExp;
QRegExp column4RegExp;
}; };