Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
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 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7900
diff
changeset
|
3 | # Copyright (c) 2007 - 2021 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 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3178
diff
changeset
|
12 | from PyQt5.QtCore import QDir, Qt, QStringListModel |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3178
diff
changeset
|
13 | from PyQt5.QtWidgets import QCompleter, QFileSystemModel |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
529
86332f558b7b
Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
15 | from Globals import isWindowsPlatform |
86332f558b7b
Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
16 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
17 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | class E5FileCompleter(QCompleter): |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | Class implementing a completer for file names. |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
22 | def __init__(self, parent=None, |
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
|
23 | completionMode=QCompleter.CompletionMode.PopupCompletion, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
24 | showHidden=False): |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Constructor |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @param parent parent widget of the completer (QWidget) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
29 | @param completionMode completion mode of the |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | completer (QCompleter.CompletionMode) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
31 | @param showHidden flag indicating to show hidden entries as well |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2822
diff
changeset
|
32 | (boolean) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2302
diff
changeset
|
34 | super(E5FileCompleter, self).__init__(parent) |
2822
449de130268e
Changed the obsoleted use of QDirModel to QFileSystemModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2820
diff
changeset
|
35 | self.__model = QFileSystemModel(self) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | if showHidden: |
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
|
37 | self.__model.setFilter(QDir.Filters( |
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
|
38 | QDir.Filter.Dirs | |
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
|
39 | QDir.Filter.Files | |
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
|
40 | QDir.Filter.Drives | |
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
|
41 | QDir.Filter.AllDirs | |
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
|
42 | QDir.Filter.Hidden)) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | else: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2822
diff
changeset
|
44 | self.__model.setFilter(QDir.Filters( |
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
|
45 | QDir.Filter.Dirs | |
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
|
46 | QDir.Filter.Files | |
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
|
47 | QDir.Filter.Drives | |
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
|
48 | 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
|
49 | self.__model.setRootPath("") |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.setModel(self.__model) |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.setCompletionMode(completionMode) |
529
86332f558b7b
Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
52 | if 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
|
53 | self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | if parent: |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | parent.setCompleter(self) |
4598
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
56 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
57 | 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
|
58 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
59 | Public method to set the 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
|
60 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
61 | @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
|
62 | @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
|
63 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
64 | 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
|
65 | 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
|
66 | self.__model.setRootPath(path) |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
67 | |
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 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
|
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 get the 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
|
71 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
72 | @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
|
73 | @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
|
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 | return self.__model.rootPath() |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
77 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | class E5DirCompleter(QCompleter): |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | Class implementing a completer for directory names. |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
82 | def __init__(self, parent=None, |
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
|
83 | completionMode=QCompleter.CompletionMode.PopupCompletion, |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
84 | showHidden=False): |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | """ |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | Constructor |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | @param parent parent widget of the completer (QWidget) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
89 | @param completionMode completion mode of the |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | completer (QCompleter.CompletionMode) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
91 | @param showHidden flag indicating to show hidden entries as well |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2822
diff
changeset
|
92 | (boolean) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2302
diff
changeset
|
94 | super(E5DirCompleter, self).__init__(parent) |
2822
449de130268e
Changed the obsoleted use of QDirModel to QFileSystemModel.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2820
diff
changeset
|
95 | self.__model = QFileSystemModel(self) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if showHidden: |
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
|
97 | self.__model.setFilter(QDir.Filters( |
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
|
98 | QDir.Filter.Drives | |
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
|
99 | QDir.Filter.AllDirs | |
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
|
100 | QDir.Filter.Hidden)) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | else: |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
529
diff
changeset
|
102 | self.__model.setFilter( |
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
|
103 | QDir.Filters(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
|
104 | self.__model.setRootPath("") |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.setModel(self.__model) |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | self.setCompletionMode(completionMode) |
529
86332f558b7b
Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
107 | if 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
|
108 | self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | if parent: |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | parent.setCompleter(self) |
4598
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
111 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
112 | 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
|
113 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
114 | Public method to set the 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
|
115 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
116 | @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
|
117 | @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
|
118 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
119 | 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
|
120 | 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
|
121 | self.__model.setRootPath(path) |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
122 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
123 | 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
|
124 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
125 | Public method to get the 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
|
126 | |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
127 | @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
|
128 | @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
|
129 | """ |
a5fba000224f
Extended the file completers to set the root directory of the model.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4595
diff
changeset
|
130 | return self.__model.rootPath() |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
132 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | class E5StringListCompleter(QCompleter): |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
529
86332f558b7b
Changed file and dir completers to be case insensitive on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
135 | Class implementing a completer for string lists. |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
5651
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
137 | def __init__(self, parent=None, strings=None, |
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
|
138 | completionMode=QCompleter.CompletionMode.PopupCompletion): |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | """ |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | Constructor |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | @param parent parent widget of the completer (QWidget) |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2822
diff
changeset
|
143 | @param strings list of string to load into the completer |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2822
diff
changeset
|
144 | (list of strings) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
145 | @param completionMode completion mode of the |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | completer (QCompleter.CompletionMode) |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2302
diff
changeset
|
148 | super(E5StringListCompleter, self).__init__(parent) |
5651
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
149 | self.__model = QStringListModel( |
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
150 | [] if strings is None else strings[:], |
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
151 | parent) |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | self.setModel(self.__model) |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | self.setCompletionMode(completionMode) |
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | 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
|
155 | parent.setCompleter(self) |