src/eric7/EricWidgets/EricFileDialog.py

Tue, 10 Dec 2024 15:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:46:34 +0100
branch
eric7
changeset 11090
f5f5f5803935
parent 11035
e1e1d6e317c7
child 11148
15e30f0c76a8
permissions
-rw-r--r--

Updated copyright for 2025.

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
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11035
diff changeset
3 # Copyright (c) 2010 - 2025 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
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
12 from PyQt6.QtCore import QCoreApplication
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
13 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
14
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
15 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
16
1910
96641d9a10a2 Fixed an issue adding a sub-repository on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
17 Option = QFileDialog.Option
883
ac0c6a9ab656 Fixed an issue introduced by the last change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
18
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
19 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
20 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
21 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
22 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
23 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
24 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
25 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
26
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
27
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
28 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
29 """
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
30 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
31 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
32
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
33 @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
34 @type str
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
35 @param initialFilter initial filter (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
36 @type str (optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
37 @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
38 @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
39 """
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
40 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
41 fileFilters = filterStr.split(";;")
523
596ad929137e Fixed a bug in E5FileDialog.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 520
diff changeset
42 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
43 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
44 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
45 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
46 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
47 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
48
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
49
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
50 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
51 ## 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
52 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
53
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
54
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
55 def getOpenFileName(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
56 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
57 ):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
58 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
59 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
60
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
61 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
62 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
63 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
64 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
65 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
66 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
67 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
68 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
69 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
70 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
71 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
72 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
73 @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
74 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
75 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
76 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
77 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
78
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
79 return getOpenFileNameAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
80 parent, caption, directory, filterStr, initialFilter, options
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81 )[0]
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
82
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
83
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84 def getOpenFileNameAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85 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
86 ):
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
87 """
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
88 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
89 file name filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
90
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
91 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
92 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
93 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
94 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
95 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
96 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
97 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
98 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
99 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
100 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
101 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
102 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
103 @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
104 @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
105 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
106 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
107 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
108
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
109 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
110 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
111 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
112 return QFileDialog.getOpenFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
113 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
114 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
115
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
116
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
117 def getOpenFileNames(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
118 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
119 ):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
120 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
121 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
122
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
123 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
124 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
125 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
126 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
127 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
128 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
129 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
130 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
131 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
132 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
133 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
134 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
135 @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
136 @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
137 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
138 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
139 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
140
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
141 return getOpenFileNamesAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
142 parent, caption, directory, filterStr, initialFilter, options
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
143 )[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
144
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
145
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146 def getOpenFileNamesAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147 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
148 ):
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
149 """
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
150 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
151 selected file name filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
153 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
154 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
155 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
156 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
157 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
158 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
159 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
160 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
161 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
162 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
163 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
164 @type QFileDialog.Options ((optional)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
165 @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
166 @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
167 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
168 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
169 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
170
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
171 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
172 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
173 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
174 return QFileDialog.getOpenFileNames(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 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
176 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
177
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
178
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
179 def getOpenFileAndDirNames(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
180 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
181 ):
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
182 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
183 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
184
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
185 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
186 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
187 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
188 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
189 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
190 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
191 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
192 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
193 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
194 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
195 @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
196 @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
197 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
198 from .EricDirFileDialog import EricDirFileDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
200 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
201 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
202
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
203 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
204 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
205 )
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
206
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
207
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
208 def getSaveFileName(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
209 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
210 ):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
211 """
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
212 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
213
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
214 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
215 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
216 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
217 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
218 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
219 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
220 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
221 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
222 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
223 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
224 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
225 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
226 @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
227 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
228 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
229 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
230 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
231
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
232 return getSaveFileNameAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
233 parent, caption, directory, filterStr, initialFilter, options
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
234 )[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
235
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
236
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
237 def getSaveFileNameAndFilter(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238 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
239 ):
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
240 """
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
241 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
242 filter.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
244 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
245 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
246 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
247 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
248 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
249 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
250 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
251 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
252 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
253 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
254 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
255 @type QFileDialog.Options ((optional)
8403
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 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
257 @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
258 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
259 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
260 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
261
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
262 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
263 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
264 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
265 return QFileDialog.getSaveFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
266 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
267 )
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
268
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 883
diff changeset
269
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
270 def getExistingDirectory(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
271 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
272 ):
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
273 """
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
274 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
275
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
276 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
277 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
278 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
279 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
280 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
281 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
282 @param options various options for the dialog (defaults to
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
283 QFileDialog.Option.ShowDirsOnly)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
284 @type QFileDialog.Options ((optional)
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8360
diff changeset
285 @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
286 @rtype str
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
287 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
288 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
289 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
290
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
291 if options is None:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
292 options = QFileDialog.Option(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
293 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
294
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
295
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 ## 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
298 ###########################################################################
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
299
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
300
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
301 def getOpenFilePath(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
302 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
303 ):
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
304 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
305 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
306
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
307 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
308 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
309 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
310 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
311 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
312 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
313 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
314 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
315 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
316 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
317 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
318 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
319 @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
320 @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
321 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
322 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
323 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
324
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
325 return getOpenFilePathAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
326 parent, caption, directory, filterStr, initialFilter, options
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
327 )[0]
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
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
330 def getOpenFilePathAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
331 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
332 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
333 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
334 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
335 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
336
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
337 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
338 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
339 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
340 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
341 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
342 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
343 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
344 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
345 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
346 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
347 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
348 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
349 @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
350 @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
351 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
352 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
353 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
354
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
355 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
356 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
357 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
358 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
359 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
360 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
361 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
362
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
363
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
364 def getOpenFilePaths(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
365 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
366 ):
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
367 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
368 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
369
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
370 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
371 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
372 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
373 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
374 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
375 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
376 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
377 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
378 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
379 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
380 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
381 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
382 @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
383 @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
384 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
385 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
386 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
387
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
388 return getOpenFilPathsAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
389 parent, caption, directory, filterStr, initialFilter, options
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
390 )[0]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
391
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
392
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
393 def getOpenFilPathsAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
394 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
395 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
396 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
397 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
398 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
399
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
400 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
401 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
402 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
403 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
404 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
405 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
406 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
407 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
408 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
409 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
410 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
411 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
412 @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
413 @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
414 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
415 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
416 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
417
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
418 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
419 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
420 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
421 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
422 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
423 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
424 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
425
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
426
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
427 def getOpenFileAndDirPaths(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
428 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
429 ):
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 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
432
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
433 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
434 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
435 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
436 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
437 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
438 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
439 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
440 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
441 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
442 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
443 @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
444 @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
445 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
446 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
447
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
448 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
449 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
450
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
451 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
452 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
453 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
454
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
455
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
456 def getSaveFilePath(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
457 parent=None, caption="", directory="", filterStr="", initialFilter="", options=None
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
458 ):
9239
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 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
461
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
462 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
463 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
464 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
465 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
466 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
467 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
468 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
469 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
470 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
471 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
472 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
473 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
474 @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
475 @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
476 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
477 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
478 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
479
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
480 return getSaveFilePathAndFilter(
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
481 parent, caption, str(directory), filterStr, initialFilter, options
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
482 )[0]
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
483
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
484
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
485 def getSaveFilePathAndFilter(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
486 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
487 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
488 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
489 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
490 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
491
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
492 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
493 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
494 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
495 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
496 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
497 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
498 @param filterStr filter string for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
499 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
500 @param initialFilter initial filter for the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
501 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
502 @param options various options for the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
503 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
504 @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
505 @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
506 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
507 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
508 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
509
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
510 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
511 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
512 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
513 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
514 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
515 )
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
516 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
517
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
518
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
519 def getExistingDirectoryPath(
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
520 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
521 ):
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
522 """
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
523 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
524
10537
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
525 @param parent parent widget of the dialog (defaults to None)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
526 @type QWidget (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
527 @param caption window title of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
528 @type str (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
529 @param directory working directory of the dialog (defaults to "")
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
530 @type str or pathlib.Path (optional)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
531 @param options various options for the dialog (defaults to
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
532 QFileDialog.Option.ShowDirsOnly)
cd0fd14d09d5 EricFileDialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
533 @type QFileDialog.Options ((optional)
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
534 @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
535 @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
536 """
11035
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
537 if parent is None:
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
538 parent = QCoreApplication.instance().getMainWindow()
e1e1d6e317c7 Modified some of the EricWidgets dialogs to ensure a valid parent widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10537
diff changeset
539
9239
3c605ab5a8c7 Extended EricDirFileDialog and EricFileDialog to offer a pathlib.Path based interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
540 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
541 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
542 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
543 return pathlib.Path(dirname)
10060
b946699e9e79 Corrected some issues related to unused global variables.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
544
10065
de4ae767b0e3 Corrected and checked some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
545
10060
b946699e9e79 Corrected some issues related to unused global variables.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
546 #
b946699e9e79 Corrected some issues related to unused global variables.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
547 # eflag: noqa = U200

eric ide

mercurial