Skip to content

Commit 2c112f9

Browse files
committed
gdal tools: use native file dialogs (fixes #5500)
1 parent ab98858 commit 2c112f9

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

python/plugins/GdalTools/tools/GdalTools_utils.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,19 +445,39 @@ def getDialog(self, parent=None, caption='', acceptMode=QFileDialog.AcceptOpen,
445445

446446
@classmethod
447447
def getOpenFileNames(self, parent=None, caption='', filter='', selectedFilter=None, useEncoding=False):
448-
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.ExistingFiles, filter, selectedFilter, useEncoding)
448+
if useEncoding:
449+
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.ExistingFiles, filter, selectedFilter, useEncoding)
450+
res = QFileDialog.getOpenFileNames(parent, caption, getLastUsedDir(), filter)
451+
if len(res) > 0:
452+
setLastUsedDir(res[-1])
453+
return res
449454

450455
@classmethod
451456
def getOpenFileName(self, parent=None, caption='', filter='', selectedFilter=None, useEncoding=False):
452-
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.ExistingFile, filter, selectedFilter, useEncoding)
457+
if useEncoding:
458+
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.ExistingFile, filter, selectedFilter, useEncoding)
459+
res = QFileDialog.getOpenFileName(parent, caption, getLastUsedDir(), filter)
460+
if res:
461+
setLastUsedDir(res)
462+
return res
453463

454464
@classmethod
455465
def getSaveFileName(self, parent=None, caption='', filter='', selectedFilter=None, useEncoding=False):
456-
return self.getDialog(parent, caption, QFileDialog.AcceptSave, QFileDialog.AnyFile, filter, selectedFilter, useEncoding)
466+
if useEncoding:
467+
return self.getDialog(parent, caption, QFileDialog.AcceptSave, QFileDialog.AnyFile, filter, selectedFilter, useEncoding)
468+
res = QFileDialog.getSaveFileName(parent, caption, getLastUsedDir(), filter)
469+
if res:
470+
setLastUsedDir(res)
471+
return res
457472

458473
@classmethod
459474
def getExistingDirectory(self, parent=None, caption='', useEncoding=False):
460-
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.DirectoryOnly, '', None, useEncoding)
475+
if useEncoding:
476+
return self.getDialog(parent, caption, QFileDialog.AcceptOpen, QFileDialog.DirectoryOnly, '', None, useEncoding)
477+
res = QFileDialog.getExistingDirectory(parent, caption, getLastUsedDir(), QFileDialog.ShowDirsOnly)
478+
if res:
479+
setLastUsedDir(res)
480+
return res
461481

462482

463483
class FileFilter:

0 commit comments

Comments
 (0)