From b9ae82ce3e1d1cc3a2785dbbc153a69233f1babe Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Mon, 15 Jan 2024 02:06:21 +0800 Subject: [PATCH] Extract sync status layout to separate file Signed-off-by: Claudio Cambra --- resources.qrc | 1 + src/gui/macOS/ui/FileProviderSettings.qml | 38 +------------ src/gui/macOS/ui/FileProviderSyncStatus.qml | 61 +++++++++++++++++++++ 3 files changed, 64 insertions(+), 36 deletions(-) create mode 100644 src/gui/macOS/ui/FileProviderSyncStatus.qml diff --git a/resources.qrc b/resources.qrc index 70747c1b9..217e9c312 100644 --- a/resources.qrc +++ b/resources.qrc @@ -65,5 +65,6 @@ src/gui/macOS/ui/FileProviderSettings.qml src/gui/macOS/ui/FileProviderFileDelegate.qml src/gui/macOS/ui/FileProviderEvictionDialog.qml + src/gui/macOS/ui/FileProviderSyncStatus.qml diff --git a/src/gui/macOS/ui/FileProviderSettings.qml b/src/gui/macOS/ui/FileProviderSettings.qml index f87ce1e3a..f85618d52 100644 --- a/src/gui/macOS/ui/FileProviderSettings.qml +++ b/src/gui/macOS/ui/FileProviderSettings.qml @@ -90,42 +90,8 @@ Page { active: vfsEnabledCheckBox.checked sourceComponent: ColumnLayout { - GridLayout { - id: currentSyncGrid - - readonly property var syncStatus: root.controller.domainSyncStatusForAccount(root.accountUserIdAtHost) - - EnforcedPlainTextLabel { - Layout.row: 0 - Layout.column: 1 - Layout.columnSpan: currentSyncGrid.syncStatus.syncing ? 2 : 1 - Layout.fillWidth: true - text: currentSyncGrid.syncStatus.syncing ? qsTr("Syncing") : qsTr("All synced!") - } - - NCBusyIndicator { - id: syncIcon - - property int size: Style.trayListItemIconSize * 0.6 - - Layout.row: 0 - Layout.rowSpan: 2 - Layout.column: 0 - Layout.preferredWidth: size - Layout.preferredHeight: size - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - imageSource: currentSyncGrid.syncStatus.icon - running: currentSyncGrid.syncStatus.syncing - } - - ProgressBar { - Layout.row: 1 - Layout.column: 1 - Layout.fillWidth: true - value: currentSyncGrid.syncStatus.fractionCompleted - visible: currentSyncGrid.syncStatus.syncing - } + FileProviderSyncStatus { + syncStatus: root.controller.domainSyncStatusForAccount(root.accountUserIdAtHost) } GridLayout { diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml new file mode 100644 index 000000000..9a16358eb --- /dev/null +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2024 by Claudio Cambra + * + * 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 + + required property var syncStatus + + EnforcedPlainTextLabel { + Layout.row: 0 + Layout.column: 1 + Layout.columnSpan: root.syncStatus.syncing ? 2 : 1 + Layout.fillWidth: true + text: root.syncStatus.syncing ? qsTr("Syncing") : qsTr("All synced!") + } + + NCBusyIndicator { + id: syncIcon + + property int size: Style.trayListItemIconSize * 0.6 + + Layout.row: 0 + Layout.rowSpan: 2 + Layout.column: 0 + Layout.preferredWidth: size + Layout.preferredHeight: size + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + imageSource: root.syncStatus.icon + running: root.syncStatus.syncing + } + + ProgressBar { + Layout.row: 1 + Layout.column: 1 + Layout.fillWidth: true + value: root.syncStatus.fractionCompleted + visible: root.syncStatus.syncing + } +} \ No newline at end of file -- 2.30.2