14 |
14 |
15 class EditorMarkerMap(EricMapWidget): |
15 class EditorMarkerMap(EricMapWidget): |
16 """ |
16 """ |
17 Class implementing a class for showing an editor marker map. |
17 Class implementing a class for showing an editor marker map. |
18 """ |
18 """ |
|
19 |
19 def __init__(self, parent=None): |
20 def __init__(self, parent=None): |
20 """ |
21 """ |
21 Constructor |
22 Constructor |
22 |
23 |
23 @param parent reference to the parent widget (QWidget) |
24 @param parent reference to the parent widget (QWidget) |
24 """ |
25 """ |
25 super().__init__(parent) |
26 super().__init__(parent) |
26 |
27 |
27 self.setWhatsThis(self.tr( |
28 self.setWhatsThis( |
28 """<b>Editor Map</b>""" |
29 self.tr( |
29 """<p>This shows a 'map' of the editor. The visible area is""" |
30 """<b>Editor Map</b>""" |
30 """ highlighted by the box and all markers like bookmarks,""" |
31 """<p>This shows a 'map' of the editor. The visible area is""" |
31 """ breakpoints, errors or changed lines are indicated""" |
32 """ highlighted by the box and all markers like bookmarks,""" |
32 """ by differently colored lines configurable via the""" |
33 """ breakpoints, errors or changed lines are indicated""" |
33 """ Editor\u279dStyle page of the configuration dialog.</p>""" |
34 """ by differently colored lines configurable via the""" |
34 )) |
35 """ Editor\u279dStyle page of the configuration dialog.</p>""" |
35 |
36 ) |
|
37 ) |
|
38 |
36 # initialize colors for various markers |
39 # initialize colors for various markers |
37 self.initColors() |
40 self.initColors() |
38 |
41 |
39 def initColors(self): |
42 def initColors(self): |
40 """ |
43 """ |
41 Public method to initialize the colors. |
44 Public method to initialize the colors. |
42 """ |
45 """ |
43 self.setBackgroundColor( |
46 self.setBackgroundColor(Preferences.getEditorColour("MarkerMapBackground")) |
44 Preferences.getEditorColour("MarkerMapBackground")) |
47 |
45 |
|
46 self.__bookmarkColor = Preferences.getEditorColour("BookmarksMap") |
48 self.__bookmarkColor = Preferences.getEditorColour("BookmarksMap") |
47 self.__errorColor = Preferences.getEditorColour("ErrorsMap") |
49 self.__errorColor = Preferences.getEditorColour("ErrorsMap") |
48 self.__warningColor = Preferences.getEditorColour("WarningsMap") |
50 self.__warningColor = Preferences.getEditorColour("WarningsMap") |
49 self.__breakpointColor = Preferences.getEditorColour("BreakpointsMap") |
51 self.__breakpointColor = Preferences.getEditorColour("BreakpointsMap") |
50 self.__taskColor = Preferences.getEditorColour("TasksMap") |
52 self.__taskColor = Preferences.getEditorColour("TasksMap") |
51 self.__coverageColor = Preferences.getEditorColour("CoverageMap") |
53 self.__coverageColor = Preferences.getEditorColour("CoverageMap") |
52 self.__changeColor = Preferences.getEditorColour("ChangesMap") |
54 self.__changeColor = Preferences.getEditorColour("ChangesMap") |
53 self.__currentLineMarker = Preferences.getEditorColour("CurrentMap") |
55 self.__currentLineMarker = Preferences.getEditorColour("CurrentMap") |
54 self.__searchMarkerColor = Preferences.getEditorColour( |
56 self.__searchMarkerColor = Preferences.getEditorColour("SearchMarkersMap") |
55 "SearchMarkersMap") |
|
56 self.__vcsConflictMarkerColor = Preferences.getEditorColour( |
57 self.__vcsConflictMarkerColor = Preferences.getEditorColour( |
57 "VcsConflictMarkersMap") |
58 "VcsConflictMarkersMap" |
|
59 ) |
58 self.update() |
60 self.update() |
59 |
61 |
60 def __drawIndicator(self, line, painter, color): |
62 def __drawIndicator(self, line, painter, color): |
61 """ |
63 """ |
62 Private method to draw an indicator. |
64 Private method to draw an indicator. |
63 |
65 |
64 @param line line number (integer) |
66 @param line line number (integer) |
65 @param painter reference to the painter (QPainter) |
67 @param painter reference to the painter (QPainter) |
66 @param color color to be used (QColor) |
68 @param color color to be used (QColor) |
67 """ |
69 """ |
68 displayLine = self._master.getVisibleLineFromDocLine(line) |
70 displayLine = self._master.getVisibleLineFromDocLine(line) |
69 position = self.value2Position(displayLine) |
71 position = self.value2Position(displayLine) |
70 painter.setPen(color) |
72 painter.setPen(color) |
71 painter.setBrush(color) |
73 painter.setBrush(color) |
72 painter.drawRect(self.generateIndicatorRect(position)) |
74 painter.drawRect(self.generateIndicatorRect(position)) |
73 |
75 |
74 def _paintIt(self, painter): |
76 def _paintIt(self, painter): |
75 """ |
77 """ |
76 Protected method for painting the widget's indicators. |
78 Protected method for painting the widget's indicators. |
77 |
79 |
78 @param painter reference to the painter object (QPainter) |
80 @param painter reference to the painter object (QPainter) |
79 """ |
81 """ |
80 # draw indicators in reverse order of priority |
82 # draw indicators in reverse order of priority |
81 |
83 |
82 # 1. changes |
84 # 1. changes |
83 if Preferences.getEditor("ShowMarkerChanges"): |
85 if Preferences.getEditor("ShowMarkerChanges"): |
84 for line in self._master.getChangeLines(): |
86 for line in self._master.getChangeLines(): |
85 self.__drawIndicator(line, painter, self.__changeColor) |
87 self.__drawIndicator(line, painter, self.__changeColor) |
86 |
88 |
87 # 2. coverage |
89 # 2. coverage |
88 if Preferences.getEditor("ShowMarkerCoverage"): |
90 if Preferences.getEditor("ShowMarkerCoverage"): |
89 for line in self._master.getCoverageLines(): |
91 for line in self._master.getCoverageLines(): |
90 self.__drawIndicator(line, painter, self.__coverageColor) |
92 self.__drawIndicator(line, painter, self.__coverageColor) |
91 |
93 |
92 # 3. tasks |
94 # 3. tasks |
93 for line in self._master.getTaskLines(): |
95 for line in self._master.getTaskLines(): |
94 self.__drawIndicator(line, painter, self.__taskColor) |
96 self.__drawIndicator(line, painter, self.__taskColor) |
95 |
97 |
96 # 4. breakpoints |
98 # 4. breakpoints |
97 for line in self._master.getBreakpointLines(): |
99 for line in self._master.getBreakpointLines(): |
98 self.__drawIndicator(line, painter, self.__breakpointColor) |
100 self.__drawIndicator(line, painter, self.__breakpointColor) |
99 |
101 |
100 # 5. bookmarks |
102 # 5. bookmarks |
101 for line in self._master.getBookmarkLines(): |
103 for line in self._master.getBookmarkLines(): |
102 self.__drawIndicator(line, painter, self.__bookmarkColor) |
104 self.__drawIndicator(line, painter, self.__bookmarkColor) |
103 |
105 |
104 # 6. search markers |
106 # 6. search markers |
105 if Preferences.getEditor("ShowMarkerSearch"): |
107 if Preferences.getEditor("ShowMarkerSearch"): |
106 for line in self._master.getSearchIndicatorLines(): |
108 for line in self._master.getSearchIndicatorLines(): |
107 self.__drawIndicator(line, painter, self.__searchMarkerColor) |
109 self.__drawIndicator(line, painter, self.__searchMarkerColor) |
108 |
110 |
109 # 7. warnings |
111 # 7. warnings |
110 for line in self._master.getWarningLines(): |
112 for line in self._master.getWarningLines(): |
111 self.__drawIndicator(line, painter, self.__warningColor) |
113 self.__drawIndicator(line, painter, self.__warningColor) |
112 |
114 |
113 # 8. VCS conflict markers |
115 # 8. VCS conflict markers |
114 for line in self._master.getVcsConflictMarkerLines(): |
116 for line in self._master.getVcsConflictMarkerLines(): |
115 self.__drawIndicator(line, painter, self.__vcsConflictMarkerColor) |
117 self.__drawIndicator(line, painter, self.__vcsConflictMarkerColor) |
116 |
118 |
117 # 9. errors |
119 # 9. errors |
118 for line in self._master.getSyntaxErrorLines(): |
120 for line in self._master.getSyntaxErrorLines(): |
119 self.__drawIndicator(line, painter, self.__errorColor) |
121 self.__drawIndicator(line, painter, self.__errorColor) |
120 |
122 |
121 # 10. current line |
123 # 10. current line |
122 self.__drawIndicator(self._master.getCursorPosition()[0], painter, |
124 self.__drawIndicator( |
123 self.__currentLineMarker) |
125 self._master.getCursorPosition()[0], painter, self.__currentLineMarker |
|
126 ) |