Dmitri Bogomolov
51b5e64f34
QtPy is a compatibility layer which allows to use the code written for PyQt5 with any python Qt binding: PyQt4, PyQt5, pyside or pyside2. Main differences in PyQt5: - all widget classes are now in QtWidgets package, not QtGui; - QString obsoleted by unicode (sip API 2); - changed the way of signals connection. Closes: #1191
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""The MessageCompose class definition"""
|
|
|
|
from qtpy import QtCore, QtWidgets
|
|
from tr import _translate
|
|
|
|
|
|
class MessageCompose(QtWidgets.QTextEdit):
|
|
"""Editor class with wheel zoom functionality"""
|
|
def __init__(self, parent=None):
|
|
super(MessageCompose, self).__init__(parent)
|
|
# we'll deal with this later when we have a new message format
|
|
self.setAcceptRichText(False)
|
|
self.defaultFontPointSize = self.currentFont().pointSize()
|
|
|
|
def wheelEvent(self, event):
|
|
"""Mouse wheel scroll event handler"""
|
|
if (
|
|
(QtWidgets.QApplication.queryKeyboardModifiers()
|
|
& QtCore.Qt.ControlModifier) == QtCore.Qt.ControlModifier
|
|
and event.orientation() == QtCore.Qt.Vertical
|
|
):
|
|
if event.delta() > 0:
|
|
self.zoomIn(1)
|
|
else:
|
|
self.zoomOut(1)
|
|
QtWidgets.QApplication.activeWindow().statusbar.showMessage(
|
|
_translate("MainWindow", "Zoom level {0}%").format(
|
|
# zoom percentage
|
|
self.currentFont().pointSize() * 100
|
|
/ self.defaultFontPointSize
|
|
))
|
|
else:
|
|
# in QTextEdit, super does not zoom, only scroll
|
|
super(MessageCompose, self).wheelEvent(event)
|
|
|
|
def reset(self):
|
|
"""Clear the edit content"""
|
|
self.setText('')
|