Skip to content

Commit 9a4df96

Browse files
committed
Support resizing gui font
1 parent d289937 commit 9a4df96

File tree

8 files changed

+246
-89
lines changed

8 files changed

+246
-89
lines changed

preditor/gui/console.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,11 @@ def codeHighlighter(self):
165165
"""
166166
return self._uiCodeHighlighter
167167

168+
def contextMenuEvent(self, event):
169+
menu = self.createStandardContextMenu()
170+
menu.setFont(self.window().font())
171+
menu.exec(self.mapToGlobal(event.pos()))
172+
168173
def doubleSingleShotSetScrollValue(self, origPercent):
169174
"""This double QTimer.singleShot monkey business seems to be the only way
170175
to get scroll.maximum() to update properly so that we calc newValue
@@ -241,17 +246,6 @@ def mouseReleaseEvent(self, event):
241246
QApplication.restoreOverrideCursor()
242247
return super(ConsolePrEdit, self).mouseReleaseEvent(event)
243248

244-
def wheelEvent(self, event):
245-
"""Override of wheelEvent to allow for font resizing by holding ctrl while"""
246-
# scrolling. If used in LoggerWindow, use that wheel event
247-
# May not want to import LoggerWindow, so perhaps
248-
# check by str(type())
249-
ctrlPressed = event.modifiers() == Qt.KeyboardModifier.ControlModifier
250-
if ctrlPressed and "LoggerWindow" in str(type(self.window())):
251-
self.window().wheelEvent(event)
252-
else:
253-
QTextEdit.wheelEvent(self, event)
254-
255249
def keyReleaseEvent(self, event):
256250
"""Override of keyReleaseEvent to determine when to end navigation of
257251
previous commands

preditor/gui/drag_tab_bar.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
QFileDialog,
1212
QInputDialog,
1313
QMenu,
14+
QSizePolicy,
1415
QStyle,
1516
QStyleOptionTab,
1617
QTabBar,
@@ -353,6 +354,7 @@ def tab_menu(self, pos, popup=True):
353354
if self._context_menu_tab == -1:
354355
return
355356
menu = QMenu(self)
357+
menu.setFont(self.window().font())
356358

357359
grouped_tab = self.parentWidget()
358360
workbox = grouped_tab.widget(self._context_menu_tab)
@@ -520,6 +522,10 @@ def install_tab_widget(cls, tab_widget, mime_type='DragTabBar', menu=True):
520522
tab_widget.setMovable(True)
521523
tab_widget.setDocumentMode(True)
522524

525+
sizePolicy = tab_widget.sizePolicy()
526+
sizePolicy.setVerticalPolicy(QSizePolicy.Policy.Preferred)
527+
tab_widget.setSizePolicy(sizePolicy)
528+
523529
if menu:
524530
bar.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
525531
bar.customContextMenuRequested.connect(bar.tab_menu)

preditor/gui/group_tab_widget/__init__.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
from pathlib import Path
44

55
from Qt.QtCore import Qt
6-
from Qt.QtGui import QIcon
7-
from Qt.QtWidgets import QHBoxLayout, QMessageBox, QToolButton, QWidget
6+
from Qt.QtWidgets import QHBoxLayout, QMessageBox, QSizePolicy, QToolButton, QWidget
87

9-
from ... import resourcePath
108
from ...prefs import VersionTypes, get_backup_version_info
119
from ..drag_tab_bar import DragTabBar
1210
from ..workbox_text_edit import WorkboxTextEdit
@@ -16,10 +14,10 @@
1614

1715
DEFAULT_STYLE_SHEET = """
1816
/* Make the two buttons in the GroupTabWidget take up the
19-
same horizontal space as the GroupedTabWidget's buttons. */
17+
same horizontal space as the GroupedTabWidget's buttons.
2018
GroupTabWidget>QTabBar::tab{
2119
max-height: 1.5em;
22-
}
20+
}*/
2321
/* We have an icon, no need to show the menu indicator */
2422
#group_tab_widget_menu_btn::menu-indicator{
2523
width: 0px;
@@ -51,26 +49,37 @@ def __init__(self, editor_kwargs=None, core_name=None, *args, **kwargs):
5149
corner = QWidget(self)
5250
lyt = QHBoxLayout(corner)
5351
lyt.setSpacing(0)
54-
lyt.setContentsMargins(0, 0, 0, 0)
52+
lyt.setContentsMargins(0, 5, 0, 0)
5553

