From ad86a45d1fe0593c640bf8a242902eea13a9a52a Mon Sep 17 00:00:00 2001 From: Jordan Fleck Date: Fri, 1 May 2026 15:06:40 -0400 Subject: [PATCH] added a error message when the user tries to edit a webapp that calls for a browser no longer on their system. previous behavior was to freeze up briefly and then act like the user never touched the button --- usr/lib/webapp-manager/webapp-manager.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/usr/lib/webapp-manager/webapp-manager.py b/usr/lib/webapp-manager/webapp-manager.py index d6aeb3e..bc5abdd 100755 --- a/usr/lib/webapp-manager/webapp-manager.py +++ b/usr/lib/webapp-manager/webapp-manager.py @@ -363,7 +363,12 @@ def on_edit_button(self, widget): self.privatewindow_switch.set_active(self.selected_webapp.privatewindow) web_browsers = map(lambda i: i[0], self.browser_combo.get_model()) - selected_browser_index = [idx for idx, x in enumerate(web_browsers) if x.name == self.selected_webapp.web_browser][0] + selected_browser_index = next((idx for idx, x in enumerate(web_browsers) if x.name == self.selected_webapp.web_browser), None) + if(selected_browser_index == None): + # webapp browser not found + self.show_browser_not_found_dialog() + return # Exit on_edit_button + self.browser_combo.set_active(selected_browser_index) self.on_browser_changed(self.selected_webapp) @@ -399,6 +404,22 @@ def on_favicon_button(self, widget): self.favicon_button.set_sensitive(False) self.download_icons(url) + # Shows an error message if a webapp's browser is no longer found on the system + def show_browser_not_found_dialog(self): + dialog = Gtk.MessageDialog ( + transient_for=self.window, + modal=True, + message_type=Gtk.MessageType.ERROR, + buttons=Gtk.ButtonsType.OK, + text="Browser Not Found" + ) + dialog.format_secondary_text ( + "The browser associated with this webapp no longer exists on your system. Please reinstall to edit or use this app." + ) + dialog.run() + dialog.destroy() + + # Reads what's in the URL entry and returns a validated version def get_url(self): url = self.url_entry.get_text().strip()