Skip to content
This repository was archived by the owner on Aug 31, 2025. It is now read-only.

Commit 8955b4e

Browse files
authored
Merge pull request #1842 from keith-packard/continuous-sizing
Continuously scale button bar based on window width
2 parents 2724dfc + 1d6090a commit 8955b4e

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

mu/interface/main.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -168,14 +168,9 @@ def set_responsive_mode(self, width, height):
168168
"""
169169
Compact button bar for when window is very small.
170170
"""
171-
font_size = DEFAULT_FONT_SIZE
172-
if width < 1124 and height > 600:
173-
self.setIconSize(QSize(48, 48))
174-
elif height < 600 and width < 940:
175-
font_size = 10
176-
self.setIconSize(QSize(32, 32))
177-
else:
178-
self.setIconSize(QSize(64, 64))
171+
font_size = min(DEFAULT_FONT_SIZE, width // 80)
172+
icon_size = min(64, width // 24)
173+
self.setIconSize(QSize(icon_size, icon_size))
179174
stylesheet = "QWidget{font-size: " + str(font_size) + "px;}"
180175
self.setStyleSheet(stylesheet)
181176

tests/interface/test_main.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,20 @@ def test_ButtonBar_set_responsive_mode():
102102
bb = mu.interface.main.ButtonBar(None)
103103
bb.setStyleSheet = mock.MagicMock()
104104
bb.set_responsive_mode(1124, 800)
105-
mock_icon_size.assert_called_with(QSize(64, 64))
106-
default_font = str(mu.interface.themes.DEFAULT_FONT_SIZE)
107-
style = "QWidget{font-size: " + default_font + "px;}"
105+
mock_icon_size.assert_called_with(QSize(46, 46))
106+
style = (
107+
"QWidget{font-size: "
108+
+ str(mu.interface.themes.DEFAULT_FONT_SIZE)
109+
+ "px;}"
110+
)
108111
bb.setStyleSheet.assert_called_with(style)
109112
bb.set_responsive_mode(939, 800)
110-
mock_icon_size.assert_called_with(QSize(48, 48))
113+
mock_icon_size.assert_called_with(QSize(39, 39))
114+
style = "QWidget{font-size: " + str(11) + "px;}"
111115
bb.setStyleSheet.assert_called_with(style)
112116
bb.set_responsive_mode(939, 599)
113-
mock_icon_size.assert_called_with(QSize(32, 32))
114-
style = "QWidget{font-size: " + str(10) + "px;}"
117+
mock_icon_size.assert_called_with(QSize(39, 39))
118+
style = "QWidget{font-size: " + str(11) + "px;}"
115119
bb.setStyleSheet.assert_called_with(style)
116120

117121

0 commit comments

Comments
 (0)