Thu, 30 Dec 2021 11:17:58 +0100
Updated copyright for 2022.
8403
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
8881
54e42bc2437a
Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8406
diff
changeset
|
3 | # Copyright (c) 2021 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> |
8403
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to select files and directories simultaneously. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt6.QtCore import pyqtSlot, QItemSelection |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from PyQt6.QtGui import QFileSystemModel |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt6.QtWidgets import QFileDialog, QPushButton, QLineEdit, QTreeView |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | class EricDirFileDialog(QFileDialog): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | Derived QFileDialog to select files and directories simultaneously. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | For this purpose the none native file dialog is used. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | def __init__(self, parent=None, caption="", directory="", filterStr=""): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | Constructor |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | @param parent parent widget of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | @type QWidget |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @param caption window title of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @param directory working directory of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @param filterStr filter string for the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.__selectedFilesFolders = [] |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | super().__init__(parent, caption, directory, filterStr) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | self.setFileMode(QFileDialog.FileMode.ExistingFiles) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @pyqtSlot() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | def exec(self): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | Public slot to finalize initialization and start the event loop. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @return accepted or rejected |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @rtype QDialog.DialogCode |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.__openBtn = self.findChildren(QPushButton)[0] |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.__fileNameEdit = self.findChild(QLineEdit) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.directoryEntered.connect(self.on_directoryEntered) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__tree = self.findChild(QTreeView) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__tree.selectionModel().selectionChanged.connect( |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.on_selectionChanged) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | return QFileDialog.exec(self) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @pyqtSlot() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | def accept(self): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | Public slot to update the list with the selected files and folders. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | # Avoid to close the dialog if only return is pressed |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | if not self.__openBtn.isEnabled(): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | return |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | self.__selectedFilesFolders = [ |
8406
45d7d0eec4d3
Removed a workaround after PyQt6 was fixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8404
diff
changeset
|
66 | x.data(QFileSystemModel.Roles.FilePathRole) |
8403
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | for x in self.__tree.selectionModel().selectedIndexes() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | if x.column() == 0] |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.hide() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @pyqtSlot(str) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | def on_directoryEntered(self, directory): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | Private slot to reset selections if another directory was entered. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | @param directory name of the directory entered |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | self.__tree.selectionModel().clear() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__fileNameEdit.clear() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.__openBtn.setEnabled(False) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | @pyqtSlot(QItemSelection, QItemSelection) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | def on_selectionChanged(self, selected, deselected): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | Private method to determine the selected files and folders and update |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | the line edit. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | @param selected newly selected entries |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | @type QItemSelection |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | @param deselected deselected entries |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | @type QItemSelection |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | selectedItems = self.__tree.selectionModel().selectedIndexes() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if self.__tree.rootIndex() in selectedItems or selectedItems == []: |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | return |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | selectedFiles = [x.data(QFileSystemModel.Roles.FileNameRole) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | for x in selectedItems if x.column() == 0] |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | enteredFiles = self.__fileNameEdit.text().split('"') |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | enteredFiles = [x.strip() for x in enteredFiles if x.strip()] |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | # Check if there is a directory in the selection. Then update the |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | # lineEdit. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | for selectedFile in selectedFiles: |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | if selectedFile not in enteredFiles: |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | txt = '" "'.join(selectedFiles) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | if len(selectedFiles) > 1: |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | txt = '"{0}"'.format(txt) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.__fileNameEdit.setText(txt) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | break |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | @staticmethod |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | def getOpenFileAndDirNames(parent=None, caption="", directory="", |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | filterStr="", options=None): |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | Static method to get the names of files and directories for opening it. |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | @param parent parent widget of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | @type QWidget |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | @param caption window title of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | @param directory working directory of the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | @param filterStr filter string for the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | @type str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @param options various options for the dialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @type QFileDialog.Options |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | @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:
diff
changeset
|
131 | @rtype list of str |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | if options is None: |
8404
c455e281b193
Fixed an issue in the new EricDirFileDialog and implemented a workaround for a PyQt6 issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8403
diff
changeset
|
134 | options = QFileDialog.Option(0) |
8403
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | options |= QFileDialog.Option.DontUseNativeDialog |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | dlg = EricDirFileDialog(parent, caption, directory, filterStr) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | dlg.setOptions(options) |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | dlg.exec() |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | |
d9fd02e8c28b
Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | return dlg.__selectedFilesFolders |