From b41d64615d0045b830ac22502b74ed84140c6c15 Mon Sep 17 00:00:00 2001 From: Matt Lowe Date: Tue, 20 Jan 2015 15:02:12 +0100 Subject: [PATCH] Added "Chat settings..." shortcut to chat cog --- cockatrice/src/dlg_settings.cpp | 7 +++++++ cockatrice/src/dlg_settings.h | 1 + cockatrice/src/tab_room.cpp | 14 ++++++++++++++ cockatrice/src/tab_room.h | 2 ++ 4 files changed, 24 insertions(+) diff --git a/cockatrice/src/dlg_settings.cpp b/cockatrice/src/dlg_settings.cpp index fab52dde..f151f842 100644 --- a/cockatrice/src/dlg_settings.cpp +++ b/cockatrice/src/dlg_settings.cpp @@ -773,6 +773,13 @@ void DlgSettings::changePage(QListWidgetItem *current, QListWidgetItem *previous pagesWidget->setCurrentIndex(contentsWidget->row(current)); } +void DlgSettings::setTab(int index) { + if (index <= contentsWidget->count()-1 && index >= 0) { + changePage(contentsWidget->item(index), contentsWidget->currentItem()); + contentsWidget->setCurrentRow(index); + } +} + void DlgSettings::updateLanguage() { qApp->removeTranslator(translator); diff --git a/cockatrice/src/dlg_settings.h b/cockatrice/src/dlg_settings.h index c74a5f94..d457c224 100644 --- a/cockatrice/src/dlg_settings.h +++ b/cockatrice/src/dlg_settings.h @@ -138,6 +138,7 @@ class DlgSettings : public QDialog { Q_OBJECT public: DlgSettings(QWidget *parent = 0); + void setTab(int index); private slots: void changePage(QListWidgetItem *current, QListWidgetItem *previous); void updateLanguage(); diff --git a/cockatrice/src/tab_room.cpp b/cockatrice/src/tab_room.cpp index fa307e7d..981ee3d4 100644 --- a/cockatrice/src/tab_room.cpp +++ b/cockatrice/src/tab_room.cpp @@ -26,6 +26,7 @@ #include "pb/event_leave_room.pb.h" #include "pb/event_room_say.pb.h" #include "pending_command.h" +#include "dlg_settings.h" TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info) : Tab(_tabSupervisor), client(_client), roomId(info.room_id()), roomName(QString::fromStdString(info.name())), ownUser(_ownUser) @@ -53,9 +54,15 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI aIgnoreUnregisteredUsers = chatSettingsMenu->addAction(QString()); aIgnoreUnregisteredUsers->setCheckable(true); connect(aIgnoreUnregisteredUsers, SIGNAL(triggered()), this, SLOT(actIgnoreUnregisteredUsers())); + chatSettingsMenu->addSeparator(); + aClearChat = chatSettingsMenu->addAction(QString()); connect(aClearChat, SIGNAL(triggered()), this, SLOT(actClearChat())); + + aOpenChatSettings = chatSettingsMenu->addAction(QString()); + connect(aOpenChatSettings, SIGNAL(triggered()), this, SLOT(actOpenChatSettings())); + connect(settingsCache, SIGNAL(ignoreUnregisteredUsersChanged()), this, SLOT(ignoreUnregisteredUsersChanged())); QToolButton *chatSettingsButton = new QToolButton; chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg")); @@ -118,6 +125,7 @@ void TabRoom::retranslateUi() aLeaveRoom->setText(tr("&Leave room")); aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat")); aClearChat->setText(tr("&Clear chat")); + aOpenChatSettings->setText(tr("Chat Settings...")); } void TabRoom::closeRequest() @@ -180,6 +188,12 @@ void TabRoom::actClearChat() { chatView->clearChat(); } +void TabRoom::actOpenChatSettings() { + DlgSettings settings(this); + settings.setTab(4); + settings.exec(); +} + void TabRoom::processRoomEvent(const RoomEvent &event) { switch (static_cast(getPbExtension(event))) { diff --git a/cockatrice/src/tab_room.h b/cockatrice/src/tab_room.h index 600513a2..b43d3559 100644 --- a/cockatrice/src/tab_room.h +++ b/cockatrice/src/tab_room.h @@ -44,6 +44,7 @@ private: QMenu *roomMenu; QAction *aLeaveRoom; QAction *aIgnoreUnregisteredUsers; + QAction *aOpenChatSettings; QAction * aClearChat; QString sanitizeHtml(QString dirty) const; signals: @@ -55,6 +56,7 @@ private slots: void actLeaveRoom(); void actIgnoreUnregisteredUsers(); void actClearChat(); + void actOpenChatSettings(); void ignoreUnregisteredUsersChanged(); void processListGamesEvent(const Event_ListGames &event);