SettingsLayout: implement autosave, enabled by default (10 minutes)

This commit is contained in:
xiphon 2020-05-02 01:48:20 +00:00
parent ca79525fdb
commit 503c1af5f8
2 changed files with 39 additions and 0 deletions

View File

@ -1370,6 +1370,8 @@ ApplicationWindow {
property int lockOnUserInActivityInterval: 10 // minutes
property bool blackTheme: true
property bool checkForUpdates: true
property bool autosave: true
property int autosaveMinutes: 10
property bool fiatPriceEnabled: false
property bool fiatPriceToggle: false
@ -1811,6 +1813,24 @@ ApplicationWindow {
}
}
Timer {
id: autosaveTimer
interval: persistentSettings.autosaveMinutes * 60 * 1000
repeat: true
running: persistentSettings.autosave
onTriggered: {
if (currentWallet) {
currentWallet.storeAsync(function(success) {
if (success) {
appWindow.showStatusMessage(qsTr("Autosaved the wallet"), 3);
} else {
appWindow.showStatusMessage(qsTr("Failed to autosave the wallet"), 3);
}
});
}
}
}
// TODO: Make the callback dynamic
Timer {
id: statusMessageTimer

View File

@ -94,6 +94,25 @@ Rectangle {
text: qsTr("Ask for password before sending a transaction") + translationManager.emptyString
}
MoneroComponents.CheckBox {
checked: persistentSettings.autosave
onClicked: persistentSettings.autosave = !persistentSettings.autosave
text: qsTr("Autosave") + translationManager.emptyString
}
MoneroComponents.Slider {
Layout.fillWidth: true
Layout.leftMargin: 35
Layout.topMargin: 6
visible: persistentSettings.autosave
from: 1
stepSize: 1
to: 60
value: persistentSettings.autosaveMinutes
text: "%1 %2 %3".arg(qsTr("Every")).arg(value).arg(qsTr("minute(s)")) + translationManager.emptyString
onMoved: persistentSettings.autosaveMinutes = value
}
MoneroComponents.CheckBox {
id: userInActivityCheckbox
checked: persistentSettings.lockOnUserInActivity