src/eric7/EricWidgets/EricDirFileDialog.py

Wed, 13 Jul 2022 14:55:47 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 13 Jul 2022 14:55:47 +0200
branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9239
3c605ab5a8c7
permissions
-rw-r--r--

Reformatted the source code using the 'Black' utility.

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.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18
8403
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 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
21
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 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
23 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @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
27 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @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
29 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @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
31 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @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
33 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.__selectedFilesFolders = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
36
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 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
38 self.setFileMode(QFileDialog.FileMode.ExistingFiles)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @pyqtSlot()
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 def exec(self):
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Public slot to finalize initialization and start the event loop.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @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
46 @rtype QDialog.DialogCode
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 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
49 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
50 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
51 self.__tree = self.findChild(QTreeView)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
52 self.__tree.selectionModel().selectionChanged.connect(self.on_selectionChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53
8403
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)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55
8403
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
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64
8403
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()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68 if x.column() == 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
69 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.hide()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @pyqtSlot(str)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 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
75 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 Private slot to reset selections if another directory was entered.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @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
79 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 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
82 self.__fileNameEdit.clear()
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.__openBtn.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 @pyqtSlot(QItemSelection, QItemSelection)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 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
87 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 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
89 the line edit.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
90
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @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
92 @type QItemSelection
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @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
94 @type QItemSelection
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 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
97 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
98 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
99
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
100 selectedFiles = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101 x.data(QFileSystemModel.Roles.FileNameRole)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102 for x in selectedItems
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103 if x.column() == 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
104 ]
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 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
106 enteredFiles = [x.strip() for x in enteredFiles if x.strip()]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
107
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 # 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
109 # lineEdit.
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 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
111 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
112 txt = '" "'.join(selectedFiles)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 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
114 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
115 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
116 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
117
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @staticmethod
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119 def getOpenFileAndDirNames(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120 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
121 ):
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 Static method to get the names of files and directories for opening it.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
124
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @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
126 @type QWidget
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @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
128 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @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
130 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 @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
132 @type str
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 @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
134 @type QFileDialog.Options
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @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
136 @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
137 """
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 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
139 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
140 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
141 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
142 dlg.setOptions(options)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 dlg.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
144
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 return dlg.__selectedFilesFolders

eric ide

mercurial