diff --git a/.bzrignore b/.bzrignore index e1b9094..4cb9c80 100644 --- a/.bzrignore +++ b/.bzrignore @@ -2,3 +2,4 @@ experimental.wpr install.log uninstall.log .bzrignore +vcsinfo.py diff --git a/wicd/misc.py b/wicd/misc.py index 0f22f49..bfd6a06 100644 --- a/wicd/misc.py +++ b/wicd/misc.py @@ -313,16 +313,20 @@ def get_gettext(): # http://www.learningpython.com/2006/12/03/translating-your-pythonpygtk-application/ local_path = wpath.translations langs = [] + osLanguage = os.environ.get('LANGUAGE', None) + if osLanguage: + langs += osLanguage.split(":") + osLanguage = None + osLanguage = os.environ.get('LC_MESSAGES', None) + if osLanguage: + langs += osLanguage.split(":") try: lc, encoding = locale.getdefaultlocale() except ValueError, e: print str(e) print "Default locale unavailable, falling back to en_US" if (lc): - langs = [lc] - osLanguage = os.environ.get('LANGUAGE', None) - if (osLanguage): - langs += osLanguage.split(":") + langs += [lc] langs += ["en_US"] lang = gettext.translation('wicd', local_path, languages=langs, fallback=True) @@ -405,17 +409,19 @@ def choose_sudo_prog(prog_num=0): return find_path(sudo_dict[prog_num]) desktop_env = detect_desktop_environment() env_path = os.environ['PATH'].split(":") + paths = [] if desktop_env == "kde": - paths = [] - for p in env_path: - paths.extend([p + '/kdesu', p + '/kdesudo', p + '/ktsuss']) + progs = ["kdesu", "kdesudo", "ktusss"] else: - paths = [] - for p in env_path: - paths.extend([p + '/gksudo', p + "/gksu", p + '/ktsuss']) + progs = ["gksudo", "gksu", "ktsuss"] + + for prog in progs: + paths.extend([os.path.join(p, prog) for p in env_path]) + for path in paths: if os.path.exists(path): + print "returning %s" % path return path return None diff --git a/wicd/wicd-daemon.py b/wicd/wicd-daemon.py index 44c6b2e..5ac55fa 100644 --- a/wicd/wicd-daemon.py +++ b/wicd/wicd-daemon.py @@ -921,6 +921,7 @@ class WirelessDaemon(dbus.service.Object): self.wifi = wifi self._debug_mode = debug self.forced_disconnect = False + self._scanning = False self.LastScan = [] self.config = ConfigManager(os.path.join(wpath.etc, "wireless-settings.conf"), @@ -949,6 +950,10 @@ class WirelessDaemon(dbus.service.Object): be done synchronously. """ + if self._scanning: + if self.debug_mode: + print "scan already in progress, skipping" + return False if self.debug_mode: print 'scanning start' self.SendStartScanSignal() @@ -956,6 +961,7 @@ class WirelessDaemon(dbus.service.Object): self._sync_scan() else: self._async_scan() + return True @misc.threaded def _async_scan(self): @@ -1251,12 +1257,12 @@ class WirelessDaemon(dbus.service.Object): @dbus.service.signal(dbus_interface='org.wicd.daemon.wireless', signature='') def SendStartScanSignal(self): """ Emits a signal announcing a scan has started. """ - pass + self._scanning = True @dbus.service.signal(dbus_interface='org.wicd.daemon.wireless', signature='') def SendEndScanSignal(self): """ Emits a signal announcing a scan has finished. """ - pass + self._scanning = False def _wireless_autoconnect(self, fresh=True): """ Attempts to autoconnect to a wireless network. """ @@ -1266,9 +1272,7 @@ class WirelessDaemon(dbus.service.Object): print 'Autoconnect failed because wireless interface returned None' return if fresh: - print 'start scan' self.Scan(sync=True) - print 'end scan' for x, network in enumerate(self.LastScan): if bool(network["has_profile"]): @@ -1674,10 +1678,8 @@ def main(argv): wicd_bus = dbus.service.BusName('org.wicd.daemon', bus=bus) daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect) if not no_poll: - (child_pid, x, x, x) = gobject.spawn_async( - [misc.find_path("python"), "-O", os.path.join(wpath.lib, "monitor.py")], - flags=gobject.SPAWN_CHILD_INHERITS_STDIN - ) + (child_pid, x, y, z) = gobject.spawn_async( + [misc.find_path("python"), "-O", os.path.join(wpath.lib, "monitor.py")]) signal.signal(signal.SIGTERM, sigterm_caught) # Enter the main loop