added maximize/restore to MDISubWindow, changed frame_on/frame_off from FramelessWindowHint to custom hint

This commit is contained in:
2023-01-29 14:05:18 +01:00
parent aeaabd028f
commit 16c7b4f71c
2 changed files with 20 additions and 4 deletions

View File

@ -67,6 +67,7 @@ class MDIArea(QMdiArea):
self.menu.checkboxes["Multiple windows"].setChecked(True)
self.enable_subwindow_view()
for sub in self.subWindowList():
sub.restore()
sub.frame_on()
def enable_single_window_mode(self):
@ -75,7 +76,7 @@ class MDIArea(QMdiArea):
self.closeInactiveSubWindows()
active = self.activeSubWindow()
if active:
active.showMaximized()
active.maximize()
active.frame_off()
def enable_tabbed_mode(self):
@ -104,7 +105,7 @@ class MDIArea(QMdiArea):
def add_single(self, sub):
self.closeAllSubWindows()
self.addSubWindow(sub)
sub.showMaximized()
sub.maximize()
sub.frame_off()

View File

@ -14,12 +14,27 @@ class MDISubWindow(QMdiSubWindow):
# without this, the SubWindow is not removed from the subWindowList
self.setAttribute(Qt.WA_DeleteOnClose)
self._previous_state = None
def maximize(self):
self._previous_state = state = self.windowState()
self.setWindowState(state | Qt.WindowMaximized)
def restore(self):
if self._previous_state:
self.setWindowState(self._previous_state)
def frame_on(self):
self.setWindowFlag(Qt.FramelessWindowHint, False)
self.hide()
self.setWindowFlags(Qt.SubWindow)
self.show()
def frame_off(self):
self.setWindowFlag(Qt.FramelessWindowHint, True)
self.hide()
self.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowTitleHint)
self.show()