39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""The MessageCompose class definition"""
|
|
|
|
from PyQt5 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.angleDelta().y() != 0
|
|
):
|
|
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('')
|