diff --git a/daemon.py b/daemon.py index 2da17e2..a8ce2df2 100644 --- a/daemon.py +++ b/daemon.py @@ -434,7 +434,6 @@ class ConnectionWizard(dbus.service.Object): Scans for wireless networks and also for hidden networks defined in wireless-settings.conf - ''' hidden_network_list = self.GetHiddenNetworkList() master_scan = self.Scan() @@ -1471,6 +1470,8 @@ class ConnectionStatus(): if not wireless_found: # No connection at all if not conn.CheckIfConnecting(): self.auto_reconnect() + else: + self.status_changed = True # Send a D-Bus signal announcing status has changed if necessary. if self.status_changed: conn.StatusChanged() @@ -1489,8 +1490,7 @@ class ConnectionStatus(): conn.SetCurrentInterface('') self.status_changed = True - if conn.GetAutoReconnect() and \ - not conn.CheckIfConnecting() and \ + if conn.GetAutoReconnect() and not conn.CheckIfConnecting() and \ not conn.GetForcedDisconnect(): print 'Starting automatic reconnect process' # First try connecting through ethernet diff --git a/gui.py b/gui.py index a87cda2..78db261 100644 --- a/gui.py +++ b/gui.py @@ -318,10 +318,10 @@ class PrettyNetworkEntry(gtk.HBox): '''adds an image and a connect button to a NetworkEntry''' def __init__(self,expander): gtk.HBox.__init__(self) - #add the stuff to the hbox (self) + # Add the stuff to the hbox (self) self.expander = expander self.expander.show() - self.expander.higherLevel = self #do this so that the expander can access the stuff inside me + self.expander.higherLevel = self # Do this so that the expander can access the stuff inside me self.tempVBox = gtk.VBox(False,1) self.tempVBox.show() self.connectButton = LinkButton() @@ -362,7 +362,7 @@ class PrettyWirelessNetworkEntry(PrettyNetworkEntry): self.setChannel(wireless.GetWirelessProperty(networkID,'channel')) self.setEncryption(wireless.GetWirelessProperty(networkID,'encryption'), wireless.GetWirelessProperty(networkID,'encryption_method')) - #show everything + # Show everything self.show_all() def setSignalStrength(self,strength, dbm_strength): @@ -460,7 +460,7 @@ class NetworkEntry(gtk.Expander): self.vboxTop.pack_end(self.expanderAdvanced,fill=False,expand=False) self.expanderAdvanced.add(self.vboxAdvanced) self.expanderScripts.add(self.vboxScripts) - #connect the events to the actions + # Connect the events to the actions self.checkboxStaticIP.connect("toggled",self.toggleIPCheckbox) self.checkboxStaticDNS.connect("toggled",self.toggleDNSCheckbox) self.checkboxGlobalDNS.connect("toggled",self.toggleGlobalDNSCheckbox) @@ -481,8 +481,8 @@ class NetworkEntry(gtk.Expander): #fill it in with a .1 at the end gateway.set_text('.'.join(ip_parts[0:3]) + '.1') - if stringToNone(netmask.get_text()) == None: #make sure the netmask is blank - netmask.set_text('255.255.255.0') #fill in the most common one + if stringToNone(netmask.get_text()) == None: # Make sure the netmask is blank + netmask.set_text('255.255.255.0') # Fill in the most common one def resetStaticCheckboxes(self): #enable the right stuff @@ -885,12 +885,13 @@ class WiredProfileChooser: print 'reading profile ', wiredNetEntry.comboProfileNames.get_active_text() config.ReadWiredNetworkProfile(wiredNetEntry.comboProfileNames.get_active_text()) wired.ConnectWired() - dialog.destroy() else: if stoppopcheckbox.get_active() == True: # Stops the pop-up from reappearing if cancelled wired.use_default_profile = 1 - dialog.destroy() + dialog.destroy() + + class appGui: def __init__(self): gladefile = "data/wicd.glade" @@ -1181,9 +1182,11 @@ class appGui: if self.statusID: self.status_bar.remove(1,self.statusID) if wirelessConnecting: - self.statusID = self.status_bar.push(1,language[str(wireless.CheckWirelessConnectingMessage())]) + self.statusID = self.status_bar.push(1,wireless.GetCurrentNetwork() + ': ' + + language[str(wireless.CheckWirelessConnectingMessage())]) if wiredConnecting: - self.statusID = self.status_bar.push(1,language[str(wired.CheckWiredConnectingMessage())]) + self.statusID = self.status_bar.push(1,language['wired_network'] + ': ' + + language[str(wired.CheckWiredConnectingMessage())]) else: self.network_list.set_sensitive(True) self.status_area.hide_all() diff --git a/wicd.py b/wicd.py index f51b639..542fff2 100755 --- a/wicd.py +++ b/wicd.py @@ -10,9 +10,10 @@ class TrayIcon() -- Parent class of TrayIconGUI and IconConnectionInfo. class TrayConnectionInfo() -- Child class of TrayIcon which provides and updates connection status. class TrayIconGUI() -- Child class of TrayIcon which implements the tray. - icon itself. Parent class of EdgyTrayIconGUI and DapperTrayIconGUI. - class EdgyTrayIconGUI() -- Implements the tray icon using a gtk.StatusIcon. - class DapperTrayIconGUI() -- Implements the tray icon using egg.trayicon. + icon itself. Parent class of StatusTrayIconGUI and EggTrayIconGUI. + class StatusTrayIconGUI() -- Implements the tray icon using a + gtk.StatusIcon. + class EggTrayIconGUI() -- Implements the tray icon using egg.trayicon. def usage() -- Prints usage information. def main() -- Runs the wicd frontend main loop. @@ -35,15 +36,11 @@ def main() -- Runs the wicd frontend main loop. # along with this program. If not, see . # -import os import sys import gtk import gobject import dbus import dbus.service -import locale -import gettext -import signal import getopt # Import egg.trayicon if we're using an older gtk version @@ -67,7 +64,8 @@ if sys.platform == 'linux2': import dl libc = dl.open('/lib/libc.so.6') libc.call('prctl', 15, 'wicd\0', 0, 0, 0) # 15 is PR_SET_NAME - except: + except Exception: + print 'Failed to rename wicd process' pass if __name__ == '__main__': @@ -81,7 +79,7 @@ try: print 'Attempting to connect tray to daemon...' proxy_obj = bus.get_object('org.wicd.daemon', '/org/wicd/daemon') print 'Success.' -except: +except Exception: print 'Daemon not running...' misc.PromptToStartDaemon() sys.exit(1) @@ -96,14 +94,20 @@ language = {} language['connected_to_wireless'] = _('Connected to $A at $B (IP: $C)') language['connected_to_wired'] = _('Connected to wired network (IP: $A)') language['not_connected'] = _('Not connected') -language['connecting'] = _('Connecting...') +language['connecting'] = _('Connecting') +language['wired'] = _('wired network') class TrayIcon(): + """Base Tray Icon class + + Base Class for implementing a tray icon to display network status. + + """ def __init__(self, use_tray): if USE_EGG: - self.tr = self.DapperTrayIconGUI(use_tray) + self.tr = self.EggTrayIconGUI(use_tray) else: - self.tr = self.EdgyTrayIconGUI(use_tray) + self.tr = self.StatusTrayIconGUI(use_tray) self.icon_info = self.TrayConnectionInfo(self.tr) @@ -122,14 +126,19 @@ class TrayIcon(): def wired_profile_chooser(self): """Launch the wired profile chooser.""" daemon.SetNeedWiredProfileChooser(False) - chooser = gui.WiredProfileChooser() + gui.WiredProfileChooser() def update_tray_icon(self): """Updates the tray icon and current connection status""" # If we're currently connecting, we can shortcut all other checks if daemon.CheckIfConnecting(): - self.tr.set_tooltip(language['connecting']) + if wireless.CheckIfWirelessConnecting(): + cur_network = wireless.GetCurrentNetwork() + else: + cur_network = language['wired_network'] + self.tr.set_tooltip(language['connecting'] + " to " + + cur_network + "...") self.tr.set_from_file(wpath.images + "no-signal.png") return True @@ -141,7 +150,8 @@ class TrayIcon(): if cur_iface == wire_iface: wired_ip = wired.GetWiredIP() self.tr.set_from_file(wpath.images + "wired.png") - self.tr.set_tooltip(language['connected_to_wired'].replace('$A', + self.tr.set_tooltip(language['connected_to_wired']. + replace('$A', wired_ip)) # Check for a wireless connection @@ -193,7 +203,11 @@ class TrayIcon(): class TrayIconGUI(): - def __init__(self): + """Base Tray Icon class + + Implements methods and variables used by both egg/StatusIcon tray icons. + """ + def __init__(self, use_tray): menu = """ @@ -220,8 +234,11 @@ class TrayIcon(): self.manager = gtk.UIManager() self.manager.insert_action_group(actg, 0) self.manager.add_ui_from_string(menu) - self.menu = self.manager.get_widget('/Menubar/Menu/About').props.parent + self.menu = (self.manager.get_widget('/Menubar/Menu/About'). + props.parent) self.gui_win = None + self.current_icon_path = None + self.use_tray = use_tray def on_activate(self, data=None): """Opens the wicd GUI""" @@ -239,8 +256,8 @@ class TrayIcon(): """Opens the About Dialog""" dialog = gtk.AboutDialog() dialog.set_name('wicd tray icon') - dialog.set_version('0.4') - dialog.set_comments('an icon that shows your network connectivity') + dialog.set_version('1.0') + dialog.set_comments('An icon that shows your network connectivity') dialog.set_website('http://wicd.sourceforge.net') dialog.run() dialog.destroy() @@ -263,10 +280,15 @@ class TrayIcon(): return True - class DapperTrayIconGUI(TrayIconGUI): + class EggTrayIconGUI(TrayIconGUI): + """Tray Icon for gtk < 2.10 + + Uses the deprecated egg.trayicon module to implement the tray icon. + + """ def __init__(self, use_tray=True): """Initializes the tray icon""" - TrayIcon.TrayIconGUI.__init__(self) + TrayIcon.TrayIconGUI.__init__(self, use_tray) self.use_tray = use_tray if not use_tray: self.toggle_wicd_gui() @@ -287,16 +309,16 @@ class TrayIcon(): def tray_clicked(self, widget, event): """Handles tray mouse click events""" if event.button == 1: - self.open_wicd_gui() + self.toggle_wicd_gui() if event.button == 3: self.menu.popup(None, None, None, event.button, event.time) - def set_from_file(self, str): + def set_from_file(self, val): """Calls set_from_file on the gtk.Image for the tray icon""" if not self.use_tray: return - self.pic.set_from_file(str) + self.pic.set_from_file(val) - def set_tooltip(self, str): + def set_tooltip(self, val): """ Sets the tooltip for the gtk.ToolTips associated with this @@ -304,13 +326,17 @@ class TrayIcon(): """ if not self.use_tray: return - self.tooltip.set_tip(self.eb, str) + self.tooltip.set_tip(self.eb, val) - class EdgyTrayIconGUI(gtk.StatusIcon, TrayIconGUI): - """Class for creating the wicd tray icon""" + class StatusTrayIconGUI(gtk.StatusIcon, TrayIconGUI): + """Class for creating the wicd tray icon on gtk > 2.10 + + Uses gtk.StatusIcon to implement a tray icon. + + """ def __init__(self, use_tray=True): - TrayIcon.TrayIconGUI.__init__(self) + TrayIcon.TrayIconGUI.__init__(self, use_tray) self.use_tray = use_tray if not use_tray: self.toggle_wicd_gui() @@ -339,6 +365,7 @@ class TrayIcon(): def usage(): + """Print usage information.""" print """ wicd 1.40 wireless (and wired) connection daemon front-end. @@ -365,11 +392,11 @@ def main(argv): usage() sys.exit(2) - for o, a in opts: - if o in ('-h', '--help'): + for opt, a in opts: + if opt in ('-h', '--help'): usage() sys.exit() - if o in ('-n', '--no-tray'): + if opt in ('-n', '--no-tray'): use_tray = False # Redirect stderr and stdout for logging purposes