From 0d974914a321025c04f671db3fa622ec47bd2120 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Sun, 8 Feb 2015 22:35:37 +0100 Subject: [PATCH] Disable filters in "show user's games" dialog Hide filters-related buttons Bypass the proxy model --- cockatrice/src/gameselector.cpp | 24 ++++++++++++++++-------- cockatrice/src/gameselector.h | 2 +- cockatrice/src/tab_room.cpp | 2 +- cockatrice/src/user_context_menu.cpp | 2 +- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/cockatrice/src/gameselector.cpp b/cockatrice/src/gameselector.cpp index b0c7ddfb..98285322 100644 --- a/cockatrice/src/gameselector.cpp +++ b/cockatrice/src/gameselector.cpp @@ -17,15 +17,20 @@ #include "pb/serverinfo_game.pb.h" #include "pb/response.pb.h" -GameSelector::GameSelector(AbstractClient *_client, const TabSupervisor *_tabSupervisor, TabRoom *_room, const QMap &_rooms, const QMap &_gameTypes, const bool restoresettings, QWidget *parent) +GameSelector::GameSelector(AbstractClient *_client, const TabSupervisor *_tabSupervisor, TabRoom *_room, const QMap &_rooms, const QMap &_gameTypes, const bool restoresettings, const bool showfilters, QWidget *parent) : QGroupBox(parent), client(_client), tabSupervisor(_tabSupervisor), room(_room) { gameListView = new QTreeView; gameListModel = new GamesModel(_rooms, _gameTypes, this); - gameListProxyModel = new GamesProxyModel(this, tabSupervisor->getUserInfo()); - gameListProxyModel->setSourceModel(gameListModel); - gameListProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); - gameListView->setModel(gameListProxyModel); + if(showfilters) + { + gameListProxyModel = new GamesProxyModel(this, tabSupervisor->getUserInfo()); + gameListProxyModel->setSourceModel(gameListModel); + gameListProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); + gameListView->setModel(gameListProxyModel); + } else { + gameListView->setModel(gameListModel); + } gameListView->setSortingEnabled(true); gameListView->sortByColumn(gameListModel->startTimeColIndex(), Qt::AscendingOrder); gameListView->setAlternatingRowColors(true); @@ -36,7 +41,7 @@ GameSelector::GameSelector(AbstractClient *_client, const TabSupervisor *_tabSup if (room) gameTypeMap = gameListModel->getGameTypes().value(room->getRoomId()); - if (restoresettings) + if (showfilters && restoresettings) gameListProxyModel->loadFilterParameters(gameTypeMap); #if QT_VERSION < 0x050000 @@ -61,8 +66,11 @@ GameSelector::GameSelector(AbstractClient *_client, const TabSupervisor *_tabSup spectateButton = new QPushButton; QHBoxLayout *buttonLayout = new QHBoxLayout; - buttonLayout->addWidget(filterButton); - buttonLayout->addWidget(clearFilterButton); + if(showfilters) + { + buttonLayout->addWidget(filterButton); + buttonLayout->addWidget(clearFilterButton); + } buttonLayout->addStretch(); if (room) buttonLayout->addWidget(createButton); diff --git a/cockatrice/src/gameselector.h b/cockatrice/src/gameselector.h index af4d28b9..9d1d1ffe 100644 --- a/cockatrice/src/gameselector.h +++ b/cockatrice/src/gameselector.h @@ -36,7 +36,7 @@ private: QPushButton *filterButton, *clearFilterButton, *createButton, *joinButton, *spectateButton; GameTypeMap gameTypeMap; public: - GameSelector(AbstractClient *_client, const TabSupervisor *_tabSupervisor, TabRoom *_room, const QMap &_rooms, const QMap &_gameTypes, const bool restoresettings, QWidget *parent = 0); + GameSelector(AbstractClient *_client, const TabSupervisor *_tabSupervisor, TabRoom *_room, const QMap &_rooms, const QMap &_gameTypes, const bool restoresettings, const bool showfilters, QWidget *parent = 0); void retranslateUi(); void processGameInfo(const ServerInfo_Game &info); }; diff --git a/cockatrice/src/tab_room.cpp b/cockatrice/src/tab_room.cpp index 1451eb53..ee67c16f 100644 --- a/cockatrice/src/tab_room.cpp +++ b/cockatrice/src/tab_room.cpp @@ -37,7 +37,7 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI QMap tempMap; tempMap.insert(info.room_id(), gameTypes); - gameSelector = new GameSelector(client, tabSupervisor, this, QMap(), tempMap, true); + gameSelector = new GameSelector(client, tabSupervisor, this, QMap(), tempMap, true, true); userList = new UserList(tabSupervisor, client, UserList::RoomList); connect(userList, SIGNAL(openMessageDialog(const QString &, bool)), this, SIGNAL(openMessageDialog(const QString &, bool))); diff --git a/cockatrice/src/user_context_menu.cpp b/cockatrice/src/user_context_menu.cpp index 6116a428..00ca37de 100644 --- a/cockatrice/src/user_context_menu.cpp +++ b/cockatrice/src/user_context_menu.cpp @@ -68,7 +68,7 @@ void UserContextMenu::gamesOfUserReceived(const Response &resp, const CommandCon gameTypeMap.insert(roomInfo.room_id(), tempMap); } - GameSelector *selector = new GameSelector(client, tabSupervisor, 0, roomMap, gameTypeMap, false); + GameSelector *selector = new GameSelector(client, tabSupervisor, 0, roomMap, gameTypeMap, false, false); const int gameListSize = response.game_list_size(); for (int i = 0; i < gameListSize; ++i) selector->processGameInfo(response.game_list(i));