Quit/settings button in tray menu, disable context menu, font size fixes
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 4 Jan 2020 16:22:56 +0000 (17:22 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 4 Jan 2020 16:22:56 +0000 (17:22 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/owncloudgui.cpp
src/gui/systray.h
src/gui/tray/UserLine.qml
src/gui/tray/Window.qml

index 8916c28468b51d62f44601e70013e3afe6f019c5..a8c4a7f3491d3adcf9aa7d3542ab3c511f1fcbe0 100644 (file)
@@ -85,6 +85,12 @@ ownCloudGui::ownCloudGui(Application *parent)
     connect(_tray.data(), &QSystemTrayIcon::activated,
         this, &ownCloudGui::slotTrayClicked);
 
+    connect(_tray.data(), &Systray::openSettings,
+        this, &ownCloudGui::slotShowSettings);
+
+    connect(_tray.data(), &Systray::shutdown,
+        this, &ownCloudGui::slotShutdown);
+
     ProgressDispatcher *pd = ProgressDispatcher::instance();
     connect(pd, &ProgressDispatcher::progressInfo, this,
         &ownCloudGui::slotUpdateProgress);
@@ -171,17 +177,7 @@ void ownCloudGui::slotTrayClicked(QSystemTrayIcon::ActivationReason reason)
                 raiseDialog(shareDialog);
             }
         } else {
-#ifdef Q_OS_MAC
-            // on macOS, a left click always opens menu.
-            // However if the settings dialog is already visible but hidden
-            // by other applications, this will bring it to the front.
-            if (!_settingsDialog.isNull() && _settingsDialog->isVisible()) {
-                raiseDialog(_settingsDialog.data());
-            }
-#else
             _tray->showWindow();
-            //slotOpenSettingsDialog();
-#endif
         }
     }
     // FIXME: Also make sure that any auto updater dialogue https://github.com/owncloud/client/issues/5613
@@ -522,10 +518,6 @@ void ownCloudGui::setupContextMenu()
 
     _recentActionsMenu = new QMenu(tr("Recent Changes"), _contextMenu.data());
 
-    // this must be called only once after creating the context menu, or
-    // it will trigger a bug in Ubuntu's SNI bridge patch (11.10, 12.04).
-    _tray->setContextMenu(_contextMenu.data());
-
     // The tray menu is surprisingly problematic. Being able to switch to
     // a minimal version of it is a useful workaround and testing tool.
     if (minimalTrayMenu()) {
@@ -1099,6 +1091,7 @@ void ownCloudGui::slotShutdown()
         _settingsDialog->close();
     if (!_logBrowser.isNull())
         _logBrowser->deleteLater();
+    _app->quit();
 }
 
 void ownCloudGui::slotToggleLogBrowser()
index bb02eecef447923276a2143c84faa3914d846a8d..b2254841c1f63e2e13943d7ffed3f20c28c10fda 100644 (file)
@@ -53,6 +53,8 @@ public:
 
 signals:
     void currentUserChanged();
+    void openSettings();
+    void shutdown();
 
     Q_INVOKABLE void hideWindow();
     Q_INVOKABLE void showWindow();
index 8aaa58398d63abc048f6b0fbbf0188e4c15d1bfc..4ade26f23f5b733c72be9ea8cb324871651fd7e4 100644 (file)
@@ -68,14 +68,14 @@ MenuItem {
                             id: accountUser\r
                             text: name\r
                             color: "black"\r
-                            font.pointSize: 9\r
+                            font.pixelSize: 12\r
                             font.bold: true\r
                         }\r
                         Label {\r
                             id: accountServer\r
                             text: server\r
                             color: "black"\r
-                            font.pointSize: 8\r
+                            font.pixelSize: 10\r
                         }\r
                     }\r
 \r
index 6ddbabb672d71525f3368d28f5aa00d6045380f1..42a63a9bc8ea3f3f0cc0935ec797bb327a001121 100644 (file)
@@ -113,33 +113,47 @@ Window {
                             Instantiator {\r
                                 model: userModelBackend\r
                                 delegate: UserLine {}\r
-                                onObjectAdded: accountMenu.insertItem(index, object)\r
+                                onObjectAdded: accountMenu.insertItem(3, object)\r
                                 onObjectRemoved: accountMenu.removeItem(object)\r
                             }\r
 \r
-                            MenuSeparator { id: accountMenuSeparator }\r
-\r
-                            MenuItem {\r
-                                text: "Add account"\r
-                                onClicked: userModelBackend.addAccount()\r
-                            }\r
                             MenuItem {\r
                                 id: accMenuLoginButton\r
                                 onClicked: (userModelBackend.isCurrentUserConnected()\r
                                             ? userModelBackend.logout()\r
                                             : userModelBackend.login() )\r
                             }\r
+\r
                             MenuItem {\r
                                 text: "Remove account"\r
                                 onClicked: userModelBackend.removeAccount()\r
                             }\r
 \r
-                            Component.onCompleted: {\r
-                                if(userModelBackend.numUsers() === 0) {\r
+                            MenuSeparator { id: accountMenuSeparator }\r
+\r
+                            MenuItem {\r
+                                text: "Add account"\r
+                                onClicked: userModelBackend.addAccount()\r
+                            }\r
+\r
+                            MenuSeparator { id: otherMenuSeparator }\r
+\r
+                            MenuItem {\r
+                                text: "Open settings"\r
+                                onClicked: systrayBackend.openSettings()\r
+                            }\r
+\r
+                            MenuItem {\r
+                                text: "Quit Nextcloud"\r
+                                onClicked: systrayBackend.shutdown()\r
+                            }\r
+\r
+                            Component.onCompleted: {/*\r
+                                if(userModelBackend.numUsers() === 1) {\r
                                     accountMenuSeparator.height = 0\r
                                 } else {\r
                                     accountMenuSeparator.height = 13\r
-                                }\r
+                                }*/\r
                             }\r
                         }\r
                     }\r
@@ -214,14 +228,14 @@ Window {
                                 id: currentAccountUser\r
                                 text: userModelBackend.currentUserName()\r
                                 color: "white"\r
-                                font.pointSize: 9\r
+                                font.pixelSize: 12\r
                                 font.bold: true\r
                             }\r
                             Label {\r
                                 id: currentAccountServer\r
                                 text: userModelBackend.currentUserServer()\r
                                 color: "white"\r
-                                font.pointSize: 8\r
+                                font.pixelSize: 10\r
                             }\r
                         }\r
 \r