diff --git a/config/main_menu.conf b/config/main_menu.conf index 98f02ed7..38427a38 100644 --- a/config/main_menu.conf +++ b/config/main_menu.conf @@ -121,6 +121,7 @@ panel: advanced name: {{ gettext('Network') }} icon: network panel: network +enable: {{ network.wifi_available }} [menu __main more notifications] name: {{ gettext('Notifications') }} diff --git a/config/print_menu.conf b/config/print_menu.conf index dd7c05ad..020ba8a9 100644 --- a/config/print_menu.conf +++ b/config/print_menu.conf @@ -63,6 +63,7 @@ panel: limits name: {{ gettext('Network') }} icon: network panel: network +enable: {{ network.wifi_available }} [menu __print settings] name: {{ gettext('More') }} diff --git a/config/splash_menu.conf b/config/splash_menu.conf index 926aae03..e4cade66 100644 --- a/config/splash_menu.conf +++ b/config/splash_menu.conf @@ -15,6 +15,7 @@ enable: {{ moonraker.power_devices.count > 0 }} name: {{ gettext('Network') }} icon: network panel: network +enable: {{ network.wifi_available }} [menu __splashscreen updater] name: {{ gettext('Update') }} diff --git a/ks_includes/printer.py b/ks_includes/printer.py index 17d46048..66738183 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -236,6 +236,16 @@ class Printer: return None def get_printer_status_data(self): + wifi_available = False + try: + from ks_includes.sdbus_nm import SdbusNm + + sdbus_nm = SdbusNm(lambda x: None) + wifi_available = sdbus_nm.wifi if sdbus_nm else False + except Exception as e: + logging.debug(f"Failed to detect WiFi module: {e}") + wifi_available = False + return { "moonraker": { "power_devices": {"count": len(self.get_power_devices())}, @@ -252,7 +262,10 @@ class Printer: "gcode_macros": {"count": len(self.get_gcode_macros()), "list": self.get_gcode_macros()}, "leds": {"count": self.ledcount}, "config_sections": list(self.config.keys()), - } + }, + "network": { + "wifi_available": wifi_available, + }, } def get_leds(self): diff --git a/panels/network.py b/panels/network.py index c544425c..3e54a824 100644 --- a/panels/network.py +++ b/panels/network.py @@ -111,7 +111,6 @@ class Panel(ScreenPanel): self._screen.show_popup_message(_("No wireless interface has been found"), level=2) self.labels["networkinfo"] = Gtk.Label() scroll.add(self.labels["networkinfo"]) - self.update_single_network_info() self.labels["main_box"].pack_start(scroll, True, True, 0) self.content.add(self.labels["main_box"])