@ -224,11 +224,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 {
Row Layout {
id: daemonFlagsRow
Label {
id: daemonFlagsLabel
@ -517,6 +544,62 @@ Rectangle {
}
}
/ / C h o o s e b l o c k c h a i n f o l d e r
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" )
/ / C o n t i n u e
confirmationDialog . onAcceptedCallback = function ( ) {
persistentSettings . blockchainDataDir = dataDir
}
/ / C a n c e l
confirmationDialog . onRejectedCallback = function ( ) {
} ;
confirmationDialog . open ( )
} else {
persistentSettings . blockchainDataDir = dataDir
}
delete validator ;
}
onRejected: {
console . log ( "data dir selection canceled" )
}
}
/ / f i r e s o n e v e r y p a g e l o a d
function onPageCompleted ( ) {
console . log ( "Settings page loaded" ) ;