Fix Network Panel (#375)

* Network: Fix Keyboard still showing after connection

* Network: fix dialog setting wrong size

* Fix empty network panel
This commit is contained in:
Alfredo Monclus 2021-12-24 11:31:47 -03:00 committed by GitHub
parent e7bf13b6df
commit 22221c61ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -165,9 +165,10 @@ class NetworkPanel(ScreenPanel):
network.add(labels) network.add(labels)
buttons = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5) buttons = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5)
if network_id != -1: if network_id != -1 or netinfo['connected']:
buttons.pack_end(delete, False, False, 0) buttons.pack_end(delete, False, False, 0)
if netinfo['connected'] is False: connected_ssid = self._screen.wifi.get_connected_ssid()
if ssid != connected_ssid or not netinfo['connected']:
buttons.pack_end(connect, False, False, 0) buttons.pack_end(connect, False, False, 0)
network.add(buttons) network.add(buttons)
@ -175,21 +176,14 @@ class NetworkPanel(ScreenPanel):
self.networks[ssid] = frame self.networks[ssid] = frame
frame.add(network) frame.add(network)
reverse = False nets = sorted(list(self.networks), reverse=False)
if connected_ssid == ssid:
pos = 0
if netinfo['connected'] is True:
pos = 0 pos = 0
elif nets.index(ssid) is not None:
pos = nets.index(ssid) + 1
else: else:
connected_ssid = self._screen.wifi.get_connected_ssid() logging.info("Error: SSID not in nets")
nets = list(self.networks) return
if connected_ssid is not None:
if connected_ssid in nets:
nets.remove(connected_ssid)
nets = sorted(nets, reverse=reverse)
pos = nets.index(ssid)
if connected_ssid is not None:
pos += 1
self.labels['networks'][ssid] = { self.labels['networks'][ssid] = {
"connect": connect, "connect": connect,
@ -201,24 +195,25 @@ class NetworkPanel(ScreenPanel):
self.labels['networklist'].insert_row(pos) self.labels['networklist'].insert_row(pos)
self.labels['networklist'].attach(self.networks[ssid], 0, pos, 1, 1) self.labels['networklist'].attach(self.networks[ssid], 0, pos, 1, 1)
if show is True: if show:
self.labels['networklist'].show() self.labels['networklist'].show()
def add_new_network(self, widget, ssid, connect=False): def add_new_network(self, widget, ssid, connect=False):
self._screen.remove_keyboard()
networks = self._screen.wifi.get_networks() networks = self._screen.wifi.get_networks()
psk = self.labels['network_psk'].get_text() psk = self.labels['network_psk'].get_text()
result = self._screen.wifi.add_network(ssid, psk) result = self._screen.wifi.add_network(ssid, psk)
self.close_add_network() self.close_add_network()
if connect is True: if connect:
if result is True: if result:
self.connect_network(widget, ssid, False) self.connect_network(widget, ssid, False)
else: else:
self._screen.show_popup_message("Error adding network %s" % ssid) self._screen.show_popup_message("Error adding network %s" % ssid)
def back(self): def back(self):
if self.show_add is True: if self.show_add:
self.close_add_network() self.close_add_network()
return True return True
return False return False
@ -230,11 +225,11 @@ class NetworkPanel(ScreenPanel):
networks.remove(net) networks.remove(net)
for net in networks: for net in networks:
self.add_network(net) self.add_network(net, False)
self.labels['networklist'].show_all() self.labels['networklist'].show_all()
def close_add_network(self): def close_add_network(self):
if self.show_add is False: if not self.show_add:
return return
for child in self.content.get_children(): for child in self.content.get_children():
@ -268,8 +263,8 @@ class NetworkPanel(ScreenPanel):
isdef = True isdef = True
break break
if isdef is False: if not isdef:
if showadd is True: if showadd:
self.show_add_network(widget, ssid) self.show_add_network(widget, ssid)
return return
self.prev_network = self._screen.wifi.get_connected_ssid() self.prev_network = self._screen.wifi.get_connected_ssid()
@ -282,7 +277,6 @@ class NetworkPanel(ScreenPanel):
scroll.set_property("overlay-scrolling", False) scroll.set_property("overlay-scrolling", False)
scroll.set_hexpand(True) scroll.set_hexpand(True)
scroll.set_vexpand(True) scroll.set_vexpand(True)
scroll.set_size_request(800, 400)
self.labels['connecting_info'] = Gtk.Label(_("Starting WiFi Re-association")) self.labels['connecting_info'] = Gtk.Label(_("Starting WiFi Re-association"))
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)
@ -307,19 +301,13 @@ class NetworkPanel(ScreenPanel):
if ssid not in self.networks: if ssid not in self.networks:
return return
i = 0 for i, network in enumerate(self.labels['networklist']):
while self.labels['networklist'].get_child_at(0, i) is not None:
if self.networks[ssid] == self.labels['networklist'].get_child_at(0, i): if self.networks[ssid] == self.labels['networklist'].get_child_at(0, i):
self.labels['networklist'].remove_row(i) self.labels['networklist'].remove_row(i)
self.labels['networklist'].show() self.labels['networklist'].show()
del self.networks[ssid] del self.networks[ssid]
del self.labels['networks'][ssid] del self.labels['networks'][ssid]
return return
i = i+1
return
def remove_network_wid(self, widget, ssid):
self.remove_network(ssid)
def remove_wifi_network(self, widget, ssid): def remove_wifi_network(self, widget, ssid):
self._screen.wifi.delete_network(ssid) self._screen.wifi.delete_network(ssid)
@ -334,7 +322,7 @@ class NetworkPanel(ScreenPanel):
self.content.show_all() self.content.show_all()
def show_add_network(self, widget, ssid): def show_add_network(self, widget, ssid):
if self.show_add is True: if self.show_add:
return return
_ = self.lang.gettext _ = self.lang.gettext
@ -389,11 +377,10 @@ class NetworkPanel(ScreenPanel):
return return
netinfo = self._screen.wifi.get_network_info(ssid) netinfo = self._screen.wifi.get_network_info(ssid)
if netinfo is None: if netinfo is None:
logging.debug("Couldn't get netinfo for update")
return return
connected = "" connected = ""
if netinfo['connected'] is True: if netinfo['connected']:
stream = os.popen('hostname -f') stream = os.popen('hostname -f')
hostname = stream.read().strip() hostname = stream.read().strip()
ifadd = netifaces.ifaddresses(self.interface) ifadd = netifaces.ifaddresses(self.interface)