creatumlibre.ui.dialogs.dialog_manager
1from PyQt6.QtWidgets import QDialog 2 3 4class DialogManager: 5 """handle the open dialogs""" 6 7 def __init__(self): 8 self.dialog_list = [] 9 10 def add_dialog(self, dialog: QDialog): 11 """add a dialog so, it keeps showing""" 12 self.dialog_list.append(dialog) 13 14 def remove_dialog(self, dialog: QDialog): 15 """remove the doalog from the open list""" 16 self.dialog_list.remove(dialog) 17 18 def show(self, dialog: QDialog): 19 """show or raise modeless, depending on already open""" 20 if dialog not in self.dialog_list: 21 self.add_dialog(dialog) 22 dialog.show() 23 else: 24 dialog.raise_() 25 dialog.activateWindow() 26 27 def exec(self, dialog: QDialog): 28 """Executes the dialog modally if not already shown.""" 29 if dialog not in self.dialog_list: 30 self.add_dialog(dialog) 31 dialog.exec() 32 else: 33 dialog.raise_() 34 dialog.activateWindow() 35 36 def update(self, dialog_type: type): 37 """update the selcted dialog""" 38 for dialog in self.dialog_list: 39 if isinstance(dialog, dialog_type): 40 if hasattr(dialog, "refresh"): 41 dialog.refresh()
class
DialogManager:
5class DialogManager: 6 """handle the open dialogs""" 7 8 def __init__(self): 9 self.dialog_list = [] 10 11 def add_dialog(self, dialog: QDialog): 12 """add a dialog so, it keeps showing""" 13 self.dialog_list.append(dialog) 14 15 def remove_dialog(self, dialog: QDialog): 16 """remove the doalog from the open list""" 17 self.dialog_list.remove(dialog) 18 19 def show(self, dialog: QDialog): 20 """show or raise modeless, depending on already open""" 21 if dialog not in self.dialog_list: 22 self.add_dialog(dialog) 23 dialog.show() 24 else: 25 dialog.raise_() 26 dialog.activateWindow() 27 28 def exec(self, dialog: QDialog): 29 """Executes the dialog modally if not already shown.""" 30 if dialog not in self.dialog_list: 31 self.add_dialog(dialog) 32 dialog.exec() 33 else: 34 dialog.raise_() 35 dialog.activateWindow() 36 37 def update(self, dialog_type: type): 38 """update the selcted dialog""" 39 for dialog in self.dialog_list: 40 if isinstance(dialog, dialog_type): 41 if hasattr(dialog, "refresh"): 42 dialog.refresh()
handle the open dialogs
def
add_dialog(self, dialog: PyQt6.QtWidgets.QDialog):
11 def add_dialog(self, dialog: QDialog): 12 """add a dialog so, it keeps showing""" 13 self.dialog_list.append(dialog)
add a dialog so, it keeps showing
def
remove_dialog(self, dialog: PyQt6.QtWidgets.QDialog):
15 def remove_dialog(self, dialog: QDialog): 16 """remove the doalog from the open list""" 17 self.dialog_list.remove(dialog)
remove the doalog from the open list
def
show(self, dialog: PyQt6.QtWidgets.QDialog):
19 def show(self, dialog: QDialog): 20 """show or raise modeless, depending on already open""" 21 if dialog not in self.dialog_list: 22 self.add_dialog(dialog) 23 dialog.show() 24 else: 25 dialog.raise_() 26 dialog.activateWindow()
show or raise modeless, depending on already open
def
exec(self, dialog: PyQt6.QtWidgets.QDialog):
28 def exec(self, dialog: QDialog): 29 """Executes the dialog modally if not already shown.""" 30 if dialog not in self.dialog_list: 31 self.add_dialog(dialog) 32 dialog.exec() 33 else: 34 dialog.raise_() 35 dialog.activateWindow()
Executes the dialog modally if not already shown.