|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing a class for showing an editor marker map. |
|
8 """ |
|
9 |
|
10 from __future__ import unicode_literals |
|
11 |
|
12 from E5Gui.E5MapWidget import E5MapWidget |
|
13 |
|
14 import Preferences |
|
15 |
|
16 |
|
17 class EditorMarkerMap(E5MapWidget): |
|
18 """ |
|
19 Class implementing a class for showing an editor marker map. |
|
20 """ |
|
21 def __init__(self, parent=None): |
|
22 """ |
|
23 Constructor |
|
24 |
|
25 @param parent reference to the parent widget (QWidget) |
|
26 """ |
|
27 super(EditorMarkerMap, self).__init__(parent) |
|
28 |
|
29 # initialize colors for various markers |
|
30 self.initColors() |
|
31 |
|
32 def initColors(self): |
|
33 """ |
|
34 Public method to initialize the colors. |
|
35 """ |
|
36 self.setBackgroundColor( |
|
37 Preferences.getEditorColour("MarkerMapBackground")) |
|
38 |
|
39 self.__bookmarkColor = Preferences.getEditorColour("BookmarksMap") |
|
40 self.__errorColor = Preferences.getEditorColour("ErrorsMap") |
|
41 self.__warningColor = Preferences.getEditorColour("WarningsMap") |
|
42 self.__breakpointColor = Preferences.getEditorColour("BreakpointsMap") |
|
43 self.__taskColor = Preferences.getEditorColour("TasksMap") |
|
44 self.__coverageColor = Preferences.getEditorColour("CoverageMap") |
|
45 self.__changeColor = Preferences.getEditorColour("ChangesMap") |
|
46 self.__currentLineMarker = Preferences.getEditorColour("CurrentMap") |
|
47 self.update() |
|
48 |
|
49 def __drawIndicator(self, line, painter, color): |
|
50 """ |
|
51 Private method to draw an indicator. |
|
52 |
|
53 @param line line number (integer) |
|
54 @param painter reference to the painter (QPainter) |
|
55 @param color color to be used (QColor) |
|
56 """ |
|
57 position = self.value2Position(line) |
|
58 painter.setPen(color) |
|
59 painter.setBrush(color) |
|
60 painter.drawRect(self.generateIndicatorRect(position)) |
|
61 |
|
62 def _paintIt(self, painter): |
|
63 """ |
|
64 Protected method for painting the widget's indicators. |
|
65 |
|
66 @param painter reference to the painter object (QPainter) |
|
67 """ |
|
68 # draw indicators in reverse order of priority |
|
69 |
|
70 # 1. changes |
|
71 for line in self._master.getChangeLines(): |
|
72 self.__drawIndicator(line, painter, self.__changeColor) |
|
73 |
|
74 # 2. coverage |
|
75 for line in self._master.getCoverageLines(): |
|
76 self.__drawIndicator(line, painter, self.__coverageColor) |
|
77 |
|
78 # 3. tasks |
|
79 for line in self._master.getTaskLines(): |
|
80 self.__drawIndicator(line, painter, self.__taskColor) |
|
81 |
|
82 # 4. breakpoints |
|
83 for line in self._master.getBreakpointLines(): |
|
84 self.__drawIndicator(line, painter, self.__breakpointColor) |
|
85 |
|
86 # 5. bookmarks |
|
87 for line in self._master.getBookmarkLines(): |
|
88 self.__drawIndicator(line, painter, self.__bookmarkColor) |
|
89 |
|
90 # 6. warnings |
|
91 for line in self._master.getWarningLines(): |
|
92 self.__drawIndicator(line, painter, self.__warningColor) |
|
93 |
|
94 # 7. errors |
|
95 for line in self._master.getSyntaxErrorLines(): |
|
96 self.__drawIndicator(line, painter, self.__errorColor) |
|
97 |
|
98 # 8. current line |
|
99 self.__drawIndicator(self._master.getCursorPosition()[0], painter, |
|
100 self.__currentLineMarker) |