Merge remote-tracking branch 'origin/pr/3752'
This commit is contained in:
commit
e095f64eb6
@ -494,8 +494,8 @@ class TabBar(QTabBar):
|
|||||||
self.iconSize().width()) + icon_padding
|
self.iconSize().width()) + icon_padding
|
||||||
|
|
||||||
pinned = self._tab_pinned(index)
|
pinned = self._tab_pinned(index)
|
||||||
if pinned:
|
if not self.vertical and pinned and config.val.tabs.pinned.shrink:
|
||||||
# Never consider ellipsis an option for pinned tabs
|
# Never consider ellipsis an option for horizontal pinned tabs
|
||||||
ellipsis = False
|
ellipsis = False
|
||||||
return self._minimum_tab_size_hint_helper(self.tabText(index),
|
return self._minimum_tab_size_hint_helper(self.tabText(index),
|
||||||
icon_width, ellipsis,
|
icon_width, ellipsis,
|
||||||
|
@ -61,6 +61,60 @@ class TestTabWidget:
|
|||||||
with qtbot.waitExposed(widget):
|
with qtbot.waitExposed(widget):
|
||||||
widget.show()
|
widget.show()
|
||||||
|
|
||||||
|
# Sizing tests
|
||||||
|
|
||||||
|
def test_tab_size_same(self, widget, fake_web_tab):
|
||||||
|
"""Ensure by default, all tab sizes are the same."""
|
||||||
|
num_tabs = 10
|
||||||
|
for i in range(num_tabs):
|
||||||
|
widget.addTab(fake_web_tab(), 'foobar' + str(i))
|
||||||
|
|
||||||
|
first_size = widget.tabBar().tabSizeHint(0)
|
||||||
|
first_size_min = widget.tabBar().minimumTabSizeHint(0)
|
||||||
|
|
||||||
|
for i in range(num_tabs):
|
||||||
|
assert first_size == widget.tabBar().tabSizeHint(i)
|
||||||
|
assert first_size_min == widget.tabBar().minimumTabSizeHint(i)
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("shrink_pinned", [True, False])
|
||||||
|
@pytest.mark.parametrize("vertical", [True, False])
|
||||||
|
def test_pinned_size(self, widget, fake_web_tab, config_stub,
|
||||||
|
shrink_pinned, vertical):
|
||||||
|
"""Ensure by default, pinned min sizes are forced to title.
|
||||||
|
|
||||||
|
If pinned.shrink is not true, then all tabs should be the same
|
||||||
|
|
||||||
|
If tabs are vertical, all tabs should be the same"""
|
||||||
|
num_tabs = 10
|
||||||
|
for i in range(num_tabs):
|
||||||
|
widget.addTab(fake_web_tab(), 'foobar' + str(i))
|
||||||
|
|
||||||
|
# Set pinned title format longer than unpinned
|
||||||
|
config_stub.val.tabs.title.format_pinned = "_" * 20
|
||||||
|
config_stub.val.tabs.title.format = "_" * 2
|
||||||
|
config_stub.val.tabs.pinned.shrink = shrink_pinned
|
||||||
|
if vertical:
|
||||||
|
# Use pixel width so we don't need to mock main-window
|
||||||
|
config_stub.val.tabs.width = 50
|
||||||
|
config_stub.val.tabs.position = "left"
|
||||||
|
|
||||||
|
pinned_num = [1, num_tabs - 1]
|
||||||
|
for tab in pinned_num:
|
||||||
|
widget.set_tab_pinned(widget.widget(tab), True)
|
||||||
|
|
||||||
|
first_size = widget.tabBar().tabSizeHint(0)
|
||||||
|
first_size_min = widget.tabBar().minimumTabSizeHint(0)
|
||||||
|
|
||||||
|
for i in range(num_tabs):
|
||||||
|
if i in pinned_num and shrink_pinned and not vertical:
|
||||||
|
assert (first_size.width() <
|
||||||
|
widget.tabBar().tabSizeHint(i).width())
|
||||||
|
assert (first_size_min.width() <
|
||||||
|
widget.tabBar().minimumTabSizeHint(i).width())
|
||||||
|
else:
|
||||||
|
assert first_size == widget.tabBar().tabSizeHint(i)
|
||||||
|
assert first_size_min == widget.tabBar().minimumTabSizeHint(i)
|
||||||
|
|
||||||
@pytest.mark.parametrize("num_tabs", [4, 10])
|
@pytest.mark.parametrize("num_tabs", [4, 10])
|
||||||
def test_update_tab_titles_benchmark(self, benchmark, widget,
|
def test_update_tab_titles_benchmark(self, benchmark, widget,
|
||||||
qtbot, fake_web_tab, num_tabs):
|
qtbot, fake_web_tab, num_tabs):
|
||||||
|
Loading…
Reference in New Issue
Block a user