mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Implement a setting for the tray icon (#108)
This commit is contained in:
parent
ddb23105f1
commit
84741adc16
4 changed files with 15 additions and 8 deletions
|
@ -66,6 +66,7 @@ protected:
|
|||
|
||||
signals:
|
||||
void moveBack();
|
||||
void trayOptionChanged(bool value);
|
||||
|
||||
private:
|
||||
// Layouts
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue