@@ -4,27 +4,31 @@ import QtQuick.Layouts
44
55import StatusQ
66import StatusQ.Core
7- import StatusQ.Core.Backpressure
87import StatusQ.Controls
98import StatusQ.Core.Theme
109import StatusQ.Popups.Dialog
1110
12- import AppLayouts.Profile.stores as ProfileStores
13-
1411import utils
15- import shared.panels
1612import shared.status
1713
1814SettingsContentBase {
1915 id: root
2016
21- required property ProfileStores .DevicesStore devicesStore
17+ required property int backupDataState // Constants.BackupImportState.*
18+ required property string backupDataError
19+
20+ required property int backupImportState // Constants.BackupImportState.*
21+ required property string backupImportError
22+
2223 required property bool messagesBackupEnabled
2324 required property url backupPath
2425
2526 signal backupPathSet (url path)
2627 signal backupMessagesEnabledToggled (bool enabled)
2728
29+ signal performLocalBackupRequested ()
30+ signal importLocalBackupFileRequested (url selectedFile)
31+
2832 ColumnLayout {
2933 id: layout
3034 width: root .contentWidth
@@ -59,31 +63,26 @@ SettingsContentBase {
5963 Layout .leftMargin : Theme .padding
6064 text: qsTr (" Backup now" )
6165 icon .name : {
62- if (root .devicesStore . backupDataState !== Constants .BackupImportState .Completed ) {
66+ if (root .backupDataState !== Constants .BackupImportState .Completed ) {
6367 return " "
6468 }
65- if (root .devicesStore . backupDataError ) {
69+ if (root .backupDataError ) {
6670 return " tiny/exclamation"
6771 }
6872 return " tiny/checkmark"
6973 }
7074 icon .color : {
71- if (root .devicesStore . backupDataState !== Constants .BackupImportState .Completed ) {
75+ if (root .backupDataState !== Constants .BackupImportState .Completed ) {
7276 return Theme .palette .primaryColor1
7377 }
74- if (root .devicesStore . backupDataError ) {
78+ if (root .backupDataError ) {
7579 return Theme .palette .dangerColor1
7680 }
7781 return Theme .palette .successColor1
7882 }
7983
80- loading: root .devicesStore .backupDataState === Constants .BackupImportState .InProgress
81- onClicked : {
82- root .devicesStore .performLocalBackup ()
83- Backpressure .debounce (this , 5000 , () => {
84- root .devicesStore .resetBackupDataState ()
85- })()
86- }
84+ loading: root .backupDataState === Constants .BackupImportState .InProgress
85+ onClicked: root .performLocalBackupRequested ()
8786 }
8887
8988 Separator {
@@ -110,12 +109,10 @@ SettingsContentBase {
110109
111110 StatusSettingsLineButton {
112111 Layout .fillWidth : true
113- anchors .leftMargin : 0
114- anchors .rightMargin : 0
115112 text: qsTr (" Backup your messages" )
116113 isSwitch: true
117- switchChecked : root .messagesBackupEnabled
118- onClicked : ( checked ) => root .backupMessagesEnabledToggled (checked)
114+ checked : root .messagesBackupEnabled
115+ onToggled : root .backupMessagesEnabledToggled (checked)
119116 }
120117
121118 Separator {
@@ -177,33 +174,33 @@ SettingsContentBase {
177174 StatusButton {
178175 Layout .leftMargin : Theme .padding
179176 text: qsTr (" Import backup file" )
180- loading: root .devicesStore . backupImportState === Constants .BackupImportState .InProgress
177+ loading: root .backupImportState === Constants .BackupImportState .InProgress
181178 onClicked: importBackupFileDialog .open ()
182179 }
183180
184181 StatusBaseText {
185182 Layout .fillWidth : true
186183 Layout .leftMargin : Theme .padding
187184 color: Theme .palette .successColor1
188- visible: root .devicesStore . backupImportState === Constants .BackupImportState .Completed && ! root . devicesStore .backupImportError
185+ visible: root .backupImportState === Constants .BackupImportState .Completed && ! root .backupImportError
189186 text: qsTr (" Success importing local data" )
190187 }
191188
192189 StatusBaseText {
193190 Layout .fillWidth : true
194191 Layout .leftMargin : Theme .padding
195192 color: Theme .palette .dangerColor1
196- visible: !! root .devicesStore . backupImportError
193+ visible: !! root .backupImportError
197194 wrapMode: Text .WordWrap
198- text: qsTr (" Error importing backup file: %1" ).arg (root .devicesStore . backupImportError )
195+ text: qsTr (" Error importing backup file: %1" ).arg (root .backupImportError )
199196 }
200197 }
201198
202199 StatusFolderDialog {
203200 id: backupPathDialog
204201
205202 title: qsTr (" Select your backup directory" )
206- currentFolder: root .devicesStore . toFileUri ( root . backupPath )
203+ currentFolder: root .backupPath
207204 onAccepted: root .backupPathSet (backupPathDialog .selectedFolder )
208205 }
209206
@@ -212,7 +209,12 @@ SettingsContentBase {
212209
213210 title: qsTr (" Select your backup file" )
214211 nameFilters: [qsTr (" Supported backup formats (%1)" ).arg (" *.bkp" )]
215- currentFolder: root .devicesStore .toFileUri (root .backupPath )
216- onAccepted: root .devicesStore .importLocalBackupFile (importBackupFileDialog .selectedFile )
212+ currentFolder: root .backupPath
213+ onAccepted: root .importLocalBackupFileRequested (importBackupFileDialog .selectedFile )
214+ }
215+
216+ component Separator: Rectangle {
217+ implicitHeight: 1
218+ color: Theme .palette .separator
217219 }
218220}
0 commit comments