21 Constructor |
21 Constructor |
22 |
22 |
23 @param parent reference to the parent widget (QWidget) |
23 @param parent reference to the parent widget (QWidget) |
24 """ |
24 """ |
25 super(E5MapWidget, self).__init__(parent) |
25 super(E5MapWidget, self).__init__(parent) |
26 self.setAttribute(Qt.WA_OpaquePaintEvent) |
26 self.setAttribute(Qt.WidgetAttribute.WA_OpaquePaintEvent) |
27 |
27 |
28 self.__width = 14 |
28 self.__width = 14 |
29 self.__lineBorder = 1 |
29 self.__lineBorder = 1 |
30 self.__lineHeight = 2 |
30 self.__lineHeight = 2 |
31 self.__backgroundColor = QColor("#e7e7e7") |
31 self.__backgroundColor = QColor("#e7e7e7") |
43 Private method to set the slider color depending upon the background |
43 Private method to set the slider color depending upon the background |
44 color. |
44 color. |
45 """ |
45 """ |
46 if self.__backgroundColor.toHsv().value() < 128: |
46 if self.__backgroundColor.toHsv().value() < 128: |
47 # dark background, use white slider |
47 # dark background, use white slider |
48 self.__sliderColor = Qt.white |
48 self.__sliderColor = Qt.GlobalColor.white |
49 else: |
49 else: |
50 # light background, use black slider |
50 # light background, use black slider |
51 self.__sliderColor = Qt.black |
51 self.__sliderColor = Qt.GlobalColor.black |
52 |
52 |
53 def __updateMasterViewportWidth(self): |
53 def __updateMasterViewportWidth(self): |
54 """ |
54 """ |
55 Private method to update the master's viewport width. |
55 Private method to update the master's viewport width. |
56 """ |
56 """ |
69 Public method to set the map master widget. |
69 Public method to set the map master widget. |
70 |
70 |
71 @param master map master widget (QAbstractScrollArea) |
71 @param master map master widget (QAbstractScrollArea) |
72 """ |
72 """ |
73 self._master = master |
73 self._master = master |
74 self._master.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) |
74 self._master.setVerticalScrollBarPolicy( |
|
75 Qt.ScrollBarPolicy.ScrollBarAlwaysOn) |
75 self._master.verticalScrollBar().valueChanged.connect(self.update) |
76 self._master.verticalScrollBar().valueChanged.connect(self.update) |
76 self._master.verticalScrollBar().rangeChanged.connect(self.update) |
77 self._master.verticalScrollBar().rangeChanged.connect(self.update) |
77 self.__updateMasterViewportWidth() |
78 self.__updateMasterViewportWidth() |
78 |
79 |
79 def setWidth(self, width): |
80 def setWidth(self, width): |
201 |
202 |
202 # step 3: paint the slider |
203 # step 3: paint the slider |
203 if self._master: |
204 if self._master: |
204 penColor = self.__sliderColor |
205 penColor = self.__sliderColor |
205 painter.setPen(penColor) |
206 painter.setPen(penColor) |
206 brushColor = Qt.transparent |
207 brushColor = Qt.GlobalColor.transparent |
207 painter.setBrush(QBrush(brushColor)) |
208 painter.setBrush(QBrush(brushColor)) |
208 painter.drawRect(self.__generateSliderRange( |
209 painter.drawRect(self.__generateSliderRange( |
209 self._master.verticalScrollBar())) |
210 self._master.verticalScrollBar())) |
210 |
211 |
211 def _paintIt(self, painter): |
212 def _paintIt(self, painter): |
222 """ |
223 """ |
223 Protected method to handle a mouse button press. |
224 Protected method to handle a mouse button press. |
224 |
225 |
225 @param event reference to the mouse event (QMouseEvent) |
226 @param event reference to the mouse event (QMouseEvent) |
226 """ |
227 """ |
227 if event.button() == Qt.LeftButton and self._master: |
228 if event.button() == Qt.MouseButton.LeftButton and self._master: |
228 vsb = self._master.verticalScrollBar() |
229 vsb = self._master.verticalScrollBar() |
229 value = self.position2Value(event.pos().y() - 1) |
230 value = self.position2Value(event.pos().y() - 1) |
230 vsb.setValue(value - 0.5 * vsb.pageStep()) # center on page |
231 vsb.setValue(value - 0.5 * vsb.pageStep()) # center on page |
231 self.__mousePressPos = None |
232 self.__mousePressPos = None |
232 |
233 |
234 """ |
235 """ |
235 Protected method to handle a mouse moves. |
236 Protected method to handle a mouse moves. |
236 |
237 |
237 @param event reference to the mouse event (QMouseEvent) |
238 @param event reference to the mouse event (QMouseEvent) |
238 """ |
239 """ |
239 if event.buttons() & Qt.LeftButton and self._master: |
240 if event.buttons() & Qt.MouseButton.LeftButton and self._master: |
240 vsb = self._master.verticalScrollBar() |
241 vsb = self._master.verticalScrollBar() |
241 value = self.position2Value(event.pos().y() - 1) |
242 value = self.position2Value(event.pos().y() - 1) |
242 vsb.setValue(value - 0.5 * vsb.pageStep()) # center on page |
243 vsb.setValue(value - 0.5 * vsb.pageStep()) # center on page |
243 |
244 |
244 def wheelEvent(self, event): |
245 def wheelEvent(self, event): |
248 @param event reference to the wheel event (QWheelEvent) |
249 @param event reference to the wheel event (QWheelEvent) |
249 """ |
250 """ |
250 isVertical = event.angleDelta().x() == 0 |
251 isVertical = event.angleDelta().x() == 0 |
251 if ( |
252 if ( |
252 self._master and |
253 self._master and |
253 event.modifiers() == Qt.NoModifier and |
254 event.modifiers() == Qt.KeyboardModifier.NoModifier and |
254 isVertical |
255 isVertical |
255 ): |
256 ): |
256 QCoreApplication.sendEvent(self._master.verticalScrollBar(), event) |
257 QCoreApplication.sendEvent(self._master.verticalScrollBar(), event) |
257 |
258 |
258 def calculateGeometry(self): |
259 def calculateGeometry(self): |