Systray now a singleton with instance(), show tray on finished wizard
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 11 Jan 2020 16:34:56 +0000 (17:34 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 11 Jan 2020 16:34:56 +0000 (17:34 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/application.cpp
src/gui/generalsettings.cpp
src/gui/owncloudgui.cpp
src/gui/settingsdialog.cpp
src/gui/systray.cpp
src/gui/systray.h

index 51af86f923546f20128a1184545591dee71d0a85..45b06ae403f5c4f20f83ee9984df8c3d37f28096 100644 (file)
@@ -390,7 +390,7 @@ void Application::slotownCloudWizardDone(int res)
             Utility::setLaunchOnStartup(_theme->appName(), _theme->appNameGUI(), true);
         }
 
-        _gui->slotShowSettings();
+        Systray::instance()->showWindow();
     }
 }
 
index 561ae25d108ceb0978ffe54a359ca8c463de31fd..632ae43f838ae091f2da54edfd2dba0ffc72019a 100644 (file)
@@ -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();
index b071e2d3e0b839c7374f6e23e26aeedffe66b338..5375786fd05127bd94584f72a625934e7ef7e61b 100644 (file)
@@ -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));
index 6fa7bfa470591a91eb8600446f78e81a9fb79a2c..53ff923b8768ba725a142a09d00cd77b4d23efa1 100644 (file)
@@ -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);
 
index 2157c75795fdcbe8f22a1cfdebdba4013338fd0f..a241e5fc28558d548f8c1641459269e02438b20d 100644 (file)
 
 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) {
index a09fc1c6cfed0ebaa293fe354dbf5e9654a325a8..60a44a3f91077099cec375ce3836f1786fe0501e 100644 (file)
@@ -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;