Merge lp://staging/~adamblackburn/wicd/1.6-wired-while-scanning into lp://staging/wicd/1.6

Proposed by Adam Blackburn
Status: Merged
Merged at revision: not available
Proposed branch: lp://staging/~adamblackburn/wicd/1.6-wired-while-scanning
Merge into: lp://staging/wicd/1.6
Diff against target: None lines
To merge this branch: bzr merge lp://staging/~adamblackburn/wicd/1.6-wired-while-scanning
Reviewer Review Type Date Requested Status
Dan O'Reilly Approve
Review via email: mp+10131@code.staging.launchpad.net
To post a comment you must log in.
Revision history for this message
Adam Blackburn (adamblackburn) wrote :

This branch allows connecting with the wired interface while scanning for networks.

Revision history for this message
Dan O'Reilly (oreilldf) wrote :

This line is unneeded in refresh_clicked():
printLine = True # In this case we print a separator.

I think it would be clearer to use wireless_network_list instead of just network_list.

I think there might be some (rare) cases where the wireless network entries will get updated without the wired entry getting updated. Like if you kicked off a scan from wicd-curses with wicd-client open. It's not really a big deal though.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'wicd/gui.py'
2--- wicd/gui.py 2009-07-19 02:26:18 +0000
3+++ wicd/gui.py 2009-08-14 01:59:05 +0000
4@@ -30,6 +30,7 @@
5 import pango
6 import gtk
7 import gtk.glade
8+from itertools import chain
9 from dbus import DBusException
10
11 from wicd import misc
12@@ -181,7 +182,14 @@
13 probar = self.wTree.get_widget("progressbar")
14 probar.set_text(language['connecting'])
15
16- self.network_list = self.wTree.get_widget("network_list_vbox")
17+ self.all_network_list = self.wTree.get_widget("network_list_vbox")
18+ self.all_network_list.show_all()
19+ self.wired_network_box = gtk.VBox(False, 0)
20+ self.wired_network_box.show_all()
21+ self.network_list = gtk.VBox(False, 0)
22+ self.all_network_list.pack_start(self.wired_network_box, False, False)
23+ self.all_network_list.pack_start(self.network_list, True, True)
24+ self.network_list.show_all()
25 self.status_area = self.wTree.get_widget("connecting_hbox")
26 self.status_bar = self.wTree.get_widget("statusbar")
27 menu = self.wTree.get_widget("menu1")
28@@ -260,6 +268,7 @@
29 ip_entry.entry.set_text('169.254.12.10') # Just a random IP
30
31 vbox_ah = gtk.VBox(False, 0)
32+ self.wired_network_box = gtk.VBox(False, 0)
33 vbox_ah.pack_start(self.chkbox_use_encryption, False, False)
34 vbox_ah.pack_start(self.key_entry, False, False)
35 vbox_ah.show()
36@@ -288,9 +297,9 @@
37 def disconnect_all(self, widget=None):
38 """ Disconnects from any active network. """
39 def handler(*args):
40- gobject.idle_add(self.network_list.set_sensitive, True)
41+ gobject.idle_add(self.all_network_list.set_sensitive, True)
42
43- self.network_list.set_sensitive(False)
44+ self.all_network_list.set_sensitive(False)
45 daemon.Disconnect(reply_handler=handler, error_handler=handler)
46
47 def about_dialog(self, widget, event=None):
48@@ -418,7 +427,7 @@
49 self.connecting = False
50 if self.pulse_active:
51 self.pulse_active = False
52- gobject.idle_add(self.network_list.set_sensitive, True)
53+ gobject.idle_add(self.all_network_list.set_sensitive, True)
54 gobject.idle_add(self.status_area.hide_all)
55 if self.statusID:
56 gobject.idle_add(self.status_bar.remove, 1, self.statusID)
57@@ -433,7 +442,7 @@
58 if not self.pulse_active:
59 self.pulse_active = True
60 misc.timeout_add(100, self.pulse_progress_bar, milli=True)
61- gobject.idle_add(self.network_list.set_sensitive, False)
62+ gobject.idle_add(self.all_network_list.set_sensitive, False)
63 gobject.idle_add(self.status_area.show_all)
64 if self.statusID:
65 gobject.idle_add(self.status_bar.remove, 1, self.statusID)
66@@ -458,7 +467,7 @@
67
68 if self.prev_state != state or force_check:
69 apbssid = wireless.GetApBssid()
70- for entry in self.network_list:
71+ for entry in chain(self.network_list, self.wired_network_box):
72 if hasattr(entry, "update_connect_button"):
73 entry.update_connect_button(state, apbssid)
74 self.prev_state = state
75@@ -480,11 +489,43 @@
76 """ Called when a wireless scan starts. """
77 if not DBUS_AVAIL: return
78 self.network_list.set_sensitive(False)
79+
80+ def _remove_items_from_vbox(self, vbox):
81+ for z in vbox:
82+ vbox.remove(z)
83+ z.destroy()
84+ del z
85+
86
87 def refresh_clicked(self, widget=None):
88 """ Kick off an asynchronous wireless scan. """
89 if not DBUS_AVAIL or self.connecting: return
90 self.refreshing = True
91+
92+ # Remove stuff already in there.
93+ self._remove_items_from_vbox(self.wired_network_box)
94+ self._remove_items_from_vbox(self.network_list)
95+ label = gtk.Label("%s..." % language['scanning'])
96+ self.network_list.pack_start(label)
97+ self.network_list.show_all()
98+ if wired.CheckPluggedIn() or daemon.GetAlwaysShowWiredInterface():
99+ printLine = True # In this case we print a separator.
100+ wirednet = WiredNetworkEntry()
101+ self.wired_network_box.pack_start(wirednet, False, False)
102+ wirednet.connect_button.connect("clicked", self.connect,
103+ "wired", 0, wirednet)
104+ wirednet.disconnect_button.connect("clicked", self.disconnect,
105+ "wired", 0, wirednet)
106+ wirednet.advanced_button.connect("clicked",
107+ self.edit_advanced, "wired", 0,
108+ wirednet)
109+ state, x = daemon.GetConnectionStatus()
110+ wirednet.update_connect_button(state)
111+
112+ self._wired_showing = True
113+ else:
114+ self._wired_showing = False
115+
116 wireless.Scan(False)
117
118 def refresh_networks(self, widget=None, fresh=True, hidden=None):
119@@ -504,26 +545,11 @@
120 return
121 print "refreshing..."
122 self.network_list.set_sensitive(False)
123+ self._remove_items_from_vbox(self.network_list)
124 self.wait_for_events()
125 printLine = False # We don't print a separator by default.
126- # Remove stuff already in there.
127- for z in self.network_list:
128- self.network_list.remove(z)
129- z.destroy()
130- del z
131-
132- if wired.CheckPluggedIn() or daemon.GetAlwaysShowWiredInterface():
133- printLine = True # In this case we print a separator.
134- wirednet = WiredNetworkEntry()
135- self.network_list.pack_start(wirednet, False, False)
136- wirednet.connect_button.connect("clicked", self.connect,
137- "wired", 0, wirednet)
138- wirednet.disconnect_button.connect("clicked", self.disconnect,
139- "wired", 0, wirednet)
140- wirednet.advanced_button.connect("clicked",
141- self.edit_advanced, "wired", 0,
142- wirednet)
143-
144+ if self._wired_showing:
145+ printLine = True
146 num_networks = wireless.GetNumberOfNetworks()
147 instruct_label = self.wTree.get_widget("label_instructions")
148 if num_networks > 0:
149@@ -673,7 +699,7 @@
150 def setup_interface_for_connection():
151 cancel_button = self.wTree.get_widget("cancel_button")
152 cancel_button.set_sensitive(True)
153- self.network_list.set_sensitive(False)
154+ self.all_network_list.set_sensitive(False)
155 if self.statusID:
156 gobject.idle_add(self.status_bar.remove, 1, self.statusID)
157 gobject.idle_add(self.set_status, language["disconnecting_active"])
158@@ -708,12 +734,12 @@
159
160 """
161 def handler(*args):
162- gobject.idle_add(self.network_list.set_sensitive, True)
163+ gobject.idle_add(self.all_network_list.set_sensitive, True)
164
165 widget.hide()
166 networkentry.connect_button.show()
167 daemon.SetForcedDisconnect(True)
168- self.network_list.set_sensitive(False)
169+ self.network_list.all_set_sensitive(False)
170 if nettype == "wired":
171 wired.DisconnectWired(reply_handler=handler, error_handler=handler)
172 else:

Subscribers

People subscribed via source and target branches

to status/vote changes: