eric6/E5Gui/E5Completers.py

Tue, 02 Mar 2021 17:17:09 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 02 Mar 2021 17:17:09 +0100
changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8176
31965986ecd1
child 8218
7c09585bd960
permissions
-rw-r--r--

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)

eric ide

mercurial