dialog removal refactor
This commit is contained in:
parent
8d2f90f800
commit
0b1b2f0e19
@ -204,7 +204,6 @@ class KlippyGtk:
|
|||||||
button.set_size_request((screen.width - 30) / 3, screen.height / 5)
|
button.set_size_request((screen.width - 30) / 3, screen.height / 5)
|
||||||
|
|
||||||
dialog.connect("response", self.screen.reset_screensaver_timeout)
|
dialog.connect("response", self.screen.reset_screensaver_timeout)
|
||||||
dialog.connect("response", self.remove_dialog, dialog)
|
|
||||||
dialog.connect("response", callback, *args)
|
dialog.connect("response", callback, *args)
|
||||||
dialog.get_style_context().add_class("dialog")
|
dialog.get_style_context().add_class("dialog")
|
||||||
|
|
||||||
@ -225,11 +224,16 @@ class KlippyGtk:
|
|||||||
Gdk.Cursor.new_for_display(Gdk.Display.get_default(), Gdk.CursorType.BLANK_CURSOR))
|
Gdk.Cursor.new_for_display(Gdk.Display.get_default(), Gdk.CursorType.BLANK_CURSOR))
|
||||||
|
|
||||||
self.screen.dialogs.append(dialog)
|
self.screen.dialogs.append(dialog)
|
||||||
|
logging.info(f"Showing dialog {dialog}")
|
||||||
return dialog
|
return dialog
|
||||||
|
|
||||||
def remove_dialog(self, widget, response_id, dialog):
|
def remove_dialog(self, dialog, *args):
|
||||||
|
dialog.destroy()
|
||||||
|
if dialog in self.screen.dialogs:
|
||||||
logging.info("Removing Dialog")
|
logging.info("Removing Dialog")
|
||||||
self.screen.dialogs.remove(dialog)
|
self.screen.dialogs.remove(dialog)
|
||||||
|
return
|
||||||
|
logging.debug(f"Cannot remove dialog {dialog}")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def HomogeneousGrid(width=None, height=None):
|
def HomogeneousGrid(width=None, height=None):
|
||||||
|
@ -427,14 +427,14 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
]
|
]
|
||||||
self._gtk.Dialog(self._screen, buttons, grid, self.save_confirm, device)
|
self._gtk.Dialog(self._screen, buttons, grid, self.save_confirm, device)
|
||||||
|
|
||||||
def save_confirm(self, widget, response_id, device):
|
def save_confirm(self, dialog, response_id, device):
|
||||||
|
self._gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.APPLY:
|
if response_id == Gtk.ResponseType.APPLY:
|
||||||
if device == "probe":
|
if device == "probe":
|
||||||
self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_PROBE")
|
self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_PROBE")
|
||||||
if device == "endstop":
|
if device == "endstop":
|
||||||
self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_ENDSTOP")
|
self._screen._ws.klippy.gcode_script("Z_OFFSET_APPLY_ENDSTOP")
|
||||||
self._screen._ws.klippy.gcode_script("SAVE_CONFIG")
|
self._screen._ws.klippy.gcode_script("SAVE_CONFIG")
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def restart(self, widget):
|
def restart(self, widget):
|
||||||
if self.filename != "none":
|
if self.filename != "none":
|
||||||
@ -467,17 +467,14 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
|
|
||||||
self._gtk.Dialog(self._screen, buttons, label, self.cancel_confirm)
|
self._gtk.Dialog(self._screen, buttons, label, self.cancel_confirm)
|
||||||
|
|
||||||
def cancel_confirm(self, widget, response_id):
|
def cancel_confirm(self, dialog, response_id):
|
||||||
widget.destroy()
|
self._gtk.remove_dialog(dialog)
|
||||||
|
|
||||||
if response_id == Gtk.ResponseType.APPLY:
|
if response_id == Gtk.ResponseType.APPLY:
|
||||||
self.menu_item_clicked(None, "exclude", {"panel": "exclude", "name": _("Exclude Object")})
|
self.menu_item_clicked(None, "exclude", {"panel": "exclude", "name": _("Exclude Object")})
|
||||||
return
|
return
|
||||||
|
|
||||||
if response_id == Gtk.ResponseType.CANCEL:
|
if response_id == Gtk.ResponseType.CANCEL:
|
||||||
self.enable_button("pause", "cancel")
|
self.enable_button("pause", "cancel")
|
||||||
return
|
return
|
||||||
|
|
||||||
logging.debug("Canceling print")
|
logging.debug("Canceling print")
|
||||||
self.set_state("cancelling")
|
self.set_state("cancelling")
|
||||||
self.disable_button("pause", "resume", "cancel")
|
self.disable_button("pause", "resume", "cancel")
|
||||||
|
@ -251,10 +251,6 @@ class NetworkPanel(ScreenPanel):
|
|||||||
del self.labels[i]
|
del self.labels[i]
|
||||||
self.show_add = False
|
self.show_add = False
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def close_dialog(widget, response_id):
|
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def connected_callback(self, ssid, prev_ssid):
|
def connected_callback(self, ssid, prev_ssid):
|
||||||
logging.info("Now connected to a new network")
|
logging.info("Now connected to a new network")
|
||||||
if ssid is not None:
|
if ssid is not None:
|
||||||
@ -293,7 +289,7 @@ class NetworkPanel(ScreenPanel):
|
|||||||
self.labels['connecting_info'].set_halign(Gtk.Align.START)
|
self.labels['connecting_info'].set_halign(Gtk.Align.START)
|
||||||
self.labels['connecting_info'].set_valign(Gtk.Align.START)
|
self.labels['connecting_info'].set_valign(Gtk.Align.START)
|
||||||
scroll.add(self.labels['connecting_info'])
|
scroll.add(self.labels['connecting_info'])
|
||||||
self._gtk.Dialog(self._screen, buttons, scroll, self.close_dialog)
|
self._gtk.Dialog(self._screen, buttons, scroll, self._gtk.remove_dialog)
|
||||||
self._screen.show_all()
|
self._screen.show_all()
|
||||||
|
|
||||||
if ssid in list(self.networks):
|
if ssid in list(self.networks):
|
||||||
|
@ -324,12 +324,10 @@ class PrintPanel(ScreenPanel):
|
|||||||
|
|
||||||
self._gtk.Dialog(self._screen, buttons, grid, self.confirm_print_response, filename)
|
self._gtk.Dialog(self._screen, buttons, grid, self.confirm_print_response, filename)
|
||||||
|
|
||||||
def confirm_print_response(self, widget, response_id, filename):
|
def confirm_print_response(self, dialog, response_id, filename):
|
||||||
widget.destroy()
|
self._gtk.remove_dialog(dialog)
|
||||||
|
|
||||||
if response_id == Gtk.ResponseType.CANCEL:
|
if response_id == Gtk.ResponseType.CANCEL:
|
||||||
return
|
return
|
||||||
|
|
||||||
logging.info(f"Starting print: {filename}")
|
logging.info(f"Starting print: {filename}")
|
||||||
self._screen._ws.klippy.print_start(filename)
|
self._screen._ws.klippy.print_start(filename)
|
||||||
|
|
||||||
|
@ -98,8 +98,8 @@ class SystemPanel(ScreenPanel):
|
|||||||
def activate(self):
|
def activate(self):
|
||||||
self.get_updates()
|
self.get_updates()
|
||||||
|
|
||||||
def finish_updating(self, widget, response_id):
|
def finish_updating(self, dialog, response_id):
|
||||||
widget.destroy()
|
self._gtk.remove_dialog(dialog)
|
||||||
self._screen.set_updating(False)
|
self._screen.set_updating(False)
|
||||||
self.get_updates()
|
self.get_updates()
|
||||||
|
|
||||||
@ -237,20 +237,20 @@ class SystemPanel(ScreenPanel):
|
|||||||
]
|
]
|
||||||
self._gtk.Dialog(self._screen, buttons, scroll, self.update_confirm, program)
|
self._gtk.Dialog(self._screen, buttons, scroll, self.update_confirm, program)
|
||||||
|
|
||||||
def update_confirm(self, widget, response_id, program):
|
def update_confirm(self, dialog, response_id, program):
|
||||||
|
self._gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.OK:
|
if response_id == Gtk.ResponseType.OK:
|
||||||
logging.debug(f"Updating {program}")
|
logging.debug(f"Updating {program}")
|
||||||
self.update_program(self, program)
|
self.update_program(self, program)
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def reset_confirm(self, widget, response_id, program):
|
def reset_confirm(self, dialog, response_id, program):
|
||||||
|
self._gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.OK:
|
if response_id == Gtk.ResponseType.OK:
|
||||||
logging.debug(f"Recovering hard {program}")
|
logging.debug(f"Recovering hard {program}")
|
||||||
self.reset_repo(self, program, True)
|
self.reset_repo(self, program, True)
|
||||||
if response_id == Gtk.ResponseType.APPLY:
|
if response_id == Gtk.ResponseType.APPLY:
|
||||||
logging.debug(f"Recovering soft {program}")
|
logging.debug(f"Recovering soft {program}")
|
||||||
self.reset_repo(self, program, False)
|
self.reset_repo(self, program, False)
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def reset_repo(self, widget, program, hard):
|
def reset_repo(self, widget, program, hard):
|
||||||
if self._screen.is_updating():
|
if self._screen.is_updating():
|
||||||
@ -402,7 +402,8 @@ class SystemPanel(ScreenPanel):
|
|||||||
]
|
]
|
||||||
self._gtk.Dialog(self._screen, buttons, scroll, self.reboot_poweroff_confirm, method)
|
self._gtk.Dialog(self._screen, buttons, scroll, self.reboot_poweroff_confirm, method)
|
||||||
|
|
||||||
def reboot_poweroff_confirm(self, widget, response_id, method):
|
def reboot_poweroff_confirm(self, dialog, response_id, method):
|
||||||
|
self._gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.OK:
|
if response_id == Gtk.ResponseType.OK:
|
||||||
if method == "reboot":
|
if method == "reboot":
|
||||||
os.system("systemctl reboot")
|
os.system("systemctl reboot")
|
||||||
@ -413,4 +414,3 @@ class SystemPanel(ScreenPanel):
|
|||||||
self._screen._ws.send_method("machine.reboot")
|
self._screen._ws.send_method("machine.reboot")
|
||||||
else:
|
else:
|
||||||
self._screen._ws.send_method("machine.shutdown")
|
self._screen._ws.send_method("machine.shutdown")
|
||||||
widget.destroy()
|
|
||||||
|
23
screen.py
23
screen.py
@ -368,8 +368,8 @@ class KlipperScreen(Gtk.Window):
|
|||||||
]
|
]
|
||||||
self.gtk.Dialog(self, buttons, grid, self.error_modal_response)
|
self.gtk.Dialog(self, buttons, grid, self.error_modal_response)
|
||||||
|
|
||||||
def error_modal_response(self, widget, response_id):
|
def error_modal_response(self, dialog, response_id):
|
||||||
widget.destroy()
|
self.gtk.remove_dialog(dialog)
|
||||||
self.reload_panels()
|
self.reload_panels()
|
||||||
|
|
||||||
def restart_warning(self, value):
|
def restart_warning(self, value):
|
||||||
@ -391,11 +391,11 @@ class KlipperScreen(Gtk.Window):
|
|||||||
|
|
||||||
self.gtk.Dialog(self, buttons, label, self.restart_ks)
|
self.gtk.Dialog(self, buttons, label, self.restart_ks)
|
||||||
|
|
||||||
def restart_ks(self, widget, response_id):
|
def restart_ks(self, dialog, response_id):
|
||||||
|
self.gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.OK:
|
if response_id == Gtk.ResponseType.OK:
|
||||||
logging.debug("Restarting")
|
logging.debug("Restarting")
|
||||||
self._ws.send_method("machine.services.restart", {"service": "KlipperScreen"})
|
self._ws.send_method("machine.services.restart", {"service": "KlipperScreen"})
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def init_style(self):
|
def init_style(self):
|
||||||
css_data = pathlib.Path(os.path.join(klipperscreendir, "styles", "base.css")).read_text()
|
css_data = pathlib.Path(os.path.join(klipperscreendir, "styles", "base.css")).read_text()
|
||||||
@ -482,7 +482,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
if panel not in ["printer_select", "splash_screen"]:
|
if panel not in ["printer_select", "splash_screen"]:
|
||||||
del self.panels[panel]
|
del self.panels[panel]
|
||||||
for dialog in self.dialogs:
|
for dialog in self.dialogs:
|
||||||
dialog.destroy()
|
self.gtk.remove_dialog(dialog)
|
||||||
self.close_screensaver()
|
self.close_screensaver()
|
||||||
|
|
||||||
def _remove_current_panel(self, pop=True):
|
def _remove_current_panel(self, pop=True):
|
||||||
@ -534,6 +534,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
self.close_screensaver()
|
self.close_screensaver()
|
||||||
self.remove_keyboard()
|
self.remove_keyboard()
|
||||||
for dialog in self.dialogs:
|
for dialog in self.dialogs:
|
||||||
|
logging.debug("Hiding dialog")
|
||||||
dialog.hide()
|
dialog.hide()
|
||||||
|
|
||||||
close = Gtk.Button()
|
close = Gtk.Button()
|
||||||
@ -563,6 +564,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
else:
|
else:
|
||||||
self.screensaver_timeout = GLib.timeout_add_seconds(self.blanking_time, self.show_screensaver)
|
self.screensaver_timeout = GLib.timeout_add_seconds(self.blanking_time, self.show_screensaver)
|
||||||
for dialog in self.dialogs:
|
for dialog in self.dialogs:
|
||||||
|
logging.info(f"Restoring Dialog {dialog}")
|
||||||
dialog.show()
|
dialog.show()
|
||||||
self.show_all()
|
self.show_all()
|
||||||
return False
|
return False
|
||||||
@ -770,14 +772,13 @@ class KlipperScreen(Gtk.Window):
|
|||||||
label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR)
|
label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR)
|
||||||
|
|
||||||
if self.confirm is not None:
|
if self.confirm is not None:
|
||||||
self.confirm.destroy()
|
self.gtk.remove_dialog(self.confirm)
|
||||||
self.confirm = self.gtk.Dialog(self, buttons, label, self._confirm_send_action_response, method, params)
|
self.confirm = self.gtk.Dialog(self, buttons, label, self._confirm_send_action_response, method, params)
|
||||||
|
|
||||||
def _confirm_send_action_response(self, widget, response_id, method, params):
|
def _confirm_send_action_response(self, dialog, response_id, method, params):
|
||||||
|
self.gtk.remove_dialog(dialog)
|
||||||
if response_id == Gtk.ResponseType.OK:
|
if response_id == Gtk.ResponseType.OK:
|
||||||
self._send_action(widget, method, params)
|
self._send_action(None, method, params)
|
||||||
|
|
||||||
widget.destroy()
|
|
||||||
|
|
||||||
def _send_action(self, widget, method, params):
|
def _send_action(self, widget, method, params):
|
||||||
logging.info(f"{method}: {params}")
|
logging.info(f"{method}: {params}")
|
||||||
@ -901,7 +902,7 @@ class KlipperScreen(Gtk.Window):
|
|||||||
self.show_panel('job_status', "job_status", _("Printing"), 2)
|
self.show_panel('job_status', "job_status", _("Printing"), 2)
|
||||||
self.base_panel_show_all()
|
self.base_panel_show_all()
|
||||||
for dialog in self.dialogs:
|
for dialog in self.dialogs:
|
||||||
dialog.destroy()
|
self.gtk.remove_dialog(dialog)
|
||||||
|
|
||||||
def show_keyboard(self, widget=None, event=None, entry=None):
|
def show_keyboard(self, widget=None, event=None, entry=None):
|
||||||
if self.keyboard is not None:
|
if self.keyboard is not None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user