Extract File Provider storage settings to separate file
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Sun, 14 Jan 2024 18:20:22 +0000 (02:20 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 19 Feb 2024 14:45:22 +0000 (22:45 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
resources.qrc
src/gui/macOS/ui/FileProviderSettings.qml
src/gui/macOS/ui/FileProviderStorageInfo.qml [new file with mode: 0644]

index 217e9c312b392e3d64139793c9af7eb9e906b934..79a38f1e6137006ef1fe761fd193fd996106566a 100644 (file)
@@ -66,5 +66,6 @@
         <file>src/gui/macOS/ui/FileProviderFileDelegate.qml</file>
         <file>src/gui/macOS/ui/FileProviderEvictionDialog.qml</file>
         <file>src/gui/macOS/ui/FileProviderSyncStatus.qml</file>
+        <file>src/gui/macOS/ui/FileProviderStorageInfo.qml</file>
     </qresource>
 </RCC>
index f85618d5214e74927e66b63b5717ec16bd73b5c3..491a8a9f7f44dd591ddbc97bcff973835abf1cb9 100644 (file)
@@ -94,15 +94,12 @@ Page {
                     syncStatus: root.controller.domainSyncStatusForAccount(root.accountUserIdAtHost)
                 }
 
-                GridLayout {
-                    id: generalActionsGrid
+                FileProviderStorageInfo {
+                    id: storageInfo
+                    localUsedStorage: root.controller.localStorageUsageGbForAccount(root.accountUserIdAtHost)
+                    remoteUsedStorage: root.controller.remoteStorageUsageGbForAccount(root.accountUserIdAtHost)
 
-                    property real localUsedStorage: root.controller.localStorageUsageGbForAccount(root.accountUserIdAtHost)
-                    property real remoteUsedStorage: root.controller.remoteStorageUsageGbForAccount(root.accountUserIdAtHost)
-
-                    Layout.fillWidth: true
-                    columns: 3
-                    visible: vfsEnabledCheckBox.checked
+                    onEvictDialogRequested: root.controller.createEvictionWindowForAccount(root.accountUserIdAtHost)
 
                     Connections {
                         target: root.controller
@@ -111,51 +108,16 @@ Page {
                             if (root.accountUserIdAtHost !== accountUserIdAtHost) {
                                 return;
                             }
-
-                            generalActionsGrid.localUsedStorage = root.controller.localStorageUsageGbForAccount(root.accountUserIdAtHost);
+                            storageInfo.localUsedStorage = root.controller.localStorageUsageGbForAccount(root.accountUserIdAtHost);
                         }
 
                         function onRemoteStorageUsageForAccountChanged(accountUserIdAtHost) {
                             if (root.accountUserIdAtHost !== accountUserIdAtHost) {
                                 return;
                             }
-
-                            generalActionsGrid.remoteUsedStorage = root.controller.remoteStorageUsageGbForAccount(root.accountUserIdAtHost);
+                            storageInfo.remoteUsedStorage = root.controller.remoteStorageUsageGbForAccount(root.accountUserIdAtHost);
                         }
                     }
-
-                    EnforcedPlainTextLabel {
-                        Layout.row: 0
-                        Layout.column: 0
-                        Layout.alignment: Layout.AlignLeft | Layout.AlignVCenter
-                        Layout.fillWidth: true
-                        text: qsTr("Local storage use")
-                        font.bold: true
-                    }
-
-                    EnforcedPlainTextLabel {
-                        Layout.row: 0
-                        Layout.column: 1
-                        Layout.alignment: Layout.AlignRight | Layout.AlignVCenter
-                        text: qsTr("%1 GB of %2 GB remote files synced").arg(generalActionsGrid.localUsedStorage).arg(generalActionsGrid.remoteUsedStorage);
-                        color: Style.ncSecondaryTextColor
-                        horizontalAlignment: Text.AlignRight
-                    }
-
-                    CustomButton {
-                        Layout.row: 0
-                        Layout.column: 2
-                        Layout.alignment: Layout.AlignRight | Layout.AlignVCenter
-                        text: qsTr("Evict local copies...")
-                        onPressed: root.controller.createEvictionWindowForAccount(root.accountUserIdAtHost)
-                    }
-
-                    ProgressBar {
-                        Layout.row: 1
-                        Layout.columnSpan: generalActionsGrid.columns
-                        Layout.fillWidth: true
-                        value: generalActionsGrid.localUsedStorage / generalActionsGrid.remoteUsedStorage
-                    }
                 }
 
                 EnforcedPlainTextLabel {
diff --git a/src/gui/macOS/ui/FileProviderStorageInfo.qml b/src/gui/macOS/ui/FileProviderStorageInfo.qml
new file mode 100644 (file)
index 0000000..ff8b6f3
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2024 by Claudio Cambra <claudio.cambra@nextcloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+
+import Style 1.0
+import "../../filedetails"
+import "../../tray"
+
+import com.nextcloud.desktopclient 1.0
+
+GridLayout {
+    id: root
+
+    signal evictDialogRequested()
+
+    required property real localUsedStorage
+    required property real remoteUsedStorage
+
+    Layout.fillWidth: true
+    columns: 3
+
+    EnforcedPlainTextLabel {
+        Layout.row: 0
+        Layout.column: 0
+        Layout.alignment: Layout.AlignLeft | Layout.AlignVCenter
+        Layout.fillWidth: true
+        text: qsTr("Local storage use")
+        font.bold: true
+    }
+
+    EnforcedPlainTextLabel {
+        Layout.row: 0
+        Layout.column: 1
+        Layout.alignment: Layout.AlignRight | Layout.AlignVCenter
+        text: qsTr("%1 GB of %2 GB remote files synced").arg(root.localUsedStorage).arg(root.remoteUsedStorage);
+        color: Style.ncSecondaryTextColor
+        horizontalAlignment: Text.AlignRight
+    }
+
+    CustomButton {
+        Layout.row: 0
+        Layout.column: 2
+        Layout.alignment: Layout.AlignRight | Layout.AlignVCenter
+        text: qsTr("Evict local copies...")
+        onPressed: root.evictDialogRequested()
+    }
+
+    ProgressBar {
+        Layout.row: 1
+        Layout.columnSpan: root.columns
+        Layout.fillWidth: true
+        value: root.localUsedStorage / root.remoteUsedStorage
+    }
+}
\ No newline at end of file