QScintilla/EditorMarkerMap.py

branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3341
7c015811fc4d
child 3913
9d13be0ff3d2
equal deleted inserted replaced
3456:96232974dcdb 3484:645c12de6b0c
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)

eric ide

mercurial