diff options
author | Jani Mustonen <janijohannes@kapsi.fi> | 2017-11-02 22:00:43 +0200 |
---|---|---|
committer | mujx <mujx@users.noreply.github.com> | 2017-11-02 22:00:43 +0200 |
commit | 84741adc16e03bc9f70f113e27c80e2d44357efc (patch) | |
tree | b6a3560682ab98c4fe5f2c12d2b8e0875acde5eb | |
parent | ddb23105f1b6b270f4af0653ea246b7bfef1358e (diff) |
Implement a setting for the tray icon (#108)
-rw-r--r-- | include/UserSettingsPage.h | 1 | ||||
-rw-r--r-- | src/MainWindow.cc | 6 | ||||
-rw-r--r-- | src/TrayIcon.cc | 3 | ||||
-rw-r--r-- | src/UserSettingsPage.cc | 13 |
4 files changed, 15 insertions, 8 deletions
diff --git a/include/UserSettingsPage.h b/include/UserSettingsPage.h index 9a4c01dd..6f6da2c5 100644 --- a/include/UserSettingsPage.h +++ b/include/UserSettingsPage.h @@ -66,6 +66,7 @@ protected: signals: void moveBack(); + void trayOptionChanged(bool value); private: // Layouts diff --git a/src/MainWindow.cc b/src/MainWindow.cc index 5c188903..fd44e405 100644 --- a/src/MainWindow.cc +++ b/src/MainWindow.cc @@ -94,6 +94,8 @@ MainWindow::MainWindow(QWidget *parent) pageStack_->setCurrentWidget(chat_page_); }); + connect(userSettingsPage_, SIGNAL(trayOptionChanged(bool)), trayIcon_, SLOT(setVisible(bool))); + connect(trayIcon_, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, @@ -113,6 +115,8 @@ MainWindow::MainWindow(QWidget *parent) QSettings settings; + trayIcon_->setVisible(userSettings_->isTrayEnabled()); + if (hasActiveUser()) { QString token = settings.value("auth/access_token").toString(); QString home_server = settings.value("auth/home_server").toString(); @@ -253,7 +257,7 @@ MainWindow::showUserSettingsPage() void MainWindow::closeEvent(QCloseEvent *event) { - if (isVisible()) { + if (isVisible() && userSettings_->isTrayEnabled()) { event->ignore(); hide(); } diff --git a/src/TrayIcon.cc b/src/TrayIcon.cc index ad644ed9..ac84aaca 100644 --- a/src/TrayIcon.cc +++ b/src/TrayIcon.cc @@ -123,9 +123,6 @@ TrayIcon::TrayIcon(const QString &filename, QWidget *parent) menu->addAction(quitAction_); setContextMenu(menu); - - // We wait a little for the icon to load. - QTimer::singleShot(500, this, [=]() { show(); }); } void diff --git a/src/UserSettingsPage.cc b/src/UserSettingsPage.cc index ff4714f5..d18b76be 100644 --- a/src/UserSettingsPage.cc +++ b/src/UserSettingsPage.cc @@ -32,7 +32,7 @@ void UserSettings::load() { QSettings settings; - isTrayEnabled_ = settings.value("user/tray", true).toBool(); + isTrayEnabled_ = settings.value("user/window/tray", true).toBool(); theme_ = settings.value("user/theme", "default").toString(); } @@ -41,7 +41,11 @@ UserSettings::save() { QSettings settings; settings.beginGroup("user"); + + settings.beginGroup("window"); settings.setValue("tray", isTrayEnabled_); + settings.endGroup(); + settings.setValue("theme", theme()); settings.endGroup(); } @@ -122,8 +126,9 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated), [=](const QString &text) { settings_->setTheme(text.toLower()); }); - connect(trayToggle_, &Toggle::toggled, this, [=](bool isEnabled) { - settings_->setTray(isEnabled); + connect(trayToggle_, &Toggle::toggled, this, [=](bool isDisabled) { + settings_->setTray(!isDisabled); + emit trayOptionChanged(!isDisabled); }); connect(backBtn_, &QPushButton::clicked, this, [=]() { @@ -136,5 +141,5 @@ void UserSettingsPage::showEvent(QShowEvent *) { themeCombo_->setCurrentIndex((settings_->theme() == "default" ? 0 : 1)); - trayToggle_->setState(settings_->isTrayEnabled()); + trayToggle_->setState(!settings_->isTrayEnabled()); // Treats true as "off" } |