# HG changeset patch
# User Matt Harbison <
matt_h...@yahoo.com>
# Date 1701550287 18000
# Sat Dec 02 15:51:27 2023 -0500
# Branch stable
# Node ID 77b25021b7687d866bf9854ecb5b64ba90c25ffb
# Parent 9612bce5298f15bec3fefacc81e7aa1ac6861ca0
# EXP-Topic qt6-fixes
typing: add typehints around events calling `.pos()`
The Qt5 -> Qt6 transition cut the number of `.pos()` functions in QtGui from 11
to 4. Only the QMouseEvent, QMoveEvent, QContextMenuEvent, and QHelpEvent
remain unchanged in the type hints. In an effort to see if there were any other
instances of rename problems like the previous commit, I grepped for `pos\(\)`,
and placed typehints where it was already correct, in cse they get changed in
the future. In the end, this covered all instances of that pattern that were Qt
function calls.
diff --git a/tortoisehg/hgqt/fileview.py b/tortoisehg/hgqt/fileview.py
--- a/tortoisehg/hgqt/fileview.py
+++ b/tortoisehg/hgqt/fileview.py
@@ -11,6 +11,10 @@
import os
import re
+from typing import (
+ cast,
+)
+
from . import qsci as Qsci
from .qtcore import (
QElapsedTimer,
@@ -33,6 +37,7 @@
QInputDialog,
QKeySequence,
QLabel,
+ QMouseEvent,
QPalette,
QShortcut,
QStyle,
@@ -1002,7 +1007,7 @@
self._sci.markerDeleteAll()
self._cmdsession.abort()
- def eventFilter(self, watched, event):
+ def eventFilter(self, watched: QObject, event: QEvent) -> bool:
# Python wrapper is deleted immediately before QEvent.Destroy
try:
sciviewport = self._sci.viewport()
@@ -1010,7 +1015,7 @@
sciviewport = None
if watched is sciviewport:
if event.type() == QEvent.Type.MouseMove:
- line = self._sci.lineNearPoint(event.pos())
+ line = self._sci.lineNearPoint(cast(QMouseEvent, event).pos())
self._emitRevisionHintAtLine(line)
return False
return super(_AnnotateViewControl, self).eventFilter(watched, event)
diff --git a/tortoisehg/hgqt/reporegistry.py b/tortoisehg/hgqt/reporegistry.py
--- a/tortoisehg/hgqt/reporegistry.py
+++ b/tortoisehg/hgqt/reporegistry.py
@@ -36,6 +36,7 @@
QFrame,
QMenu,
QMessageBox,
+ QMouseEvent,
QTreeView,
QVBoxLayout,
)
@@ -192,7 +193,7 @@
return
super(RepoTreeView, self).keyPressEvent(event)
- def mouseMoveEvent(self, event):
+ def mouseMoveEvent(self, event: QMouseEvent) -> None:
self.msg = ''
pos = event.pos()
idx = self.indexAt(pos)
@@ -211,7 +212,7 @@
if self.msg != '':
self.showMessage.emit('')
- def mouseDoubleClickEvent(self, event):
+ def mouseDoubleClickEvent(self, event: QMouseEvent) -> None:
index = self.indexAt(event.pos())
if index.isValid() and index.internalPointer().isRepo():
self.openRequested.emit(index)
diff --git a/tortoisehg/hgqt/repotab.py b/tortoisehg/hgqt/repotab.py
--- a/tortoisehg/hgqt/repotab.py
+++ b/tortoisehg/hgqt/repotab.py
@@ -24,6 +24,7 @@
QActionGroup,
QKeySequence,
QMenu,
+ QMouseEvent,
QShortcut,
QStackedLayout,
QTabBar,
@@ -46,7 +47,7 @@
class _TabBar(QTabBar):
- def mouseReleaseEvent(self, event):
+ def mouseReleaseEvent(self, event: QMouseEvent) -> None:
if event.button() == Qt.MouseButton.MiddleButton:
self.tabCloseRequested.emit(self.tabAt(event.pos()))
super(_TabBar, self).mouseReleaseEvent(event)
diff --git a/tortoisehg/hgqt/repoview.py b/tortoisehg/hgqt/repoview.py
--- a/tortoisehg/hgqt/repoview.py
+++ b/tortoisehg/hgqt/repoview.py
@@ -48,6 +48,7 @@
QListWidget,
QListWidgetItem,
QMenu,
+ QMouseEvent,
QPainter,
QPainterPath,
QPen,
@@ -137,7 +138,7 @@
def repo(self):
return self._repoagent.rawRepo()
- def mousePressEvent(self, event):
+ def mousePressEvent(self, event: QMouseEvent) -> None:
index = self.indexAt(event.pos())
if not index.isValid():
return