修复网络页面IP更新不及时的问题

This commit is contained in:
张开科 2025-02-28 16:20:52 +08:00
parent 842a616c25
commit 9c99cd9125

View File

@ -77,9 +77,7 @@ class Panel(ScreenPanel):
self.labels['interface'] = Gtk.Label(hexpand=True)
self.labels['ip'] = Gtk.Label(hexpand=True)
if self.interface is not None:
self.labels['interface'].set_text(_("Interface") + f': {self.interface}')
self.labels['ip'].set_text(f"IP: {self.sdbus_nm.get_ip_address()}")
self.network_interface_refresh()
self.reload_button = self._gtk.Button("refresh", None, "custom-icon-button", self.bts)
self.reload_button.set_no_show_all(True)
@ -120,6 +118,7 @@ class Panel(ScreenPanel):
self.network_list.connect("row-activated", self.handle_wifi_selection)
def popup_callback(self, msg, level=3):
self.network_interface_refresh()
if not self.refresh_status(msg):
for item in self.network_rows:
if self.network_rows[item]["label_state"] is not None:
@ -127,6 +126,12 @@ class Panel(ScreenPanel):
self.network_rows[item]["label_state"].hide()
self._screen.show_popup_message(msg, level)
def network_interface_refresh(self):
if self.interface is not None:
self.interface = self.sdbus_nm.get_primary_interface()
self.labels['interface'].set_text(_("Interface") + f': {self.interface}')
self.labels['ip'].set_text(f"IP: {self.sdbus_nm.get_ip_address()}")
def handle_wifi_selection(self, list_box, row):
index = row.get_index()
logging.info(f"clicked SSID is {self.networks[index]['SSID']}")
@ -407,6 +412,7 @@ class Panel(ScreenPanel):
if self.delay_reload_timer_id:
GLib.source_remove(self.delay_reload_timer_id)
self.delay_reload_timer_id = None
self.network_interface_refresh()
return self.sdbus_nm.nm.wireless_enabled
@ -438,7 +444,7 @@ class Panel(ScreenPanel):
return
if self.sdbus_nm.wifi:
if self.sdbus_nm.is_wifi_enabled():
self.delay_reload_networks(1000)
self.delay_reload_networks(2000)
self.start_refresh_timer()
def deactivate(self):
@ -464,3 +470,4 @@ class Panel(ScreenPanel):
self.reload_button.hide()
self.network_list.set_no_show_all(True)
self.network_list.hide()
self.network_interface_refresh()