PyBitmessage-2021-04-27/src/bitmessageqt/messagecompose.py

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.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('')