do not use the leaveEvent on macos
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import platform
|
||||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
from gotify_tray.database import Settings
|
from gotify_tray.database import Settings
|
||||||
@@ -18,13 +19,13 @@ class ImagePopup(QtWidgets.QLabel):
|
|||||||
super(ImagePopup, self).__init__()
|
super(ImagePopup, self).__init__()
|
||||||
self.link = link
|
self.link = link
|
||||||
|
|
||||||
self.setWindowFlags(QtCore.Qt.WindowType.ToolTip)
|
self.setWindowFlags(QtCore.Qt.WindowType.Popup)
|
||||||
self.installEventFilter(self)
|
self.installEventFilter(self)
|
||||||
|
|
||||||
# Prevent leaving the pop-up open when moving quickly out of the widget
|
# Prevent leaving the pop-up open when moving quickly out of the widget
|
||||||
self.popup_timer = QtCore.QTimer()
|
self.popup_timer = QtCore.QTimer()
|
||||||
self.popup_timer.timeout.connect(self.check_mouse)
|
self.popup_timer.timeout.connect(self.check_mouse)
|
||||||
|
|
||||||
pixmap = QtGui.QPixmap(filename).scaled(
|
pixmap = QtGui.QPixmap(filename).scaled(
|
||||||
settings.value("ImagePopup/w", type=int),
|
settings.value("ImagePopup/w", type=int),
|
||||||
settings.value("ImagePopup/h", type=int),
|
settings.value("ImagePopup/h", type=int),
|
||||||
@@ -34,19 +35,19 @@ class ImagePopup(QtWidgets.QLabel):
|
|||||||
self.setPixmap(pixmap)
|
self.setPixmap(pixmap)
|
||||||
|
|
||||||
self.move(pos - QtCore.QPoint(15, 15))
|
self.move(pos - QtCore.QPoint(15, 15))
|
||||||
|
|
||||||
self.popup_timer.start(500)
|
self.popup_timer.start(500)
|
||||||
|
|
||||||
def check_mouse(self):
|
def check_mouse(self):
|
||||||
if not self.underMouse():
|
if not self.underMouse():
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.popup_timer.stop()
|
self.popup_timer.stop()
|
||||||
super(ImagePopup, self).close()
|
super(ImagePopup, self).close()
|
||||||
|
|
||||||
def eventFilter(self, object: QtCore.QObject, event: QtCore.QEvent) -> bool:
|
def eventFilter(self, object: QtCore.QObject, event: QtCore.QEvent) -> bool:
|
||||||
if event.type() == QtCore.QEvent.Type.Leave:
|
if platform.system() != "Darwin" and event.type() == QtCore.QEvent.Type.Leave:
|
||||||
# Close the pop-up on mouse leave
|
# Close the pop-up on mouse leave
|
||||||
self.close()
|
self.close()
|
||||||
elif (
|
elif (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
|||||||
|
|
||||||
from ..models.MessagesModel import MessageItemDataRole, MessagesModelItem
|
from ..models.MessagesModel import MessageItemDataRole, MessagesModelItem
|
||||||
from ..designs.widget_message import Ui_Form
|
from ..designs.widget_message import Ui_Form
|
||||||
from gotify_tray.database import Cache, Settings
|
from gotify_tray.database import Settings
|
||||||
from gotify_tray.utils import convert_links, get_abs_path
|
from gotify_tray.utils import convert_links, get_abs_path
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user