Fri, 03 May 2019 22:56:07 +0200
Finetuning of non-expandable types.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6645
ad476851d7e0
Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
3 | # Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
7 | Module implementing the variables viewer view based on QTreeView. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3060
diff
changeset
|
10 | from __future__ import unicode_literals |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
11 | |
2717
34ef4eccdf6c
Avoid conversion of unicode to string and back, which could produce an exception in Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2677
diff
changeset
|
12 | try: |
5624
cdd346d8858b
Removed a bunch of __IGNORE_WARNING_M131__ markers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
13 | str = unicode |
3484 | 14 | except NameError: |
2717
34ef4eccdf6c
Avoid conversion of unicode to string and back, which could produce an exception in Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2677
diff
changeset
|
15 | pass |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2511
diff
changeset
|
16 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
17 | import ast |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
18 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
19 | from PyQt5.QtCore import (Qt, QAbstractItemModel, QModelIndex, QRegExp, |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
20 | QCoreApplication, QSortFilterProxyModel, pyqtSignal) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
21 | from PyQt5.QtGui import QBrush, QColor, QFontMetrics |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
22 | from PyQt5.QtWidgets import QTreeView, QAbstractItemView, QToolTip, QMenu |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
24 | from E5Gui.E5Application import e5App |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
96
9624a110667d
Started to clean up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
26 | from .Config import ConfigVarTypeDispStrings |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
27 | from DebugClients.Python.DebugConfig import ConfigQtNames, ConfigKnownQtTypes |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
2511
a0ff5574e43a
Changed the way multi line strings are shown in the value column of the variables viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2400
diff
changeset
|
29 | import Utilities |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
30 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
31 | SORT_ROLE = Qt.UserRole |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
34 | class VariableItem(object): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
36 | Class implementing the data structure for all variable items. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
38 | Type2Indicators = { |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
39 | # Python types |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
40 | 'list': '[]', |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
41 | 'tuple': '()', |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
42 | 'dict': '{:}', # __IGNORE_WARNING_M613__ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
43 | 'set': '{}', # __IGNORE_WARNING_M613__ |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
44 | 'frozenset': '{}', # __IGNORE_WARNING_M613__ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
45 | 'numpy.ndarray': '[ndarray]', # __IGNORE_WARNING_M613__ |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
46 | } |
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
47 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
48 | # Initialize regular expression for unprintable strings |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
49 | rx_nonprintable = QRegExp(r"""(\\x\d\d)+""") |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
50 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
51 | noOfItemsStr = QCoreApplication.translate("VariablesViewer", "{0} items") |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
52 | |
6994
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
53 | arrayTypes = { |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
54 | 'list', 'tuple', 'dict', 'set', 'frozenset', 'numpy.ndarray', |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
55 | 'django.MultiValueDict', 'array.array', 'collections.defaultdict', |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
56 | "class 'dict_items'", "class 'dict_keys'", "class 'dict_values'", |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
57 | } |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
58 | |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
59 | nonExpandableTypes = ( |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
60 | 'method_descriptor', 'wrapper_descriptor', '', 'getset_descriptor', |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
61 | 'method-wrapper', 'member_descriptor', |
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
62 | ) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
63 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
64 | def __init__(self, parent, dvar, dtype, dvalue): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
66 | Constructor |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | @param parent reference to the parent item |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
69 | @type VariableItem |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
70 | @param dvar variable name |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
71 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
72 | @param dtype type string |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
73 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
74 | @param dvalue value string |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
75 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
76 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
77 | self.parent = parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
78 | # Take the additional methods into account for childCount |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
79 | self.methodCount = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
80 | self.childCount = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
81 | self.currentCount = -1 # -1 indicates to (re)load childs |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
82 | # Indicator that there are childs |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
83 | self.hasChilds = False |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
84 | # Indicator that item was at least once fully populated |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
85 | self.wasPopulated = False |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
86 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
87 | self.childs = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
88 | # Flag to prevent endless reloading of current item while waiting on |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
89 | # a response from debugger |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
90 | self.pendigFetch = False |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
91 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
92 | # Set of childs items, which are displayed the first time or changed |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
93 | self.newItems = set() |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
94 | self.changedItems = set() |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
95 | # Name including its ID if it's a dict, set, etc. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
96 | self.nameWithId = dvar |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
97 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
98 | self.name = '' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
99 | self.sort = '' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
100 | self.type = '' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
101 | self.indicator = '' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
102 | self.value = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
103 | self.valueShort = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
104 | self.tooltip = '' |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
105 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
106 | self.__getName(dvar) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
107 | self.__getType(dtype) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
108 | self.__getValue(dtype, dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
109 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
110 | def __getName(self, dvar): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
111 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
112 | Private method to extract the variable name. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
113 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
114 | @param dvar name of variable maybe with ID |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
115 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
116 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
117 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
118 | idx = dvar.index(" (ID:") |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
119 | dvar = dvar[:idx] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
120 | except ValueError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
121 | pass |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
122 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
123 | self.name = dvar |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
124 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
125 | # Convert numbers to strings with preceding zeros |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
126 | sort = int(dvar) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
127 | sort = "{0:06}".format(sort) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
128 | except ValueError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
129 | sort = dvar.lower() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
130 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
131 | self.sort = sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
132 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
133 | def __getType(self, dtype): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
135 | Private method to process the type of the variable. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
136 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
137 | If type is known to have childs, the corresponding flag is set. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
138 | @param dtype type string |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
139 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
140 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
141 | # Python class? |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
142 | if dtype.startswith('class '): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
143 | dtype = dtype[7:-1] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
144 | # Qt related stuff? |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
145 | elif (dtype.startswith(ConfigQtNames) and |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
146 | dtype.endswith(ConfigKnownQtTypes)): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
147 | self.hasChilds = True |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
148 | |
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
149 | elif dtype in ('instance', 'class'): |
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
150 | self.hasChilds = True |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
151 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
152 | vtype = ConfigVarTypeDispStrings.get(dtype, dtype) |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
153 | # Unkown types should be expandable by default |
6994
681ed8916e69
Finetuning of non-expandable types.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6993
diff
changeset
|
154 | if vtype is dtype and dtype not in self.nonExpandableTypes: |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
155 | self.hasChilds = True |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
156 | self.type = QCoreApplication.translate("VariablesViewer", vtype) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
157 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
158 | def __getValue(self, dtype, dvalue): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
159 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
160 | Private method to process the variables value. |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
161 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
162 | Define and limit value, set tooltip text. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
163 | If type is known to have childs, the corresponding flag is set. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
164 | @param dtype type string |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
165 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
166 | @param dvalue value of variable encoded as utf-8 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
167 | @type str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
168 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
169 | if dtype == 'collections.defaultdict': |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
170 | dvalue, default_factory = dvalue.split('|') |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
171 | self.indicator = '{{:<{0}>}}'.format(default_factory[7:-2]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
172 | elif dtype == 'array.array': |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
173 | dvalue, typecode = dvalue.split('|') |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
174 | self.indicator = '[<{0}>]'.format(typecode) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
175 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
176 | self.indicator = VariableItem.Type2Indicators.get(dtype, '') |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
177 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
178 | if dtype == 'numpy.ndarray': |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
179 | self.childCount = int(dvalue.split('x')[0]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
180 | dvalue = VariableItem.noOfItemsStr.format(dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
181 | self.hasChilds = True |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
182 | elif dtype in VariableItem.arrayTypes: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
183 | self.childCount = int(dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
184 | dvalue = VariableItem.noOfItemsStr.format(dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
185 | self.hasChilds = True |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
186 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
187 | elif dtype == "Shiboken.EnumType": |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
188 | self.hasChilds = True |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
189 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
190 | elif dtype in ['str', 'unicode']: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
191 | if VariableItem.rx_nonprintable.indexIn(dvalue) == -1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
192 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
193 | dvalue = ast.literal_eval(dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
194 | except Exception: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
195 | pass |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
196 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
197 | dvalue = str(dvalue) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
198 | except UnicodeDecodeError: # Never reached under Python 3 |
6978
720247f98e1f
Improved determination of expandable items including removing 'other' as selectable type.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6969
diff
changeset
|
199 | dvalue = unicode(dvalue, 'utf-8') # __IGNORE_WARNING__ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
200 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
201 | self.value = dvalue |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
202 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
203 | if len(dvalue) > 2048: # 2 kB |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
204 | self.tooltip = dvalue[:2048] |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
205 | dvalue = QCoreApplication.translate( |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3621
diff
changeset
|
206 | "VariableItem", "<double click to show value>") |
2511
a0ff5574e43a
Changed the way multi line strings are shown in the value column of the variables viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2400
diff
changeset
|
207 | else: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
208 | self.tooltip = dvalue |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
210 | lines = dvalue[:2048].splitlines() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
211 | if len(lines) > 1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
212 | # only show the first non-empty line; |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
213 | # indicate skipped lines by <...> at the |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
214 | # beginning and/or end |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
215 | index = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
216 | while index < len(lines) - 1 and lines[index].strip(' \t') == "": |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
217 | index += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
218 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
219 | dvalue = "" |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
220 | if index > 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
221 | dvalue += "<...>" |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
222 | dvalue += lines[index] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
223 | if index < len(lines) - 1 or len(dvalue) > 2048: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
224 | dvalue += "<...>" |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
225 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
226 | self.valueShort = dvalue |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
227 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
228 | @property |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
229 | def absolutCount(self): |
5171
f1e9eebd5469
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5169
diff
changeset
|
230 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
231 | Public property to get the total number of childs. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
233 | @return total number of childs |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
234 | @rtype int |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
236 | return self.childCount + self.methodCount |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
237 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
238 | @property |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
239 | def populated(self): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
241 | Public property returning a flag indicating if item is fully populated. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
243 | @return item is fully populated |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
244 | @rtype bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
246 | return self.currentCount >= (self.childCount + self.methodCount) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
248 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
249 | class VariableModel(QAbstractItemModel): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
251 | Class implementing the data model for QTreeView. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
253 | @signal expand trigger QTreeView to expand given index |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
255 | expand = pyqtSignal(QModelIndex) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
256 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
257 | def __init__(self, treeView, globalScope): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
261 | @param treeView QTreeView showing the data |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
262 | @type VariablesViewer |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
263 | @param globalScope flag indicating global (True) or local (False) |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
264 | variables |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
265 | @type bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
267 | super(VariableModel, self).__init__() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
268 | self.treeView = treeView |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
269 | self.proxyModel = treeView.proxyModel |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
270 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
271 | self.framenr = -1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
272 | self.openItems = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
273 | self.closedItems = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
274 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
275 | if globalScope: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
276 | visibility = self.tr("Globals") |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
277 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
278 | visibility = self.tr("Locals") |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
279 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
280 | self.rootNode = VariableItem(None, visibility, self.tr("Type"), |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
281 | self.tr("Value")) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
282 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
283 | self.__globalScope = globalScope |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
284 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
285 | def clear(self, reset=False): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
286 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
287 | Public method to clear the complete data model. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
288 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
289 | @param reset flag to clear the expanded keys also |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
290 | @type bool |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
291 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
292 | self.beginResetModel() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
293 | self.rootNode.childs = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
294 | self.rootNode.newItems.clear() |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
295 | self.rootNode.changedItems.clear() |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
296 | self.rootNode.wasPopulated = False |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
297 | if reset: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
298 | self.openItems = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
299 | self.closedItems = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
300 | self.endResetModel() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
301 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
302 | def __findVariable(self, pathlist): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
303 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
304 | Private method to get to the given variable. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
305 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
306 | @param pathlist full path to the variable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
307 | @type list of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
308 | @return the found variable or None if it doesn't exist |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
309 | @rtype VariableItem or None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
310 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
311 | node = self.rootNode |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
312 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
313 | for childName in pathlist or []: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
314 | for item in node.childs: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
315 | if item.nameWithId == childName: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
316 | node = item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
317 | break |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
318 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
319 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
320 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
321 | return node # __IGNORE_WARNING_M834__ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
322 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
323 | def showVariables(self, vlist, frmnr, pathlist=None): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
324 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
325 | Public method to update the data model of variable in pathlist. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
326 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
327 | @param vlist the list of variables to be displayed. Each |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
328 | list entry is a tuple of three values. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
329 | <ul> |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
330 | <li>the variable name (string)</li> |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
331 | <li>the variables type (string)</li> |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
332 | <li>the variables value (string)</li> |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
333 | </ul> |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
334 | @type list of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
335 | @param frmnr frame number (0 is the current frame) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
336 | @type int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
337 | @param pathlist full path to the variable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
338 | @type list of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
339 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
340 | if pathlist: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
341 | itemStartIndex = pathlist.pop(0) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
342 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
343 | itemStartIndex = -1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
344 | if self.framenr != frmnr: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
345 | self.clear() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
346 | self.framenr = frmnr |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
347 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
348 | parent = self.__findVariable(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
349 | if parent is None: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
350 | return |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
351 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
352 | parent.pendigFetch = False |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
353 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
354 | if parent == self.rootNode: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
355 | parentIdx = QModelIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
356 | parent.methodCount = len(vlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
357 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
358 | row = parent.parent.childs.index(parent) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
359 | parentIdx = self.createIndex(row, 0, parent) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
360 | |
6979
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
361 | if itemStartIndex == -3: |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
362 | # Item doesn't exist any more |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
363 | parentIdx = self.parent(parentIdx) |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
364 | self.beginRemoveRows(parentIdx, row, row) |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
365 | del parent.parent.childs[row] |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
366 | self.endRemoveRows() |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
367 | parent.parent.childCount -= 1 |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
368 | return |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
369 | |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
370 | elif itemStartIndex == -2: |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
371 | parent.wasPopulated = True |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
372 | parent.currentCount = parent.absolutCount |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
373 | # Remove items which are left over at the end of child list |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
374 | self.__cleanupParentList(parent, parentIdx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
375 | return |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
376 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
377 | elif itemStartIndex == -1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
378 | parent.methodCount = len(vlist) |
6979
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
379 | idx = parent.childCount = parent.currentCount + 1 |
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
380 | parent.currentCount += 1 + len(vlist) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
381 | else: |
6979
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
382 | idx = parent.currentCount + 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
383 | parent.currentCount += len(vlist) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
385 | # Sort items for Python versions where dict doesn't retain order |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
386 | vlist.sort(key=lambda x: x[0]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
387 | # Now update the table |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
388 | endIndex = idx + len(vlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
389 | newChild = None |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
390 | knownChildsCount = len(parent.childs) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
391 | while idx < endIndex: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
392 | # Fetch next old item from last cycle |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
393 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
394 | child = parent.childs[idx] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
395 | except IndexError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
396 | child = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
397 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
398 | # Fetch possible new item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
399 | if not newChild and vlist: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
400 | newChild = vlist.pop(0) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
401 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
402 | # Process parameters of new item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
403 | newItem = VariableItem(parent, *newChild) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
404 | sort = newItem.sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
405 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
406 | # Append or insert before already existing item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
407 | if child is None or newChild and sort < child.sort: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
408 | self.beginInsertRows(parentIdx, idx, idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
409 | parent.childs.insert(idx, newItem) |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
410 | if knownChildsCount <= idx and not parent.wasPopulated: |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
411 | parent.newItems.add(newItem) |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
412 | knownChildsCount += 1 |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
413 | else: |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
414 | parent.changedItems.add(newItem) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
415 | self.endInsertRows() |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
416 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
417 | idx += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
418 | newChild = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
419 | continue |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
420 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
421 | # Check if same name, type and afterwards value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
422 | elif sort == child.sort and child.type == newItem.type: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
423 | # Check if value has changed |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
424 | if child.value != newItem.value: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
425 | child.value = newItem.value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
426 | child.valueShort = newItem.valueShort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
427 | child.tooltip = newItem.tooltip |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
428 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
429 | child.currentCount = -1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
430 | child.childCount = newItem.childCount |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
431 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
432 | # Highlight item because it has changed |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
433 | parent.changedItems.add(child) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
434 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
435 | changedIndexStart = self.index(idx, 0, parentIdx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
436 | changedIndexEnd = self.index(idx, 2, parentIdx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
437 | self.dataChanged.emit(changedIndexStart, changedIndexEnd) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
438 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
439 | newChild = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
440 | idx += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
441 | continue |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
442 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
443 | # Remove obsolete item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
444 | self.beginRemoveRows(parentIdx, idx, idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
445 | parent.childs.remove(child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
446 | self.endRemoveRows() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
447 | # idx stay unchanged |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
448 | knownChildsCount -= 1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
449 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
450 | # Remove items which are left over at the end of child list |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
451 | if itemStartIndex == -1: |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
452 | parent.wasPopulated = True |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
453 | self.__cleanupParentList(parent, parentIdx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
454 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
455 | # Request data for any expanded node |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
456 | self.getMore() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
457 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
458 | def __cleanupParentList(self, parent, parentIdx): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
459 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
460 | Private method to remove items which are left over at the end of the |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
461 | child list. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
462 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
463 | @param parent to clean up |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
464 | @type VariableItem |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
465 | @param parentIdx the parent index as QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
466 | @type QModelIndex |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
468 | end = len(parent.childs) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
469 | if end > parent.absolutCount: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
470 | self.beginRemoveRows(parentIdx, parent.absolutCount, end) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
471 | del parent.childs[parent.absolutCount:] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
472 | self.endRemoveRows() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
473 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
474 | def resetModifiedMarker(self, parentIdx=QModelIndex(), pathlist=()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
475 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
476 | Public method to remove the modified marker from changed items. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
477 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
478 | @param parentIdx item to reset marker |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
479 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
480 | @param pathlist full path to the variable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
481 | @type list of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
482 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
483 | if parentIdx.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
484 | parent = parentIdx.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
485 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
486 | parent = self.rootNode |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
487 | |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
488 | parent.newItems.clear() |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
489 | parent.changedItems.clear() |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
490 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
491 | pll = len(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
492 | posPaths = {x for x in self.openItems if len(x) > pll} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
493 | posPaths |= {x for x in self.closedItems if len(x) > pll} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
494 | posPaths = {x[pll] for x in posPaths if x[:pll] == pathlist} |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
495 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
496 | if posPaths: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
497 | for child in parent.childs: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
498 | if child.hasChilds and child.nameWithId in posPaths: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
499 | if child.currentCount >= 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
500 | # Discard loaded elements and refresh if still expanded |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
501 | child.currentCount = -1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
502 | row = parent.childs.index(child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
503 | newParentIdx = self.index(row, 0, parentIdx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
504 | self.resetModifiedMarker( |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
505 | newParentIdx, pathlist + (child.nameWithId,)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
506 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
507 | self.closedItems = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
508 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
509 | # Little quirk: Refresh all visible items to clear the changed marker |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
510 | if parentIdx == QModelIndex(): |
6979
c272ec33ea11
Handling of no more existing items improved, e.g. list items which has as last child
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6978
diff
changeset
|
511 | self.rootNode.currentCount = -1 |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
512 | idxStart = self.index(0, 0, QModelIndex()) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
513 | idxEnd = self.index(0, 2, QModelIndex()) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
514 | self.dataChanged.emit(idxStart, idxEnd) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
515 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
516 | def columnCount(self, parent=QModelIndex()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
517 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
518 | Public Qt slot to get the column count. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
519 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
520 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
521 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
522 | @return number of columns |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
523 | @rtype int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
524 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
525 | return 3 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
526 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
527 | def rowCount(self, parent=QModelIndex()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
528 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
529 | Public Qt slot to get the row count. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
530 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
531 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
532 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
533 | @return number of rows |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
534 | @rtype int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
535 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
536 | if parent.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
537 | node = parent.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
538 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
539 | node = self.rootNode |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
540 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
541 | return len(node.childs) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
542 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
543 | def flags(self, index): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
544 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
545 | Public Qt slot to get the item flags. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
546 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
547 | @param index of item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
548 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
549 | @return item flags |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
550 | @rtype QtCore.Qt.ItemFlag |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
552 | if not index.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
553 | return Qt.NoItemFlags |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
554 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
555 | return Qt.ItemIsEnabled | Qt.ItemIsSelectable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
556 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
557 | def hasChildren(self, parent=QModelIndex()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
558 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
559 | Public Qt slot to get a flag if parent has childs. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
560 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
561 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
562 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
563 | @return flag if parent has childs |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
564 | @rtype bool |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
565 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
566 | if not parent.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
567 | return self.rootNode.childs != [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
568 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
569 | return parent.internalPointer().hasChilds |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
570 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
571 | def index(self, row, column, parent=QModelIndex()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
572 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
573 | Public Qt slot to get the index of item at row:column of parent. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
574 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
575 | @param row number of rows |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
576 | @rtype int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
577 | @param column number of columns |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
578 | @type int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
579 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
580 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
581 | @return new model index for child |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
582 | @rtype QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
583 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
584 | if not self.hasIndex(row, column, parent): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
585 | return QModelIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
586 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
587 | if not parent.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
588 | node = self.rootNode |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
589 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
590 | node = parent.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
591 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
592 | return self.createIndex(row, column, node.childs[row]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
593 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
594 | def parent(self, child): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
595 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
596 | Public Qt slot to get the parent of the given child. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
598 | @param child the model child node |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
599 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
600 | @return new model index for parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
601 | @rtype QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
602 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
603 | if not child.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
604 | return QModelIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
605 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
606 | childNode = child.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
607 | if childNode == self.rootNode: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
608 | return QModelIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
609 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
610 | parentNode = childNode.parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
611 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
612 | if parentNode == self.rootNode: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
613 | return QModelIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
614 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
615 | row = parentNode.parent.childs.index(parentNode) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
616 | return self.createIndex(row, 0, parentNode) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
617 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
618 | def data(self, index, role=Qt.DisplayRole): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
619 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
620 | Public Qt slot get the role data of item. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
621 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
622 | @param index the model index |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
623 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
624 | @param role the requested data role |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
625 | @type QtCore.Qt.ItemDataRole |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
626 | @return role data of item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
627 | @rtype Any |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
628 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
629 | if not index.isValid() or index.row() < 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
630 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
631 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
632 | node = index.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
633 | column = index.column() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
634 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
635 | if role in (Qt.DisplayRole, SORT_ROLE, Qt.EditRole): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
636 | try: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
637 | if column == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
638 | # Sort first column with values from third column |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
639 | if role == SORT_ROLE: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
640 | return node.sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
641 | return node.name + node.indicator |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
642 | elif column == 1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
643 | return node.valueShort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
644 | elif column == 2: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
645 | return node.type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
646 | elif column == 3: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
647 | return node.sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
648 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
649 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
650 | except AttributeError: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
651 | return ['None', '', '', ''][column] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
652 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
653 | elif role == Qt.BackgroundRole: |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
654 | if node in node.parent.changedItems: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
655 | color = QColor('#70FF66') |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
656 | # Set Alpha chanel to get alternating row colors done by Qt |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
657 | color.setAlpha(40) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
658 | return QBrush(color) |
6993
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
659 | elif node in node.parent.newItems: |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
660 | color = QColor('#FFEEAA') |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
661 | # Set Alpha chanel to get alternating row colors done by Qt |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
662 | color.setAlpha(40) |
d375f251496a
Highlight unknown variables, e.g. expanded for the first time, in yellow instead green.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6988
diff
changeset
|
663 | return QBrush(color) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
665 | elif role == Qt.ToolTipRole: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
666 | if column == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
667 | tooltip = node.name + node.indicator |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
668 | elif column == 1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
669 | tooltip = node.tooltip |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
670 | elif column == 2: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
671 | tooltip = node.type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
672 | elif column == 3: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
673 | tooltip = node.sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
674 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
675 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
676 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
677 | if Qt.mightBeRichText(tooltip): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
678 | tooltip = Utilities.html_encode(tooltip) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
679 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
680 | if column == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
681 | indentation = self.treeView.indentation() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
682 | indentCount = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
683 | currentNode = node |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
684 | while currentNode.parent: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
685 | indentCount += 1 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
686 | currentNode = currentNode.parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
687 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
688 | indentation *= indentCount |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
689 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
690 | indentation = 0 |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
691 | # Check if text is longer than available space |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
692 | fontMetrics = QFontMetrics(self.treeView.font()) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
693 | textSize = fontMetrics.width(tooltip) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
694 | textSize += indentation + 5 # How to determine border size? |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
695 | header = self.treeView.header() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
696 | if textSize >= header.sectionSize(column): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
697 | return tooltip |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
698 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
699 | QToolTip.hideText() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
700 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
701 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
702 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
703 | def headerData(self, section, orientation, role=Qt.DisplayRole): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
704 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
705 | Public Qt slot get the header names. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
706 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
707 | @param section the header section (row/coulumn) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
708 | @type int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
709 | @param orientation the header's orientation |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
710 | @type QtCore.Qt.Orientation |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
711 | @param role the requested data role |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
712 | @type QtCore.Qt.ItemDataRole |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
713 | @return header name |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
714 | @rtype str or None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
715 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
716 | if role != Qt.DisplayRole or orientation != Qt.Horizontal: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
717 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
718 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
719 | if section == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
720 | return self.rootNode.name |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
721 | elif section == 1: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
722 | return self.rootNode.value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
723 | elif section == 2: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
724 | return self.rootNode.type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
725 | elif section == 3: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
726 | return self.rootNode.sort |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
727 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
728 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
729 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
730 | def __findPendingItem(self, parent=None, pathlist=()): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
731 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
732 | Private method to find the next item to request data from debugger. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
733 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
734 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
735 | @type VariableItem |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
736 | @param pathlist full path to the variable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
737 | @type list of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
738 | @return next item index to request data from debugger |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
739 | @rtype QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
740 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
741 | if parent is None: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
742 | parent = self.rootNode |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
743 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
744 | for child in parent.childs: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
745 | if not child.hasChilds: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
746 | continue |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
747 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
748 | if pathlist + (child.nameWithId,) in self.openItems: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
749 | if child.populated: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
750 | index = None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
751 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
752 | idx = parent.childs.index(child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
753 | index = self.createIndex(idx, 0, child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
754 | self.expand.emit(index) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
755 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
756 | if child.currentCount < 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
757 | return index |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
758 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
759 | possibleIndex = self.__findPendingItem( |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
760 | child, pathlist + (child.nameWithId,)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
761 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
762 | if (possibleIndex or index) is None: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
763 | continue |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
764 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
765 | return possibleIndex or index |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
766 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
767 | return None |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
768 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
769 | def getMore(self): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
770 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
771 | Public method to fetch the next variable from debugger. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
772 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
773 | # step 1: find expanded but not populated items |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
774 | item = self.__findPendingItem() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
775 | if not item or not item.isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
776 | return |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
777 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
778 | # step 2: check if data has to be retrieved |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
779 | node = item.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
780 | lastVisibleItem = self.index(node.currentCount - 1, 0, item) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
781 | lastVisibleItem = self.proxyModel.mapFromSource(lastVisibleItem) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
782 | rect = self.treeView.visualRect(lastVisibleItem) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
783 | if rect.y() > self.treeView.height() or node.pendigFetch: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
784 | return |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
785 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
786 | node.pendigFetch = True |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
787 | # step 3: get a pathlist up to the requested variable |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
788 | pathlist = self.__buildTreePath(node) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
789 | # step 4: request the variable from the debugger |
5587
ea526b78ee6c
Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
790 | variablesFilter = e5App().getObject("DebugUI").variablesFilter( |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
791 | self.__globalScope) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
482
diff
changeset
|
792 | e5App().getObject("DebugServer").remoteClientVariable( |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
793 | self.__globalScope, variablesFilter, pathlist, self.framenr) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
794 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
795 | def setExpanded(self, index, state): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
796 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
797 | Public method to set the expanded state of item. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
798 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
799 | @param index item to change expanded state |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
800 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
801 | @param state state of the item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
802 | @type bool |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
803 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
804 | node = index.internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
805 | pathlist = self.__buildTreePath(node) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
806 | if state: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
807 | if pathlist not in self.openItems: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
808 | self.openItems.append(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
809 | if pathlist in self.closedItems: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
810 | self.closedItems.remove(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
811 | self.getMore() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
812 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
813 | self.openItems.remove(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
814 | self.closedItems.append(pathlist) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
815 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
816 | def __buildTreePath(self, parent): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
817 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
818 | Private method to build up a path from the root to parent. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
819 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
820 | @param parent item to build the path for |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
821 | @type VariableItem |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
822 | @return list of names denoting the path from the root |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
823 | @rtype tuple of str |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
824 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
825 | pathlist = [] |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
826 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
827 | # build up a path from the top to the item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
828 | while parent.parent: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
829 | pathlist.append(parent.nameWithId) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
830 | parent = parent.parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
831 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
832 | pathlist.reverse() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
833 | return tuple(pathlist) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
834 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
835 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
836 | class ProxyModel(QSortFilterProxyModel): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
837 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
838 | Class for handling the sort operations. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
839 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
840 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
841 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
842 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
843 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
844 | @param parent the parent model index |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
845 | @type QModelIndex |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
846 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
847 | super(ProxyModel, self).__init__(parent) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
848 | self.setSortRole(SORT_ROLE) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
849 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
850 | def hasChildren(self, parent): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
851 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
852 | Public Qt slot to get a flag if parent has childs. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
853 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
854 | The given model index has to be transformed to the underlying source |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
855 | model to get the correct result. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
856 | @param parent the model parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
857 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
858 | @return flag if parent has childs |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
859 | @rtype bool |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
860 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
861 | return self.sourceModel().hasChildren(self.mapToSource(parent)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
862 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
863 | def setExpanded(self, index, state): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
864 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
865 | Public Qt slot to get a flag if parent has childs. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
866 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
867 | The given model index has to be transformed to the underlying source |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
868 | model to get the correct result. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
869 | @param index item to change expanded state |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
870 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
871 | @param state state of the item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
872 | @type bool |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
873 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
874 | self.sourceModel().setExpanded(self.mapToSource(index), state) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
875 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
876 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
877 | class VariablesViewer(QTreeView): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
878 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
879 | Class implementing the variables viewer view. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
880 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
881 | This view is used to display the variables of the program being |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
882 | debugged in a tree. Compound types will be shown with |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
883 | their main entry first. Once the subtree has been expanded, the |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
884 | individual entries will be shown. Double clicking an entry will |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
885 | expand or collapse the item, if it has childs and the double click |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
886 | was performed on the first column of the tree, otherwise it'll |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
887 | popup a dialog showing the variables parameters in a more readable |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
888 | form. This is especially useful for lengthy strings. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
889 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
890 | This view has two modes for displaying the global and the local |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
891 | variables. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
892 | """ |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
893 | def __init__(self, viewer, globalScope, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
894 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
895 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
896 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
897 | @param viewer reference to the debug viewer object |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
898 | @type DebugViewer |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
899 | @param globalScope flag indicating global (True) or local (False) |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
900 | variables |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
901 | @type bool |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
902 | @param parent the parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
903 | @type QWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
904 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2511
diff
changeset
|
905 | super(VariablesViewer, self).__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
906 | |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
907 | self.__debugViewer = viewer |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
908 | self.__globalScope = globalScope |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
909 | self.framenr = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
910 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
911 | # Massive performance gain |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
912 | self.setUniformRowHeights(True) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
913 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
914 | # Implements sorting and filtering |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
915 | self.proxyModel = ProxyModel() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
916 | # Variable model implements the underlying data model |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
917 | self.varModel = VariableModel(self, globalScope) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
918 | self.proxyModel.setSourceModel(self.varModel) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
919 | self.setModel(self.proxyModel) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
920 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
921 | self.expanded.connect( |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
922 | lambda idx: self.proxyModel.setExpanded(idx, True)) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
923 | self.collapsed.connect( |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
924 | lambda idx: self.proxyModel.setExpanded(idx, False)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
925 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
926 | self.setExpandsOnDoubleClick(False) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
927 | self.doubleClicked.connect(self.__itemDoubleClicked) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
928 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
929 | self.varModel.expand.connect(self.__mdlRequestExpand) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
930 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
931 | self.setSortingEnabled(True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
932 | self.setAlternatingRowColors(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
933 | self.setSelectionBehavior(QAbstractItemView.SelectRows) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
934 | |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
935 | if self.__globalScope: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
936 | self.setWindowTitle(self.tr("Global Variables")) |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
937 | self.setWhatsThis(self.tr( |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
938 | """<b>The Global Variables Viewer Window</b>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
939 | """<p>This window displays the global variables""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
940 | """ of the debugged program.</p>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
941 | )) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
942 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
943 | self.setWindowTitle(self.tr("Local Variables")) |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
944 | self.setWhatsThis(self.tr( |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
945 | """<b>The Local Variables Viewer Window</b>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
946 | """<p>This window displays the local variables""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
947 | """ of the debugged program.</p>""" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
948 | )) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
949 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
950 | header = self.header() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
951 | header.setSortIndicator(0, Qt.AscendingOrder) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
952 | header.setSortIndicatorShown(True) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
953 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
954 | try: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
955 | header.setSectionsClickable(True) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
956 | except Exception: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
957 | header.setClickable(True) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
958 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
959 | header.resizeSection(0, 130) # variable column |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
960 | header.resizeSection(1, 180) # value column |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
961 | header.resizeSection(2, 50) # type column |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
962 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
963 | header.sortIndicatorChanged.connect(lambda *x: self.varModel.getMore()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
964 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
965 | self.__createPopupMenus() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
966 | self.setContextMenuPolicy(Qt.CustomContextMenu) |
458
1695e7a2db54
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
447
diff
changeset
|
967 | self.customContextMenuRequested.connect(self.__showContextMenu) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
968 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
969 | self.resortEnabled = True |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
970 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
971 | def showVariables(self, vlist, frmnr): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
972 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
973 | Public method to show variables in a list. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
974 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
975 | @param vlist the list of variables to be displayed. Each |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
976 | listentry is a tuple of three values. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
977 | <ul> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
978 | <li>the variable name (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
979 | <li>the variables type (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
980 | <li>the variables value (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
981 | </ul> |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
982 | @type list |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
983 | @param frmnr frame number (0 is the current frame) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
984 | @type int |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
985 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
986 | self.varModel.resetModifiedMarker() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
987 | self.varModel.showVariables(vlist, frmnr) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
988 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
989 | def showVariable(self, vlist): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
990 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
991 | Public method to show variables in a list. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
992 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
993 | @param vlist the list of subitems to be displayed. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
994 | The first element gives the path of the |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
995 | parent variable. Each other listentry is |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
996 | a tuple of three values. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
997 | <ul> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
998 | <li>the variable name (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
999 | <li>the variables type (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1000 | <li>the variables value (string)</li> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1001 | </ul> |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1002 | @type list |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1003 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1004 | self.varModel.showVariables(vlist[1:], 0, vlist[0]) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1005 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1006 | def handleResetUI(self): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1007 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1008 | Public method to reset the VariablesViewer. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1009 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1010 | self.varModel.clear(True) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1011 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1012 | def verticalScrollbarValueChanged(self, value): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1013 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1014 | Public Qt slot informing about the scrollbar change. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1015 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1016 | @param value current value of the vertical scrollbar |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1017 | @type int |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1018 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1019 | self.varModel.getMore() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1020 | super(VariablesViewer, self).verticalScrollbarValueChanged(value) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1021 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1022 | def resizeEvent(self, event): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1023 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1024 | Protected Qt slot informing about the widget size change. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1025 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1026 | @param event information |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1027 | @type QResizeEvent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1028 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1029 | self.varModel.getMore() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1030 | super(VariablesViewer, self).resizeEvent(event) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1031 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1032 | def __itemDoubleClicked(self, index): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1033 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1034 | Private method called if an item was double clicked. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1035 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1036 | @param index the double clicked item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1037 | @type QModelIndex |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1038 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1039 | node = self.proxyModel.mapToSource(index).internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1040 | if node.hasChilds and index.column() == 0: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1041 | state = self.isExpanded(index) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1042 | self.setExpanded(index, not state) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1043 | else: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1044 | self.__showVariableDetails(index) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1045 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1046 | def __mdlRequestExpand(self, modelIndex): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1047 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1048 | Private method to inform the view about items to be expand. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1049 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1050 | @param modelIndex the model index |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1051 | @type QModelIndex |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1052 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1053 | index = self.proxyModel.mapFromSource(modelIndex) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1054 | self.expand(index) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1055 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1056 | def __createPopupMenus(self): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1057 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1058 | Private method to generate the popup menus. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1059 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1060 | self.menu = QMenu() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1061 | self.menu.addAction(self.tr("Show Details..."), self.__showDetails) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1062 | self.menu.addSeparator() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1063 | self.menu.addAction(self.tr("Expand childs"), self.__expandChilds) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1064 | self.menu.addAction(self.tr("Collapse childs"), self.__collapseChilds) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1065 | self.menu.addAction(self.tr("Collapse all"), self.collapseAll) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1066 | self.menu.addSeparator() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1067 | self.menu.addAction(self.tr("Refresh"), self.__refreshView) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1068 | self.menu.addSeparator() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1069 | self.menu.addAction(self.tr("Configure..."), self.__configure) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1070 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1071 | self.backMenu = QMenu() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1072 | self.backMenu.addAction(self.tr("Refresh"), self.__refreshView) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1073 | self.backMenu.addSeparator() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1074 | self.backMenu.addAction(self.tr("Configure..."), self.__configure) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1075 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1076 | def __showContextMenu(self, coord): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1077 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1078 | Private slot to show the context menu. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1079 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1080 | @param coord the position of the mouse pointer |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1081 | @type QPoint |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1082 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1083 | gcoord = self.mapToGlobal(coord) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1084 | if self.indexAt(coord).isValid(): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1085 | self.menu.popup(gcoord) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1086 | else: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1087 | self.backMenu.popup(gcoord) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1088 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1089 | def __expandChilds(self): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1090 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1091 | Private slot to expand all childs of current parent. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1092 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1093 | index = self.currentIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1094 | node = self.proxyModel.mapToSource(index).internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1095 | for child in node.childs: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1096 | if child.hasChilds: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1097 | row = node.childs.index(child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1098 | idx = self.varModel.createIndex(row, 0, child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1099 | idx = self.proxyModel.mapFromSource(idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1100 | self.expand(idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1101 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1102 | def __collapseChilds(self): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1103 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1104 | Private slot to collapse all childs of current parent. |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1105 | """ |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1106 | index = self.currentIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1107 | node = self.proxyModel.mapToSource(index).internalPointer() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1108 | for child in node.childs: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1109 | row = node.childs.index(child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1110 | idx = self.varModel.createIndex(row, 0, child) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1111 | idx = self.proxyModel.mapFromSource(idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1112 | if self.isExpanded(idx): |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1113 | self.collapse(idx) |
5165
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1114 | |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1115 | def __refreshView(self): |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1116 | """ |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1117 | Private slot to refresh the view. |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1118 | """ |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1119 | if self.__globalScope: |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1120 | self.__debugViewer.setGlobalsFilter() |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1121 | else: |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1122 | self.__debugViewer.setLocalsFilter() |
37691caeec1a
Added the capability to refresh the variables viewer via the context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
1123 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1124 | def __showDetails(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1125 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1126 | Private slot to show details about the selected variable. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1127 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1128 | idx = self.currentIndex() |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1129 | self.__showVariableDetails(idx) |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1130 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1131 | def __showVariableDetails(self, index): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1132 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1133 | Private method to show details about a variable. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1134 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1135 | @param index reference to the variable item |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1136 | @type QModelIndex |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1137 | """ |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1138 | node = self.proxyModel.mapToSource(index).internalPointer() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1139 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1140 | val = node.value |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1141 | vtype = node.type |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1142 | name = node.name |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1143 | |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1144 | par = node.parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1145 | nlist = [name] |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1146 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1147 | # build up the fully qualified name |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1148 | while par.parent is not None: |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1149 | pname = par.name |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1150 | if par.indicator: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1151 | if nlist[0].endswith("."): |
406
eacf81fad150
Started converting the string formatting stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
1152 | nlist[0] = '[{0}].'.format(nlist[0][:-1]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1153 | else: |
406
eacf81fad150
Started converting the string formatting stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
1154 | nlist[0] = '[{0}]'.format(nlist[0]) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1155 | nlist.insert(0, pname) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1156 | else: |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1157 | if par.type == "django.MultiValueDict": |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1158 | nlist[0] = 'getlist({0})'.format(nlist[0]) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1159 | elif par.type == "numpy.ndarray": |
6953
b06cb5bbc880
VariablesViewer: fixed an issue handling numpy arrays.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
1160 | if nlist and nlist[0][0].isalpha(): |
5175
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1161 | if nlist[0] in ["min", "max", "mean"]: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1162 | nlist[0] = ".{0}()".format(nlist[0]) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1163 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1164 | nlist[0] = ".{0}".format(nlist[0]) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1165 | nlist.insert(0, pname) |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1166 | else: |
9db0b0f15d12
Continued improving the variable dumping of the debugger backends.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5173
diff
changeset
|
1167 | nlist.insert(0, '{0}.'.format(pname)) |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1168 | par = par.parent |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1169 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1170 | name = ''.join(nlist) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1171 | # now show the dialog |
2400
c1726b754f96
Started with delaying the import upon the time it is needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
1172 | from .VariableDetailDialog import VariableDetailDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1173 | dlg = VariableDetailDialog(name, vtype, val) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1174 | dlg.exec_() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1175 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1176 | def __configure(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1177 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1178 | Private method to open the configuration dialog. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1179 | """ |
2988
f53c03574697
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
1180 | e5App().getObject("UserInterface")\ |
f53c03574697
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2953
diff
changeset
|
1181 | .showPreferences("debuggerGeneralPage") |
6969
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1182 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1183 | |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1184 | # |
fd7af2312383
Reimplemented Variables Viewer using QTreeView.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6953
diff
changeset
|
1185 | # eflag: noqa = M822 |