From: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> Date: Sat, 11 Jan 2020 16:34:56 +0000 (+0100) Subject: Systray now a singleton with instance(), show tray on finished wizard X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~413^2~64 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=86b915d42ebff3c2c36a66fc15ba2085ae12c895;p=nextcloud-desktop.git Systray now a singleton with instance(), show tray on finished wizard Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> --- diff --git a/src/gui/application.cpp b/src/gui/application.cpp index 51af86f92..45b06ae40 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -390,7 +390,7 @@ void Application::slotownCloudWizardDone(int res) Utility::setLaunchOnStartup(_theme->appName(), _theme->appNameGUI(), true); } - _gui->slotShowSettings(); + Systray::instance()->showWindow(); } } diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 561ae25d1..632ae43f8 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -116,7 +116,6 @@ GeneralSettings::GeneralSettings(QWidget *parent) connect(_ui->ignoredFilesButton, &QAbstractButton::clicked, this, &GeneralSettings::slotIgnoreFilesEditor); // accountAdded means the wizard was finished and the wizard might change some options. - // Update 01/2020: Show new tray window instead connect(AccountManager::instance(), &AccountManager::accountAdded, this, &GeneralSettings::loadMiscSettings); customizeStyle(); diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index b071e2d3e..5375786fd 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -71,7 +71,7 @@ ownCloudGui::ownCloudGui(Application *parent) , _recentActionsMenu(nullptr) , _app(parent) { - _tray = new Systray(); + _tray = Systray::instance(); _tray->setParent(this); // for the beginning, set the offline icon until the account was verified _tray->setIcon(Theme::instance()->folderOfflineIcon(/*systray?*/ true)); diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 6fa7bfa47..53ff923b8 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -229,7 +229,6 @@ void SettingsDialog::accountAdded(AccountState *s) connect(accountSettings, &AccountSettings::folderChanged, _gui, &ownCloudGui::slotFoldersChanged); connect(accountSettings, &AccountSettings::openFolderAlias, _gui, &ownCloudGui::slotFolderOpenAction); - connect(accountSettings, &AccountSettings::showIssuesList, this, &SettingsDialog::showIssuesList); connect(s->account().data(), &Account::accountChangedAvatar, this, &SettingsDialog::slotAccountAvatarChanged); connect(s->account().data(), &Account::accountChangedDisplayName, this, &SettingsDialog::slotAccountDisplayNameChanged); diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index 2157c7579..a241e5fc2 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -36,7 +36,17 @@ namespace OCC { -Systray::Systray() // TODO: make singleton, provide ::instance() +Systray *Systray::_instance = nullptr; + +Systray *Systray::instance() +{ + if (_instance == nullptr) { + _instance = new Systray(); + } + return _instance; +} + +Systray::Systray() : _isOpen(false) , _syncIsPaused(false) , _trayComponent(nullptr) @@ -62,10 +72,6 @@ Systray::Systray() // TODO: make singleton, provide ::instance() this, &Systray::showWindow); } -Systray::~Systray() -{ -} - void Systray::create() { if (_trayContext == nullptr) { diff --git a/src/gui/systray.h b/src/gui/systray.h index a09fc1c6c..60a44a3f9 100644 --- a/src/gui/systray.h +++ b/src/gui/systray.h @@ -43,8 +43,9 @@ class Systray { Q_OBJECT public: - explicit Systray(); - ~Systray(); + static Systray *instance(); + virtual ~Systray() {}; + void create(); void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int millisecondsTimeoutHint = 10000); void setToolTip(const QString &tip); @@ -72,6 +73,8 @@ private slots: void slotChangeActivityModel(); private: + static Systray *_instance; + Systray(); bool _isOpen; bool _syncIsPaused; QQmlEngine *_trayEngine;