mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-12-23 12:09:57 +00:00
Setttings: blockchain folder location
This commit is contained in:
parent
9037eed805
commit
62e1dc490f
2 changed files with 88 additions and 4 deletions
3
main.qml
3
main.qml
|
@ -405,7 +405,7 @@ ApplicationWindow {
|
||||||
currentWallet.pauseRefresh();
|
currentWallet.pauseRefresh();
|
||||||
|
|
||||||
appWindow.showProcessingSplash(qsTr("Waiting for daemon to start..."))
|
appWindow.showProcessingSplash(qsTr("Waiting for daemon to start..."))
|
||||||
daemonManager.start(flags, persistentSettings.testnet);
|
daemonManager.start(flags, persistentSettings.testnet, persistentSettings.blockchainDataDir);
|
||||||
persistentSettings.daemonFlags = flags
|
persistentSettings.daemonFlags = flags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -884,6 +884,7 @@ ApplicationWindow {
|
||||||
property string daemonUsername: ""
|
property string daemonUsername: ""
|
||||||
property string daemonPassword: ""
|
property string daemonPassword: ""
|
||||||
property bool transferShowAdvanced: false
|
property bool transferShowAdvanced: false
|
||||||
|
property string blockchainDataDir: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// Information dialog
|
// Information dialog
|
||||||
|
|
|
@ -224,11 +224,38 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
id: daemonFlagsRow
|
id: daemonFlagsRow
|
||||||
Label {
|
Label {
|
||||||
id: daemonFlagsLabel
|
id: daemonFlagsLabel
|
||||||
|
@ -517,6 +544,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
|
// fires on every page load
|
||||||
function onPageCompleted() {
|
function onPageCompleted() {
|
||||||
console.log("Settings page loaded");
|
console.log("Settings page loaded");
|
||||||
|
|
Loading…
Reference in a new issue