src/eric7/EricWidgets/EricCompleters.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 10439
21c28b0f9e41
permissions
-rw-r--r--

Updated copyright for 2025.

55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3 # Copyright (c) 2007 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing various kinds of completers.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
10 import os
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
11
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
12 from PyQt6.QtCore import QDir, QStringListModel, Qt
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.QtGui import QFileSystemModel
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
14 from PyQt6.QtWidgets import QCompleter
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
16 from eric7.SystemUtilities import OSUtilities
529
86332f558b7b Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
17
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
18
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
19 class EricFileCompleter(QCompleter):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing a completer for file names.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
23
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
24 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
26 parent=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27 completionMode=QCompleter.CompletionMode.PopupCompletion,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28 showHidden=False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
29 ):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
33 @param parent parent widget of the completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
34 @type QWidget
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
35 @param completionMode completion mode of the
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
36 completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
37 @type QCompleter.CompletionMode
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
38 @param showHidden flag indicating to show hidden entries as well
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
39 @type bool
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
41 super().__init__(parent)
2822
449de130268e Changed the obsoleted use of QDirModel to QFileSystemModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
42 self.__model = QFileSystemModel(self)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 if showHidden:
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
44 self.__model.setFilter(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45 QDir.Filter.Dirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
46 | QDir.Filter.Files
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47 | QDir.Filter.Drives
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
48 | QDir.Filter.AllDirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49 | QDir.Filter.Hidden
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50 )
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 else:
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
52 self.__model.setFilter(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53 QDir.Filter.Dirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54 | QDir.Filter.Files
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55 | QDir.Filter.Drives
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56 | QDir.Filter.AllDirs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57 )
4595
f0e48b3e31d4 Fixed an issue with the file system completers not completing.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
58 self.__model.setRootPath("")
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.setModel(self.__model)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.setCompletionMode(completionMode)
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
61 if OSUtilities.isWindowsPlatform():
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
62 self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
10217
7888177e7463 Fixed in issue with several editable combo box selectors, that the value could not be changed if the edited text differed by case only. This was caused by the standard QComboBox completer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
63 else:
7888177e7463 Fixed in issue with several editable combo box selectors, that the value could not be changed if the edited text differed by case only. This was caused by the standard QComboBox completer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
64 self.setCaseSensitivity(Qt.CaseSensitivity.CaseSensitive)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if parent:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 parent.setCompleter(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
68 def setRootPath(self, path):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
69 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
70 Public method to set the root path of the model.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
72 @param path root path for the model
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
73 @type str
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
74 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
75 if not os.path.isdir(path):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
76 path = os.path.dirname(path)
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
77 self.__model.setRootPath(path)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
79 def rootPath(self):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
80 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
81 Public method to get the root path of the model.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
83 @return root path of the model
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
84 @rtype str
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
85 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
86 return self.__model.rootPath()
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
88
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
89 class EricDirCompleter(QCompleter):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 Class implementing a completer for directory names.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
93
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
94 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
95 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96 parent=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97 completionMode=QCompleter.CompletionMode.PopupCompletion,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
98 showHidden=False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
99 ):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
103 @param parent parent widget of the completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
104 @type QWidget
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
105 @param completionMode completion mode of the
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
106 completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
107 @type QCompleter.CompletionMode
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
108 @param showHidden flag indicating to show hidden entries as well
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
109 @type bool
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
111 super().__init__(parent)
2822
449de130268e Changed the obsoleted use of QDirModel to QFileSystemModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
112 self.__model = QFileSystemModel(self)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 if showHidden:
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
114 self.__model.setFilter(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
115 QDir.Filter.Drives | QDir.Filter.AllDirs | QDir.Filter.Hidden
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
116 )
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118 self.__model.setFilter(QDir.Filter.Drives | QDir.Filter.AllDirs)
4595
f0e48b3e31d4 Fixed an issue with the file system completers not completing.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
119 self.__model.setRootPath("")
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.setModel(self.__model)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.setCompletionMode(completionMode)
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
122 if OSUtilities.isWindowsPlatform():
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
123 self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
10217
7888177e7463 Fixed in issue with several editable combo box selectors, that the value could not be changed if the edited text differed by case only. This was caused by the standard QComboBox completer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
124 else:
7888177e7463 Fixed in issue with several editable combo box selectors, that the value could not be changed if the edited text differed by case only. This was caused by the standard QComboBox completer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
125 self.setCaseSensitivity(Qt.CaseSensitivity.CaseSensitive)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 if parent:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 parent.setCompleter(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
128
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
129 def setRootPath(self, path):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
130 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
131 Public method to set the root path of the model.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
133 @param path root path for the model
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
134 @type str
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
135 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
136 if not os.path.isdir(path):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
137 path = os.path.dirname(path)
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
138 self.__model.setRootPath(path)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
139
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
140 def rootPath(self):
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
141 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
142 Public method to get the root path of the model.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
143
4598
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
144 @return root path of the model
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
145 @rtype str
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
146 """
a5fba000224f Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4595
diff changeset
147 return self.__model.rootPath()
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
149
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
150 class EricStringListCompleter(QCompleter):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
529
86332f558b7b Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
152 Class implementing a completer for string lists.
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
157 parent=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 strings=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 completionMode=QCompleter.CompletionMode.PopupCompletion,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160 ):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
164 @param parent parent widget of the completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
165 @type QWidget
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2822
diff changeset
166 @param strings list of string to load into the completer
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
167 @type list of str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
168 @param completionMode completion mode of the
10423
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
169 completer
299802979277 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10217
diff changeset
170 @type QCompleter.CompletionMode
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
172 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 self.__model = QStringListModel([] if strings is None else strings[:], parent)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.setModel(self.__model)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 self.setCompletionMode(completionMode)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 if parent:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
177 parent.setCompleter(self)

eric ide

mercurial