reworking of getting the path to the file when saving/opening files

This commit is contained in:
vladimir.kuznetsov 2023-09-07 22:45:01 +05:00
parent e1fa24c251
commit b5dd48ad7b
21 changed files with 167 additions and 243 deletions

View file

@ -72,23 +72,20 @@ DrawerType {
imageSource: "qrc:/images/controls/share-2.svg"
onClicked: {
var fileName = ""
if (GC.isMobile()) {
ExportController.saveFile(configFileName)
fileName = configFileName
} else {
fileDialog.open()
fileName = SystemController.getFileName(configCaption,
qsTr("Config files (*" + configExtension + ")"),
StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/" + configFileName,
true,
configExtension)
}
}
FileDialog {
id: fileDialog
acceptLabel: configCaption
nameFilters: [ "Config files (*" + configExtension + ")" ]
fileMode: FileDialog.SaveFile
currentFile: StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/" + configFileName
defaultSuffix: configExtension
onAccepted: {
ExportController.saveFile(fileDialog.currentFile.toString())
if (fileName !== "") {
PageController.showBusyIndicator(true)
ExportController.exportConfig(fileName)
PageController.showBusyIndicator(false)
}
}
}

View file

@ -84,31 +84,22 @@ PageType {
text: qsTr("Make a backup")
onClicked: {
var fileName = ""
if (GC.isMobile()) {
backupAppConfig("AmneziaVPN.backup")
fileName = "AmneziaVPN.backup"
} else {
saveFileDialog.open()
fileName = SystemController.getFileName(qsTr("Save backup file"),
qsTr("Backup files (*.backup)"),
StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/AmneziaVPN",
true,
".backup")
}
}
FileDialog {
id: saveFileDialog
acceptLabel: qsTr("Save backup file")
nameFilters: [ "Backup files (*.backup)" ]
fileMode: FileDialog.SaveFile
currentFile: StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/AmneziaVPN"
defaultSuffix: ".backup"
onAccepted: {
makeBackupButton.backupAppConfig(saveFileDialog.currentFile.toString())
if (fileName !== "") {
PageController.showBusyIndicator(true)
SettingsController.backupAppConfig(fileName)
PageController.showBusyIndicator(false)
}
}
function backupAppConfig(fileName) {
PageController.showBusyIndicator(true)
SettingsController.backupAppConfig(fileName)
PageController.showBusyIndicator(false)
}
}
BasicButtonType {
@ -125,8 +116,13 @@ PageType {
text: qsTr("Restore from backup")
onClicked: {
PageController.setupFileDialogForBackup()
SystemController.getFileName()
var fileName = SystemController.getFileName(qsTr("Open backup file"),
qsTr("Backup files (*.backup)"))
if (fileName !== "") {
PageController.showBusyIndicator(true)
SettingsController.restoreAppConfig(fileName)
PageController.showBusyIndicator(false)
}
}
}
}

View file

@ -101,23 +101,20 @@ PageType {
image: "qrc:/images/controls/save.svg"
onClicked: {
var fileName = ""
if (GC.isMobile()) {
SettingsController.exportLogsFile("AmneziaVPN.log")
fileName = "AmneziaVPN.log"
} else {
fileDialog.open()
fileName = SystemController.getFileName(qsTr("Save logs"),
qsTr("Logs files (*.log)"),
StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/AmneziaVPN",
true,
".log")
}
}
FileDialog {
id: fileDialog
acceptLabel: qsTr("Save logs")
nameFilters: [ "Logs files (*.log)" ]
fileMode: FileDialog.SaveFile
currentFile: StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/AmneziaVPN"
defaultSuffix: ".log"
onAccepted: {
SettingsController.exportLogsFile(fileDialog.currentFile.toString())
if (fileName !== "") {
PageController.showBusyIndicator(true)
SettingsController.exportLogsFile(fileName)
PageController.showBusyIndicator(false)
}
}
}

View file

@ -300,25 +300,19 @@ PageType {
text: qsTr("Save site list")
clickedFunction: function() {
var fileName = ""
if (GC.isMobile()) {
SitesController.exportSites("amezia_tunnel.json")
fileName = "amnezia_sites.json"
} else {
saveFileDialog.open()
fileName = SystemController.getFileName(qsTr("Save sites"),
qsTr("Sites files (*.json)"),
StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/amnezia_sites",
true,
".json")
}
}
FileDialog {
id: saveFileDialog
objectName: saveFileDialog
acceptLabel: qsTr("Save sites")
nameFilters: [ "Sites files (*.json)" ]
fileMode: FileDialog.SaveFile
currentFile: StandardPaths.standardLocations(StandardPaths.DocumentsLocation) + "/sites"
defaultSuffix: ".json"
onAccepted: {
if (fileName !== "") {
PageController.showBusyIndicator(true)
SitesController.exportSites(saveFileDialog.currentFile.toString())
SitesController.exportSites(fileName)
moreActionsDrawer.close()
PageController.showBusyIndicator(false)
}
@ -377,8 +371,11 @@ PageType {
text: qsTr("Replace site list")
clickedFunction: function() {
PageController.setupFileDialogForSites(true)
SystemController.getFileName()
var fileName = SystemController.getFileName(qsTr("Open sites file"),
qsTr("Sites files (*.json)"))
if (fileName !== "") {
importSitesDrawerContent.importSites(fileName, true)
}
}
}
@ -389,13 +386,22 @@ PageType {
text: qsTr("Add imported sites to existing ones")
clickedFunction: function() {
PageController.setupFileDialogForSites(false)
SystemController.getFileName()
importSitesDrawer.close()
moreActionsDrawer.close()
var fileName = SystemController.getFileName(qsTr("Open sites file"),
qsTr("Sites files (*.json)"))
if (fileName !== "") {
importSitesDrawerContent.importSites(fileName, false)
}
}
}
function importSites(fileName, replaceExistingSites) {
PageController.showBusyIndicator(true)
SitesController.importSites(fileName, replaceExistingSites)
PageController.showBusyIndicator(false)
importSitesDrawer.close()
moreActionsDrawer.close()
}
DividerType {}
}
}

View file

@ -70,8 +70,19 @@ It's okay as long as it's from someone you trust.")
leftImageSource: "qrc:/images/controls/folder-open.svg"
clickedFunction: function() {
PageController.setupFileDialogForConfig()
SystemController.getFileName()
var nameFilter = !ServersModel.getServersCount() ? "Config or backup files (*.vpn *.ovpn *.conf *.backup)" :
"Config files (*.vpn *.ovpn *.conf)"
var fileName = SystemController.getFileName(qsTr("Open config file"), nameFilter)
if (fileName !== "") {
if (fileName.indexOf(".backup") !== -1 && !ServersModel.getServersCount()) {
PageController.showBusyIndicator(true)
SettingsController.restoreAppConfig(fileName)
PageController.showBusyIndicator(false)
} else {
ImportController.extractConfigFromFile(fileName)
PageController.goToPage(PageEnum.PageSetupWizardViewConfig)
}
}
}
}

View file

@ -81,42 +81,6 @@ Window {
function onShowPassphraseRequestDrawer() {
privateKeyPassphraseDrawer.open()
}
function onSetupFileDialogForConfig() {
mainFileDialog.acceptLabel = qsTr("Open config file")
mainFileDialog.nameFilters = !ServersModel.getServersCount() ? [ "Config or backup files (*.vpn *.ovpn *.conf *.backup)" ] :
[ "Config files (*.vpn *.ovpn *.conf)" ]
mainFileDialog.acceptFunction = function() {
if (mainFileDialog.selectedFile.toString().indexOf(".backup") !== -1 && !ServersModel.getServersCount()) {
PageController.showBusyIndicator(true)
SettingsController.restoreAppConfig(mainFileDialog.selectedFile.toString())
PageController.showBusyIndicator(false)
} else {
ImportController.extractConfigFromFile(mainFileDialog.selectedFile)
PageController.goToPage(PageEnum.PageSetupWizardViewConfig)
}
}
}
function onSetupFileDialogForSites(replaceExistingSites) {
mainFileDialog.acceptLabel = qsTr("Open sites file")
mainFileDialog.nameFilters = [ "Sites files (*.json)" ]
mainFileDialog.acceptFunction = function() {
PageController.showBusyIndicator(true)
SitesController.importSites(mainFileDialog.selectedFile.toString(), replaceExistingSites)
PageController.showBusyIndicator(false)
}
}
function onSetupFileDialogForBackup() {
mainFileDialog.acceptLabel = qsTr("Open backup file")
mainFileDialog.nameFilters = [ "Backup files (*.backup)" ]
mainFileDialog.acceptFunction = function() {
PageController.showBusyIndicator(true)
SettingsController.restoreAppConfig(mainFileDialog.selectedFile.toString())
PageController.showBusyIndicator(false)
}
}
}
Connections {
@ -234,10 +198,12 @@ Window {
FileDialog {
id: mainFileDialog
property var acceptFunction
property bool isSaveMode: false
objectName: "mainFileDialog"
fileMode: isSaveMode ? FileDialog.SaveFile : FileDialog.OpenFile
onAccepted: acceptFunction()
onAccepted: SystemController.fileDialogClosed(true)
onRejected: SystemController.fileDialogClosed(false)
}
}