diff options
| author | Riccardo Spagni <ric@spagni.net> | 2017-06-04 12:17:58 +0200 |
|---|---|---|
| committer | Riccardo Spagni <ric@spagni.net> | 2017-06-04 12:17:58 +0200 |
| commit | ecaa1a8e2311c43331f377a8baa29d3bc986179d (patch) | |
| tree | 6be6aa6f42b417d0b5698a0a6d5728bdd9aa071d /pages | |
| parent | 9e121fb676efe4c1b21aa4fa2d4cab638ce882b6 (diff) | |
| parent | 62e1dc490f7e2b49bcd319e06a36005cc66f01db (diff) | |
| download | monzero-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.qml | 85 |
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"); |
