aboutsummaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-06-04 12:17:58 +0200
committerRiccardo Spagni <ric@spagni.net>2017-06-04 12:17:58 +0200
commitecaa1a8e2311c43331f377a8baa29d3bc986179d (patch)
tree6be6aa6f42b417d0b5698a0a6d5728bdd9aa071d /pages
parent9e121fb676efe4c1b21aa4fa2d4cab638ce882b6 (diff)
parent62e1dc490f7e2b49bcd319e06a36005cc66f01db (diff)
downloadmonzero-gui-ecaa1a8e2311c43331f377a8baa29d3bc986179d.tar.gz
monzero-gui-ecaa1a8e2311c43331f377a8baa29d3bc986179d.tar.xz
monzero-gui-ecaa1a8e2311c43331f377a8baa29d3bc986179d.zip
Merge pull request #709
62e1dc4 Setttings: blockchain folder location (Jaquee) 9037eed DaemonManager: support dataDir parameter + validator (Jaquee)
Diffstat (limited to 'pages')
-rw-r--r--pages/Settings.qml85
1 files changed, 84 insertions, 1 deletions
diff --git a/pages/Settings.qml b/pages/Settings.qml
index 038af0ae..5a908c0c 100644
--- a/pages/Settings.qml
+++ b/pages/Settings.qml
@@ -247,11 +247,38 @@ Rectangle {
}
}
+ }
+ RowLayout {
+ id: blockchainFolderRow
+ Label {
+ id: blockchainFolderLabel
+ color: "#4A4949"
+ text: qsTr("Blockchain location") + translationManager.emptyString
+ fontSize: 16
+ }
+ LineEdit {
+ id: blockchainFolder
+ Layout.preferredWidth: 200
+ Layout.fillWidth: true
+ text: persistentSettings.blockchainDataDir
+ placeholderText: qsTr("(optional)") + translationManager.emptyString
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ mouse.accepted = false
+ if(persistentSettings.blockchainDataDir != "")
+ blockchainFileDialog.folder = "file://" + persistentSettings.blockchainDataDir
+ blockchainFileDialog.open()
+ blockchainFolder.focus = true
+ }
+ }
+
+ }
}
- ColumnLayout {
+ RowLayout {
id: daemonFlagsRow
Label {
id: daemonFlagsLabel
@@ -540,6 +567,62 @@ Rectangle {
}
}
+ // Choose blockchain folder
+ FileDialog {
+ id: blockchainFileDialog
+ title: qsTr("Please choose a folder") + translationManager.emptyString;
+ selectFolder: true
+ folder: "file://" + persistentSettings.blockchainDataDir
+
+ onAccepted: {
+ var dataDir = walletManager.urlToLocalPath(blockchainFileDialog.fileUrl)
+ var validator = daemonManager.validateDataDir(dataDir);
+ if(!validator.valid) {
+
+ confirmationDialog.title = qsTr("Warning") + translationManager.emptyString;
+ confirmationDialog.text = "";
+ if(validator.readOnly) {
+ confirmationDialog.text += qsTr("Error: Filesystem is read only") + "\n\n"
+ }
+
+ if(validator.storageAvailable < 20) {
+ confirmationDialog.text += qsTr("Warning: There's only %1 GB available on the device. Blockchain requires ~%2 GB of data.").arg(validator.storageAvailable).arg(15) + "\n\n"
+ } else {
+ confirmationDialog.text += qsTr("Note: There's %1 GB available on the device. Blockchain requires ~%2 GB of data.").arg(validator.storageAvailable).arg(15) + "\n\n"
+ }
+
+ if(!validator.lmdbExists) {
+ confirmationDialog.text += qsTr("Note: lmdb folder not found. A new folder will be created.") + "\n\n"
+ }
+
+
+ confirmationDialog.icon = StandardIcon.Question
+ confirmationDialog.cancelText = qsTr("Cancel")
+
+ // Continue
+ confirmationDialog.onAcceptedCallback = function() {
+ persistentSettings.blockchainDataDir = dataDir
+ }
+
+ // Cancel
+ confirmationDialog.onRejectedCallback = function() {
+ };
+
+ confirmationDialog.open()
+ } else {
+ persistentSettings.blockchainDataDir = dataDir
+ }
+
+ delete validator;
+
+
+ }
+ onRejected: {
+ console.log("data dir selection canceled")
+ }
+
+ }
+
// fires on every page load
function onPageCompleted() {
console.log("Settings page loaded");