show errors on lock/unlock actions
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Wed, 20 Apr 2022 11:44:19 +0000 (13:44 +0200)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Mon, 2 May 2022 11:52:05 +0000 (13:52 +0200)
use a native dialog to show users errors when trying to lock/unlock
files

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/gui/accountmanager.cpp
src/gui/systray.h
src/gui/tray/Window.qml

index cfa569b6a6d3aaf70a09cecf4ebe24d0ef789323..bb678ab607f7d057d7b89f0e20040a5532826430 100644 (file)
@@ -392,6 +392,8 @@ AccountPtr AccountManager::createAccount()
     acc->setSslErrorHandler(new SslDialogErrorHandler);
     connect(acc.data(), &Account::proxyAuthenticationRequired,
         ProxyAuthHandler::instance(), &ProxyAuthHandler::handleProxyAuthenticationRequired);
+    connect(acc.data(), &Account::lockFileError,
+        Systray::instance(), &Systray::showErrorMessageDialog);
 
     return acc;
 }
index 7941978a3a32451f41e775681c40dcc9f2fc0744..85978467a5061763b2f2bf0ab17e0341750dcb86 100644 (file)
@@ -98,6 +98,7 @@ signals:
     void openShareDialog(const QString &sharePath, const QString &localPath);
     void showFileActivityDialog(const QString &objectName, const int objectId);
     void sendChatMessage(const QString &token, const QString &message, const QString &replyTo);
+    void showErrorMessageDialog(const QString &error);
 
 public slots:
     void slotNewUserSelected();
index c1c56039cf794f0f1e3c7d9f49040822478a7214..cfb6aaacd40c4be134c94bfae08802b620d1f389 100644 (file)
@@ -5,6 +5,7 @@ import QtQuick.Window 2.3
 import QtQuick.Controls 2.3\r
 import QtQuick.Layouts 1.2\r
 import QtGraphicalEffects 1.0\r
+import Qt.labs.platform 1.1 as NativeDialogs\r
 import "../"\r
 \r
 // Custom qml modules are in /theme (and included by resources.qrc)\r
@@ -62,6 +63,19 @@ Window {
         }\r
     }\r
 \r
+    Component {\r
+        id: errorMessageDialog\r
+\r
+        NativeDialogs.MessageDialog {\r
+            id: dialog\r
+\r
+            title: Systray.windowTitle\r
+\r
+            onAccepted: destroy()\r
+            onRejected: destroy()\r
+        }\r
+    }\r
+\r
     Connections {\r
         target: Systray\r
         function onShowWindow() {\r
@@ -84,6 +98,12 @@ Window {
         function onShowFileActivityDialog(objectName, objectId) {\r
             openFileActivityDialog(objectName, objectId)\r
         }\r
+\r
+        function onShowErrorMessageDialog(error) {\r
+            var newErrorDialog = errorMessageDialog.createObject(trayWindow)\r
+            newErrorDialog.text = error\r
+            newErrorDialog.open()\r
+        }\r
     }\r
 \r
     OpacityMask {\r