Added "Chat settings..." shortcut to chat cog

This commit is contained in:
Matt Lowe 2015-01-20 15:02:12 +01:00
parent 9b7f488bd7
commit b41d64615d
4 changed files with 24 additions and 0 deletions

View file

@ -773,6 +773,13 @@ void DlgSettings::changePage(QListWidgetItem *current, QListWidgetItem *previous
pagesWidget->setCurrentIndex(contentsWidget->row(current)); 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() void DlgSettings::updateLanguage()
{ {
qApp->removeTranslator(translator); qApp->removeTranslator(translator);

View file

@ -138,6 +138,7 @@ class DlgSettings : public QDialog {
Q_OBJECT Q_OBJECT
public: public:
DlgSettings(QWidget *parent = 0); DlgSettings(QWidget *parent = 0);
void setTab(int index);
private slots: private slots:
void changePage(QListWidgetItem *current, QListWidgetItem *previous); void changePage(QListWidgetItem *current, QListWidgetItem *previous);
void updateLanguage(); void updateLanguage();

View file

@ -26,6 +26,7 @@
#include "pb/event_leave_room.pb.h" #include "pb/event_leave_room.pb.h"
#include "pb/event_room_say.pb.h" #include "pb/event_room_say.pb.h"
#include "pending_command.h" #include "pending_command.h"
#include "dlg_settings.h"
TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info) 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) : 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 = chatSettingsMenu->addAction(QString());
aIgnoreUnregisteredUsers->setCheckable(true); aIgnoreUnregisteredUsers->setCheckable(true);
connect(aIgnoreUnregisteredUsers, SIGNAL(triggered()), this, SLOT(actIgnoreUnregisteredUsers())); connect(aIgnoreUnregisteredUsers, SIGNAL(triggered()), this, SLOT(actIgnoreUnregisteredUsers()));
chatSettingsMenu->addSeparator(); chatSettingsMenu->addSeparator();
aClearChat = chatSettingsMenu->addAction(QString()); aClearChat = chatSettingsMenu->addAction(QString());
connect(aClearChat, SIGNAL(triggered()), this, SLOT(actClearChat())); 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())); connect(settingsCache, SIGNAL(ignoreUnregisteredUsersChanged()), this, SLOT(ignoreUnregisteredUsersChanged()));
QToolButton *chatSettingsButton = new QToolButton; QToolButton *chatSettingsButton = new QToolButton;
chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg")); chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg"));
@ -118,6 +125,7 @@ void TabRoom::retranslateUi()
aLeaveRoom->setText(tr("&Leave room")); aLeaveRoom->setText(tr("&Leave room"));
aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat")); aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat"));
aClearChat->setText(tr("&Clear chat")); aClearChat->setText(tr("&Clear chat"));
aOpenChatSettings->setText(tr("Chat Settings..."));
} }
void TabRoom::closeRequest() void TabRoom::closeRequest()
@ -180,6 +188,12 @@ void TabRoom::actClearChat() {
chatView->clearChat(); chatView->clearChat();
} }
void TabRoom::actOpenChatSettings() {
DlgSettings settings(this);
settings.setTab(4);
settings.exec();
}
void TabRoom::processRoomEvent(const RoomEvent &event) void TabRoom::processRoomEvent(const RoomEvent &event)
{ {
switch (static_cast<RoomEvent::RoomEventType>(getPbExtension(event))) { switch (static_cast<RoomEvent::RoomEventType>(getPbExtension(event))) {

View file

@ -44,6 +44,7 @@ private:
QMenu *roomMenu; QMenu *roomMenu;
QAction *aLeaveRoom; QAction *aLeaveRoom;
QAction *aIgnoreUnregisteredUsers; QAction *aIgnoreUnregisteredUsers;
QAction *aOpenChatSettings;
QAction * aClearChat; QAction * aClearChat;
QString sanitizeHtml(QString dirty) const; QString sanitizeHtml(QString dirty) const;
signals: signals:
@ -55,6 +56,7 @@ private slots:
void actLeaveRoom(); void actLeaveRoom();
void actIgnoreUnregisteredUsers(); void actIgnoreUnregisteredUsers();
void actClearChat(); void actClearChat();
void actOpenChatSettings();
void ignoreUnregisteredUsersChanged(); void ignoreUnregisteredUsersChanged();
void processListGamesEvent(const Event_ListGames &event); void processListGamesEvent(const Event_ListGames &event);