summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJani Mustonen <janijohannes@kapsi.fi>2017-11-02 22:00:43 +0200
committermujx <mujx@users.noreply.github.com>2017-11-02 22:00:43 +0200
commit84741adc16e03bc9f70f113e27c80e2d44357efc (patch)
treeb6a3560682ab98c4fe5f2c12d2b8e0875acde5eb /src
parentAdd issue template (diff)
downloadnheko-84741adc16e03bc9f70f113e27c80e2d44357efc.tar.xz
Implement a setting for the tray icon (#108)
Diffstat (limited to 'src')
-rw-r--r--src/MainWindow.cc6
-rw-r--r--src/TrayIcon.cc3
-rw-r--r--src/UserSettingsPage.cc13
3 files changed, 14 insertions, 8 deletions
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" }