src/eric7/EricWidgets/EricFileDialog.py

Sat, 31 Dec 2022 16:23:21 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 31 Dec 2022 16:23:21 +0100
branch
eric7
changeset 9653
e67609152c5e
parent 9624
b47dfa7a137d
child 10060
b946699e9e79
permissions
-rw-r--r--

Updated copyright for 2023.

520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
3 # Copyright (c) 2010 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
7 Module implementing alternative functions for the QFileDialog static methods.
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
10 import pathlib
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
11
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
12 from PyQt6.QtWidgets import QFileDialog
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
14 from eric7.SystemUtilities import OSUtilities
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
15
1910
96641d9a10a2 Fixed an issue adding a sub-repository on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
16 Option = QFileDialog.Option
883
ac0c6a9ab656 Fixed an issue introduced by the last change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
17
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
18 ShowDirsOnly = QFileDialog.Option.ShowDirsOnly
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
19 DontResolveSymlinks = QFileDialog.Option.DontResolveSymlinks
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
20 DontConfirmOverwrite = QFileDialog.Option.DontConfirmOverwrite
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
21 DontUseNativeDialog = QFileDialog.Option.DontUseNativeDialog
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
22 ReadOnly = QFileDialog.Option.ReadOnly
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
23 HideNameFilterDetails = QFileDialog.Option.HideNameFilterDetails
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
24 DontUseCustomDirectoryIcons = QFileDialog.Option.DontUseCustomDirectoryIcons
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
25
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
26
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
27 def __reorderFilter(filterStr, initialFilter=""):
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
29 Private function to reorder the file filter to cope with a KDE issue
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
30 introduced by distributor's usage of KDE file dialogs.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
32 @param filterStr Qt file filter
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
33 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
34 @param initialFilter initial filter
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
35 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
36 @return the rearranged Qt file filter
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
37 @rtype str
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
39 if initialFilter and not OSUtilities.isMacPlatform():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40 fileFilters = filterStr.split(";;")
523
596ad929137e Fixed a bug in E5FileDialog.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 520
diff changeset
41 if len(fileFilters) < 10 and initialFilter in fileFilters:
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 fileFilters.remove(initialFilter)
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 fileFilters.insert(0, initialFilter)
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 return ";;".join(fileFilters)
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 else:
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
46 return filterStr
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
48
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
49 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
50 ## String based interface
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
51 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
52
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
53
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54 def getOpenFileName(parent=None, caption="", directory="", filterStr="", options=None):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
55 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
56 Module function to get the name of a file for opening it.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
58 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
59 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
60 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
61 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
62 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
63 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
64 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
65 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
66 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
67 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
68 @return name of file to be opened
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
69 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
70 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
71 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
72 options = QFileDialog.Option(0)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
73 return QFileDialog.getOpenFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 parent, caption, directory, filterStr, "", options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75 )[0]
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
76
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
77
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78 def getOpenFileNameAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
79 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80 ):
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 Module function to get the name of a file for opening it and the selected
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 file name filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
85 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
86 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
87 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
88 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
89 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
90 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
91 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
92 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
93 @param initialFilter initial filter for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
94 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
95 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
96 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
97 @return name of file to be opened and selected filter
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
98 @rtype tuple of (str, str)
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
100 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
101 options = QFileDialog.Option(0)
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
102 newfilter = __reorderFilter(filterStr, initialFilter)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
103 return QFileDialog.getOpenFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
104 parent, caption, directory, newfilter, initialFilter, options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
105 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
106
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
107
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108 def getOpenFileNames(parent=None, caption="", directory="", filterStr="", options=None):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
109 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
110 Module function to get a list of names of files for opening.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
111
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
112 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
113 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
114 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
115 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
116 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
117 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
118 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
119 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
120 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
121 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
122 @return list of file names to be opened
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
123 @rtype list of str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
124 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
125 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
126 options = QFileDialog.Option(0)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
127 return QFileDialog.getOpenFileNames(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
128 parent, caption, directory, filterStr, "", options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129 )[0]
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
131
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132 def getOpenFileNamesAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134 ):
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 """
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
136 Module function to get a list of names of files for opening and the
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
137 selected file name filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
139 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
140 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
141 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
142 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
143 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
144 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
145 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
146 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
147 @param initialFilter initial filter for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
148 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
149 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
150 @type QFileDialog.Options
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
151 @return list of file names to be opened and selected filter
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
152 @rtype tuple of (list of str, str)
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
154 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
155 options = QFileDialog.Option(0)
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
156 newfilter = __reorderFilter(filterStr, initialFilter)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
157 return QFileDialog.getOpenFileNames(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 parent, caption, directory, newfilter, initialFilter, options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
160
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
161
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162 def getOpenFileAndDirNames(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163 parent=None, caption="", directory="", filterStr="", options=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164 ):
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
165 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
166 Module function to get the names of files and directories for opening.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
168 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
169 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
170 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
171 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
172 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
173 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
174 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
175 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
176 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
177 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
178 @return names of the selected files and folders
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
179 @rtype list of str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
180 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
181 from .EricDirFileDialog import EricDirFileDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
183 return EricDirFileDialog.getOpenFileAndDirNames(
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
184 parent, caption, directory, filterStr, options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
185 )
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
186
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
187
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188 def getSaveFileName(parent=None, caption="", directory="", filterStr="", options=None):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
189 """
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
190 Module function to get the name of a file for saving.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
191
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
192 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
193 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
194 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
195 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
196 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
197 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
198 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
199 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
200 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
201 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
202 @return name of file to be saved
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
203 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
204 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
205 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
206 options = QFileDialog.Option(0)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
207 return QFileDialog.getSaveFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
208 parent, caption, directory, filterStr, "", options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
209 )[0]
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
211
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212 def getSaveFileNameAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
214 ):
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 """
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
216 Module function to get the name of a file for saving and the selected file name
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
217 filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
219 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
220 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
221 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
222 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
223 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
224 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
225 @param filterStr filter string for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
226 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
227 @param initialFilter initial filter for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
228 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
229 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
230 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
231 @return name of file to be saved and selected filte
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
232 @rtype tuple of (str, str)
520
b0f523c3b037 Added code to cope with Linux distributor's usage of KDE wrapper dialogs for the Qt file dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
234 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
235 options = QFileDialog.Option(0)
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
236 newfilter = __reorderFilter(filterStr, initialFilter)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
237 return QFileDialog.getSaveFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238 parent, caption, directory, newfilter, initialFilter, options
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
239 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
240
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
241
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
242 def getExistingDirectory(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243 parent=None, caption="", directory="", options=QFileDialog.Option.ShowDirsOnly
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 ):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
245 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
246 Module function to get the name of a directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
247
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
248 @param parent parent widget of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
249 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
250 @param caption window title of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
251 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
252 @param directory working directory of the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
253 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
254 @param options various options for the dialog
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
255 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
256 @return name of selected directory
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
257 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
258 """
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
259 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
260 options = QFileDialog.Option(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
261 return QFileDialog.getExistingDirectory(parent, caption, directory, options)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
262
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
263
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
264 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
265 ## pathlib.Path based interface
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
266 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
267
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
268
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
269 def getOpenFilePath(parent=None, caption="", directory="", filterStr="", options=None):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
270 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
271 Module function to get the path of a file for opening it.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
272
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
273 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
274 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
275 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
276 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
277 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
278 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
279 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
280 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
281 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
282 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
283 @return path of file to be opened
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
284 @rtype pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
285 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
286 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
287 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
288 filename = QFileDialog.getOpenFileName(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
289 parent, caption, str(directory), filterStr, "", options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
290 )[0]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
291 return pathlib.Path(filename)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
292
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
293
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
294 def getOpenFilePathAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
295 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
296 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
297 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
298 Module function to get the path of a file for opening it and the selected
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
299 file name filter.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
300
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
301 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
302 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
303 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
304 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
305 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
306 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
307 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
308 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
309 @param initialFilter initial filter for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
310 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
311 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
312 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
313 @return path of file to be opened and selected filter
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
314 @rtype tuple of (pathlib.Path, str)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
315 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
316 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
317 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
318 newfilter = __reorderFilter(filterStr, initialFilter)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
319 filename, selectedFilter = QFileDialog.getOpenFileName(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
320 parent, caption, str(directory), newfilter, initialFilter, options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
321 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
322 return pathlib.Path(filename), selectedFilter
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
323
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
324
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
325 def getOpenFilePaths(parent=None, caption="", directory="", filterStr="", options=None):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
326 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
327 Module function to get a list of paths of files for opening.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
328
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
329 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
330 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
331 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
332 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
333 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
334 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
335 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
336 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
337 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
338 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
339 @return list of file paths to be opened
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
340 @rtype list of pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
341 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
342 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
343 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
344 filenames = QFileDialog.getOpenFileNames(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
345 parent, caption, str(directory), filterStr, "", options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
346 )[0]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
347 return [pathlib.Path(f) for f in filenames]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
348
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
349
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
350 def getOpenFilPathsAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
351 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
352 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
353 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
354 Module function to get a list of paths of files for opening and the
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
355 selected file name filter.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
356
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
357 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
358 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
359 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
360 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
361 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
362 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
363 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
364 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
365 @param initialFilter initial filter for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
366 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
367 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
368 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
369 @return list of file paths to be opened and selected filter
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
370 @rtype tuple of (list of pathlib.Path, str)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
371 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
372 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
373 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
374 newfilter = __reorderFilter(filterStr, initialFilter)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
375 filenames, selectedFilter = QFileDialog.getOpenFileNames(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
376 parent, caption, str(directory), newfilter, initialFilter, options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
377 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
378 return [pathlib.Path(f) for f in filenames], selectedFilter
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
379
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
380
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
381 def getOpenFileAndDirPaths(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
382 parent=None, caption="", directory="", filterStr="", options=None
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
383 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
384 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
385 Module function to get the paths of files and directories for opening.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
386
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
387 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
388 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
389 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
390 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
391 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
392 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
393 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
394 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
395 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
396 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
397 @return paths of the selected files and folders
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
398 @rtype list of pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
399 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
400 from .EricDirFileDialog import EricDirFileDialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
401
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
402 return EricDirFileDialog.getOpenFileAndDirPaths(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
403 parent, caption, directory, filterStr, options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
404 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
405
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
406
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
407 def getSaveFilePath(parent=None, caption="", directory="", filterStr="", options=None):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
408 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
409 Module function to get the path of a file for saving.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
410
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
411 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
412 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
413 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
414 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
415 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
416 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
417 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
418 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
419 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
420 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
421 @return path of file to be saved
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
422 @rtype pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
423 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
424 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
425 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
426 filename = QFileDialog.getSaveFileName(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
427 parent, caption, str(directory), filterStr, "", options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
428 )[0]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
429 return pathlib.Path(filename)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
430
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
431
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
432 def getSaveFilePathAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
433 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
434 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
435 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
436 Module function to get the path of a file for saving and the selected
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
437 file name filter.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
438
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
439 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
440 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
441 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
442 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
443 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
444 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
445 @param filterStr filter string for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
446 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
447 @param initialFilter initial filter for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
448 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
449 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
450 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
451 @return path of file to be saved and selected filte
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
452 @rtype tuple of (pathlib.Path, str)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
453 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
454 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
455 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
456 newfilter = __reorderFilter(filterStr, initialFilter)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
457 filename, selectedFilter = QFileDialog.getSaveFileName(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
458 parent, caption, directory, newfilter, initialFilter, options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
459 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
460 return pathlib.Path(filename), selectedFilter
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
461
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
462
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
463 def getExistingDirectoryPath(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
464 parent=None, caption="", directory="", options=QFileDialog.Option.ShowDirsOnly
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
465 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
466 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
467 Module function to get the path of a directory.
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
468
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
469 @param parent parent widget of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
470 @type QWidget
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
471 @param caption window title of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
472 @type str
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
473 @param directory working directory of the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
474 @type str or pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
475 @param options various options for the dialog
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
476 @type QFileDialog.Options
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
477 @return path of selected directory
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
478 @rtype pathlib.Path
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
479 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
480 if options is None:
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
481 options = QFileDialog.Option(0)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
482 dirname = QFileDialog.getExistingDirectory(parent, caption, str(directory), options)
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
483 return pathlib.Path(dirname)

eric ide

mercurial