From 354b1a7ce5530a40066820415af3096994e455f1 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 20 Dec 2022 12:49:56 +0100 Subject: [PATCH] added tabbed mode --- grum/mdi/mdiarea.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/grum/mdi/mdiarea.py b/grum/mdi/mdiarea.py index a2d3b23..a451a03 100644 --- a/grum/mdi/mdiarea.py +++ b/grum/mdi/mdiarea.py @@ -10,6 +10,8 @@ class MDIArea(QMdiArea): def __init__(self, bar, *args, **kwargs): super().__init__(*args, **kwargs) self.logo = assets.logo() + self.setTabsClosable(True) + self.setTabsMovable(True) self._add_menu(bar) @@ -17,17 +19,34 @@ class MDIArea(QMdiArea): menu = bar.addMenu("&Windows") menu.addAction("Cascade") menu.addAction("Tile") + menu.addAction("Tabbed") menu.addSeparator() menu.addAction("Close All") menu.triggered[QAction].connect(self.on_menu_select) self.actions = { - "Cascade": self.cascadeSubWindows, - "Tile": self.tileSubWindows, + "Cascade": self.on_cascade, + "Tile": self.on_tile, + "Tabbed": self.enable_tabbed_view, "Close All": self.closeAllSubWindows } + def on_cascade(self): + self.enable_subwindow_view() + self.cascadeSubWindows() + + def on_tile(self): + self.enable_subwindow_view() + self.tileSubWindows() + + def enable_subwindow_view(self): + self.setViewMode(QMdiArea.SubWindowView) + + def enable_tabbed_view(self): + self.setViewMode(QMdiArea.TabbedView) + + def on_menu_select(self, p): txt = p.text() self.actions[txt]()