def getDialog(self, parent=None, caption='', acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile, filter='', selectedFilter=None, useEncoding=False): if useEncoding: dialog = QgsEncodingFileDialog(parent, caption, getLastUsedDir(), filter, getLastUsedEncoding()) else: dialog = QFileDialog(parent, caption, getLastUsedDir(), filter) dialog.setFileMode(fileMode) dialog.setAcceptMode(acceptMode) if selectedFilter is not None: dialog.selectNameFilter(selectedFilter[0]) if not dialog.exec_(): if useEncoding: return ('', None) return '' # change the selected filter value if selectedFilter is not None: selectedFilter[0] = dialog.selectedNameFilter() # save the last used dir and return the selected files files = dialog.selectedFiles() if files != '': setLastUsedDir(files[0]) if fileMode != QFileDialog.ExistingFiles: files = files[0] # append the extension if not already present if fileMode == QFileDialog.AnyFile: firstExt = None for ext in FileFilter.getFilterExtensions( dialog.selectedNameFilter()): if FileFilter.filenameMatchesFilterExt(files, ext): firstExt = None break if firstExt is None: firstExt = ext if firstExt is not None: if firstExt.startswith('*'): files += firstExt[1:] if useEncoding: encoding = dialog.encoding() # encoding setted yet by QgsEncodingFileDialog #setLastUsedEncoding(encoding) return (files, encoding) return files
def getDialog( self, parent=None, caption="", acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile, filter="", selectedFilter=None, useEncoding=False, ): if useEncoding: dialog = QgsEncodingFileDialog(parent, caption, getLastUsedDir(), filter, getLastUsedEncoding()) else: dialog = QFileDialog(parent, caption, getLastUsedDir(), filter) dialog.setFileMode(fileMode) dialog.setAcceptMode(acceptMode) if selectedFilter is not None: dialog.selectNameFilter(selectedFilter[0]) if not dialog.exec_(): if useEncoding: return ("", None) return "" # change the selected filter value if selectedFilter is not None: selectedFilter[0] = dialog.selectedNameFilter() # save the last used dir and return the selected files files = dialog.selectedFiles() if files != "": setLastUsedDir(files[0]) if fileMode != QFileDialog.ExistingFiles: files = files[0] # append the extension if not already present if fileMode == QFileDialog.AnyFile: firstExt = None for ext in FileFilter.getFilterExtensions(dialog.selectedNameFilter()): if FileFilter.filenameMatchesFilterExt(files, ext): firstExt = None break if firstExt is None: firstExt = ext if firstExt is not None: if firstExt.startswith("*"): files += firstExt[1:] if useEncoding: encoding = dialog.encoding() # encoding setted yet by QgsEncodingFileDialog # setLastUsedEncoding(encoding) return (files, encoding) return files