Merge pull request #10494 from f321x/console_font_size
qt: console: allow changing font size
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
# source: http://stackoverflow.com/questions/2758159/how-to-embed-a-python-interpreter-in-a-pyqt-widget
|
||||
|
||||
import sys
|
||||
@@ -48,17 +47,22 @@ class OverlayLabel(QtWidgets.QLabel):
|
||||
|
||||
|
||||
class Console(QtWidgets.QPlainTextEdit):
|
||||
DEFAULT_FONT_SIZE = 10
|
||||
MIN_FONT_SIZE = 6
|
||||
MAX_FONT_SIZE = 32
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QtWidgets.QPlainTextEdit.__init__(self, parent)
|
||||
|
||||
self.history = []
|
||||
self.namespace = {}
|
||||
self.construct = []
|
||||
self.font_size = self.DEFAULT_FONT_SIZE
|
||||
|
||||
self.setGeometry(50, 75, 600, 400)
|
||||
self.setWordWrapMode(QtGui.QTextOption.WrapMode.WrapAnywhere)
|
||||
self.setUndoRedoEnabled(False)
|
||||
self.setFont(QtGui.QFont(MONOSPACE_FONT, 10, QtGui.QFont.Weight.Normal))
|
||||
self.setFont(QtGui.QFont(MONOSPACE_FONT, self.font_size, QtGui.QFont.Weight.Normal))
|
||||
self.newPrompt("") # make sure there is always a prompt, even before first server.banner
|
||||
|
||||
self.updateNamespace({'run':self.run_script})
|
||||
@@ -72,6 +76,11 @@ class Console(QtWidgets.QPlainTextEdit):
|
||||
)
|
||||
self.messageOverlay = OverlayLabel(warning_text, self)
|
||||
|
||||
def set_font_size(self, size: int):
|
||||
size = max(self.MIN_FONT_SIZE, min(self.MAX_FONT_SIZE, size))
|
||||
self.font_size = size
|
||||
self.setFont(QtGui.QFont(MONOSPACE_FONT, self.font_size, QtGui.QFont.Weight.Normal))
|
||||
|
||||
def resizeEvent(self, e):
|
||||
super().resizeEvent(e)
|
||||
vertical_scrollbar_width = self.verticalScrollBar().width() * self.verticalScrollBar().isVisible()
|
||||
@@ -308,6 +317,12 @@ class Console(QtWidgets.QPlainTextEdit):
|
||||
elif event.key() == Qt.Key.Key_C and event.modifiers() == Qt.KeyboardModifier.ControlModifier:
|
||||
if not self.textCursor().selectedText():
|
||||
self.keyboard_interrupt()
|
||||
elif event.key() == Qt.Key.Key_Plus and Qt.KeyboardModifier.ControlModifier in event.modifiers():
|
||||
self.set_font_size(self.font_size + 1)
|
||||
return
|
||||
elif event.key() == Qt.Key.Key_Minus and Qt.KeyboardModifier.ControlModifier in event.modifiers():
|
||||
self.set_font_size(self.font_size - 1)
|
||||
return
|
||||
|
||||
super(Console, self).keyPressEvent(event)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user