5654
corner.uiNewTabBTN = QToolButton(corner)
5755
corner.uiNewTabBTN.setObjectName('group_tab_widget_new_btn')
5856
corner.uiNewTabBTN.setText('+')
59-
corner.uiNewTabBTN.setIcon(QIcon(resourcePath('img/file-plus.png')))
6057
corner.uiNewTabBTN.released.connect(lambda: self.add_new_tab(None))
58+
6159
lyt.addWidget(corner.uiNewTabBTN)
6260

6361
corner.uiMenuBTN = QToolButton(corner)
64-
corner.uiMenuBTN.setIcon(QIcon(resourcePath('img/chevron-down.png')))
62+
corner.uiMenuBTN.setText('\u2630')
6563
corner.uiMenuBTN.setObjectName('group_tab_widget_menu_btn')
6664
corner.uiMenuBTN.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup)
6765
corner.uiCornerMENU = GroupTabMenu(self, parent=corner.uiMenuBTN)
6866
corner.uiMenuBTN.setMenu(corner.uiCornerMENU)
67+
68+
self.adjustSizePolicy(corner)
69+
self.adjustSizePolicy(corner.uiNewTabBTN)
70+
self.adjustSizePolicy(corner.uiMenuBTN)
71+
self.adjustSizePolicy(corner.uiCornerMENU)
72+
6973
lyt.addWidget(corner.uiMenuBTN)
7074

7175
self.uiCornerBTN = corner
7276
self.setCornerWidget(self.uiCornerBTN, Qt.Corner.TopRightCorner)
7377

78+
def adjustSizePolicy(self, button):
79+
sp = button.sizePolicy()
80+
sp.setVerticalPolicy(QSizePolicy.Policy.Preferred)
81+
button.setSizePolicy(sp)
82+
7483
def add_new_tab(self, group, title=None, prefs=None):
7584
"""Adds a new tab to the requested group, creating the group if the group
7685
doesn't exist.
@@ -110,6 +119,7 @@ def add_new_tab(self, group, title=None, prefs=None):
110119
editor = parent.add_new_editor(title, prefs)
111120
self.setCurrentIndex(self.indexOf(parent))
112121
self.window().focusToWorkbox()
122+
self.tabBar().setFont(self.window().font())
113123
return parent, editor
114124

115125
def all_widgets(self):

preditor/gui/group_tab_widget/grouped_tab_widget.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
from __future__ import absolute_import
22

33
from Qt.QtCore import Qt
4-
from Qt.QtGui import QIcon
54
from Qt.QtWidgets import QMessageBox, QToolButton
65

7-
from ... import resourcePath
86
from ...prefs import VersionTypes
97
from ..drag_tab_bar import DragTabBar
108
from ..workbox_text_edit import WorkboxTextEdit
@@ -24,7 +22,6 @@ def __init__(self, editor_kwargs, editor_cls=None, core_name=None, *args, **kwar
2422

2523
self.uiCornerBTN = QToolButton(self)
2624
self.uiCornerBTN.setText('+')
27-
self.uiCornerBTN.setIcon(QIcon(resourcePath('img/file-plus.png')))
2825
self.uiCornerBTN.released.connect(lambda: self.add_new_editor())
2926
self.setCornerWidget(self.uiCornerBTN, Qt.Corner.TopRightCorner)
3027

preditor/gui/group_tab_widget/one_tab_widget.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def get_next_available_tab_name(self, name):
6060
def addTab(self, *args, **kwargs): # noqa: N802
6161
ret = super(OneTabWidget, self).addTab(*args, **kwargs)
6262
self.update_closable_tabs()
63+
self.tabBar().setFont(self.window().font())
6364
return ret
6465

6566
def close_tab(self, index):

0 commit comments

Comments
 (0)