Ejemplo n.º 1
0
    def connect(self, widget, nettype, networkid, networkentry):
        """ Initiates the connection process in the daemon. """
        def handler(*args):
            self._connect_thread_started = True

        def setup_interface_for_connection():
            cancel_button = self.wTree.get_object("cancel_button")
            cancel_button.set_sensitive(True)
            self.all_network_list.set_sensitive(False)
            if self.statusID:
                gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
            gobject.idle_add(self.set_status, language["disconnecting_active"])
            gobject.idle_add(self.status_area.show_all)
            self.wait_for_events()
            self._connect_thread_started = False

        if nettype == "wireless":
            if not self.check_encryption_valid(networkid,
                                               networkentry.advanced_dialog):
                self.edit_advanced(None, nettype, networkid, networkentry)
                return False
            setup_interface_for_connection()
            wireless.ConnectWireless(networkid, reply_handler=handler,
                                     error_handler=handler)
        elif nettype == "wired":
            setup_interface_for_connection()
            wired.ConnectWired(reply_handler=handler, error_handler=handler)
        
        gobject.source_remove(self.update_cb)
        misc.timeout_add(100, self._wait_for_connect_thread_start, milli=True)
Ejemplo n.º 2
0
Archivo: gui.py Proyecto: wmak/wicd
 def set_connecting_state(self, info):
     """ Set connecting state. """
     if not self.connecting:
         if self.update_cb:
             gobject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(500,
                                           self.update_statusbar,
                                           milli=True)
         self.connecting = True
     if not self.pulse_active:
         self.pulse_active = True
         misc.timeout_add(100, self.pulse_progress_bar, milli=True)
         gobject.idle_add(self.all_network_list.set_sensitive, False)
         gobject.idle_add(self.status_area.show_all)
     if self.statusID:
         gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
     if info[0] == "wireless":
         stat = wireless.CheckWirelessConnectingMessage()
         gobject.idle_add(self.set_status, "%s: %s" % (info[1], stat))
     elif info[0] == "wired":
         gobject.idle_add(
             self.set_status,
             _('Wired Network') + ': ' +
             wired.CheckWiredConnectingMessage())
     return True
Ejemplo n.º 3
0
 def set_connecting_state(self, info):
     if not self.connecting:
         if self.update_cb:
             gobject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(500,
                                           self.update_statusbar,
                                           milli=True)
         self.connecting = True
     if not self.pulse_active:
         self.pulse_active = True
         misc.timeout_add(100, self.pulse_progress_bar, milli=True)
         gobject.idle_add(self.all_network_list.set_sensitive, False)
         gobject.idle_add(self.status_area.show_all)
     if self.statusID:
         gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
     if info[0] == "wireless":
         gobject.idle_add(
             self.set_status,
             str(info[1]) + ': ' +
             language[str(wireless.CheckWirelessConnectingMessage())])
     elif info[0] == "wired":
         gobject.idle_add(
             self.set_status, language['wired_network'] + ': ' +
             language[str(wired.CheckWiredConnectingMessage())])
     return True
Ejemplo n.º 4
0
Archivo: gui.py Proyecto: wmak/wicd
    def connect(self, widget, nettype, networkid, networkentry):
        """ Initiates the connection process in the daemon. """
        def handler(*args):
            self._connect_thread_started = True

        def setup_interface_for_connection():
            """ Initialize interface for connection. """
            cancel_button = self.wTree.get_object("cancel_button")
            cancel_button.set_sensitive(True)
            self.all_network_list.set_sensitive(False)
            if self.statusID:
                gobject.idle_add(self.status_bar.remove_message, 1,
                                 self.statusID)
            gobject.idle_add(self.set_status,
                             _('Disconnecting active connections...'))
            gobject.idle_add(self.status_area.show_all)
            self.wait_for_events()
            self._connect_thread_started = False

        if nettype == "wireless":
            if not self.check_encryption_valid(networkid,
                                               networkentry.advanced_dialog):
                self.edit_advanced(None, nettype, networkid, networkentry)
                return False
            setup_interface_for_connection()
            wireless.ConnectWireless(networkid,
                                     reply_handler=handler,
                                     error_handler=handler)
        elif nettype == "wired":
            setup_interface_for_connection()
            wired.ConnectWired(reply_handler=handler, error_handler=handler)

        gobject.source_remove(self.update_cb)
        misc.timeout_add(100, self._wait_for_connect_thread_start, milli=True)
Ejemplo n.º 5
0
 def _wait_for_connect_thread_start(self):
     self.wTree.get_object("progressbar").pulse()
     if not self._connect_thread_started:
         return True
     else:
         misc.timeout_add(2, self.update_statusbar)
         self.update_statusbar()
         return False
Ejemplo n.º 6
0
Archivo: gui.py Proyecto: cdanyang/wicd
 def _wait_for_connect_thread_start(self):
     self.wTree.get_object("progressbar").pulse()
     if not self._connect_thread_started:
         return True
     else:
         misc.timeout_add(2, self.update_statusbar)
         self.update_statusbar()
         return False
Ejemplo n.º 7
0
 def add_poll_callback(self):
     """ Registers a polling call at a predetermined interval.
     
     The polling interval is determined by the backend in use.
     
     """
     self.update_callback = misc.timeout_add(self._to_time, self.update_connection_status)
Ejemplo n.º 8
0
    def add_poll_callback(self):
        """Registers a polling call at a predetermined interval.

        The polling interval is determined by the backend in use.

        """
        self.update_callback = misc.timeout_add(self._to_time,
                                                self.update_connection_status)
Ejemplo n.º 9
0
def handle_no_dbus():
    """ Called when dbus announces its shutting down. """
    global DBUS_AVAIL, lost_dbus_id
    DBUS_AVAIL = False
    gui.handle_no_dbus(from_tray=True)
    print "Wicd daemon is shutting down!"
    lost_dbus_id = misc.timeout_add(5, lambda:error(None, _('The wicd daemon has shut down. The UI will not function properly until it is restarted.'),
                                                    block=False))
    return False
Ejemplo n.º 10
0
def handle_no_dbus():
    """ Called when dbus announces its shutting down. """
    global DBUS_AVAIL, lost_dbus_id
    DBUS_AVAIL = False
    gui.handle_no_dbus(from_tray=True)
    print "Wicd daemon is shutting down!"
    lost_dbus_id = misc.timeout_add(5, lambda:error(None, language['lost_dbus'], 
                                                    block=False))
    return False
Ejemplo n.º 11
0
def handle_no_dbus():
    """ Called when dbus announces its shutting down. """
    global DBUS_AVAIL, lost_dbus_id
    DBUS_AVAIL = False
    gui.handle_no_dbus(from_tray=True)
    print "Wicd daemon is shutting down!"
    lost_dbus_id = misc.timeout_add(
        5, lambda: error(None, language['lost_dbus'], block=False))
    return False
Ejemplo n.º 12
0
Archivo: gui.py Proyecto: cdanyang/wicd
 def _set_not_connecting_state(self):
     if self.connecting:
         if self.update_cb:
             gobject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(2, self.update_statusbar)
         self.connecting = False
     if self.pulse_active:
         self.pulse_active = False
         gobject.idle_add(self.all_network_list.set_sensitive, True)
         gobject.idle_add(self.status_area.hide_all)
     if self.statusID:
         gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
Ejemplo n.º 13
0
Archivo: gui.py Proyecto: mcagl/wicd
 def set_connecting_state(self, info):
     if not self.connecting:
         if self.update_cb:
             gobject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(500, self.update_statusbar, 
                                           milli=True)
         self.connecting = True
     if not self.pulse_active:
         self.pulse_active = True
         misc.timeout_add(100, self.pulse_progress_bar, milli=True)
         gobject.idle_add(self.all_network_list.set_sensitive, False)
         gobject.idle_add(self.status_area.show_all)
     if self.statusID:
         gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
     if info[0] == "wireless":
         stat = wireless.CheckWirelessConnectingMessage()
         gobject.idle_add(self.set_status, "%s: %s" % (info[1], stat))
     elif info[0] == "wired":
         gobject.idle_add(self.set_status, _('Wired Network') + ': ' \
             + wired.CheckWiredConnectingMessage())
     return True
Ejemplo n.º 14
0
 def _set_not_connecting_state(self):
     if self.connecting:
         if self.update_cb:
             gobject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(2, self.update_statusbar)
         self.connecting = False
     if self.pulse_active:
         self.pulse_active = False
         gobject.idle_add(self.all_network_list.set_sensitive, True)
         gobject.idle_add(self.status_area.hide_all)
     if self.statusID:
         gobject.idle_add(self.status_bar.remove_message, 1, self.statusID)
Ejemplo n.º 15
0
def handle_no_dbus():
    """ Called when dbus announces its shutting down. """
    global DBUS_AVAIL, lost_dbus_id
    DBUS_AVAIL = False
    gui.handle_no_dbus(from_tray=True)
    print("Wicd daemon is shutting down!")
    lost_dbus_id = misc.timeout_add(
        5, lambda: error(
            None,
            _('The wicd daemon has shut down. The UI will not function '
              'properly until it is restarted.'),
            block=False))
    return False
Ejemplo n.º 16
0
 def _set_not_connecting_state(self):
     """ Set not-connecting state. """
     if self.connecting:
         if self.update_cb:
             GObject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(2, self.update_statusbar)
         self.connecting = False
     if self.pulse_active:
         self.pulse_active = False
         GObject.idle_add(self.all_network_list.set_sensitive, True)
         GObject.idle_add(self.status_area.hide)
     if self.statusID:
         GObject.idle_add(self.status_bar.remove, 1, self.statusID)
Ejemplo n.º 17
0
 def _set_not_connecting_state(self):
     """ Set not-connecting state. """
     if self.connecting:
         if self.update_cb:
             GObject.source_remove(self.update_cb)
         self.update_cb = misc.timeout_add(2, self.update_statusbar)
         self.connecting = False
     if self.pulse_active:
         self.pulse_active = False
         GObject.idle_add(self.all_network_list.set_sensitive, True)
         GObject.idle_add(self.status_area.hide)
     if self.statusID:
         GObject.idle_add(self.status_bar.remove, 1, self.statusID)
Ejemplo n.º 18
0
Archivo: gui.py Proyecto: wmak/wicd
    def show_win(self):
        """ Brings the GUI out of the hidden state.

        Method to show the wicd GUI, alert the daemon that it is open,
        and refresh the network list.

        """
        self.window.present()
        self.window.deiconify()
        self.wait_for_events()
        self.is_visible = True
        daemon.SetGUIOpen(True)
        self.wait_for_events(0.1)
        gobject.idle_add(self.refresh_clicked)
        self._do_statusbar_update(*daemon.GetConnectionStatus())
        bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                                'org.wicd.daemon')
        self.update_cb = misc.timeout_add(2, self.update_statusbar)
Ejemplo n.º 19
0
 def show_win(self):
     """ Brings the GUI out of the hidden state. 
     
     Method to show the wicd GUI, alert the daemon that it is open,
     and refresh the network list.
     
     """
     self.window.present()
     self.window.deiconify()
     self.wait_for_events()
     self.is_visible = True
     daemon.SetGUIOpen(True)
     self.wait_for_events(0.1)
     gobject.idle_add(self.refresh_clicked)
     self._do_statusbar_update(*daemon.GetConnectionStatus())
     bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                             'org.wicd.daemon')
     self.update_cb = misc.timeout_add(2, self.update_statusbar)
Ejemplo n.º 20
0
    def __init__(self, standalone=False, tray=None):
        """ Initializes everything needed for the GUI. """
        setup_dbus()

        if not daemon:
            errmsg = _("Error connecting to wicd service via D-Bus. "
                     "Please ensure the wicd service is running.")
            d = gtk.MessageDialog(parent=None,
                                  flags=gtk.DIALOG_MODAL,
                                  type=gtk.MESSAGE_ERROR,
                                  buttons=gtk.BUTTONS_OK,
                                  message_format=errmsg)
            d.run()
            sys.exit(1)

        self.tray = tray

        gladefile = os.path.join(wpath.gtk, "wicd.ui")
        self.wTree = gtk.Builder()
        self.wTree.set_translation_domain('wicd')
        self.wTree.add_from_file(gladefile)
        self.window = self.wTree.get_object("window1")
        width = int(gtk.gdk.screen_width() / 2)
        if width > 530:
            width = 530
        self.window.resize(width, int(gtk.gdk.screen_height() / 1.7))

        dic = {
            "refresh_clicked": self.refresh_clicked,
            "quit_clicked": self.exit,
            "rfkill_clicked": self.switch_rfkill,
            "disconnect_clicked": self.disconnect_all,
            "main_exit": self.exit,
            "cancel_clicked": self.cancel_connect,
            "hidden_clicked": self.connect_hidden,
            "preferences_clicked": self.settings_dialog,
            "about_clicked": self.about_dialog,
            "create_adhoc_clicked": self.create_adhoc_network,
            "forget_network_clicked": self.forget_network,
        }
        self.wTree.connect_signals(dic)

        # Set some strings in the GUI - they may be translated
        label_instruct = self.wTree.get_object("label_instructions")
        label_instruct.set_label(_('Choose from the networks below:'))

        probar = self.wTree.get_object("progressbar")
        probar.set_text(_('Connecting'))

        self.disconnect_all_button = self.wTree.get_object('disconnect_button')
        self.rfkill_button = self.wTree.get_object("rfkill_button")
        self.all_network_list = self.wTree.get_object("network_list_vbox")
        self.all_network_list.show_all()
        self.wired_network_box = gtk.VBox(False, 0)
        self.wired_network_box.show_all()
        self.network_list = gtk.VBox(False, 0)
        self.all_network_list.pack_start(self.wired_network_box, False, False)
        self.all_network_list.pack_start(self.network_list, True, True)
        self.network_list.show_all()
        self.status_area = self.wTree.get_object("connecting_hbox")
        self.status_bar = self.wTree.get_object("statusbar")
        menu = self.wTree.get_object("menu1")

        self.status_area.hide_all()

        self.window.set_icon_name('wicd-gtk')
        self.statusID = None
        self.first_dialog_load = True
        self.is_visible = True
        self.pulse_active = False
        self.pref = None
        self.standalone = standalone
        self.wpadrivercombo = None
        self.connecting = False
        self.refreshing = False
        self.prev_state = None
        self.update_cb = None
        self._wired_showing = False
        self.network_list.set_sensitive(False)
        label = gtk.Label("%s..." % _('Scanning'))
        self.network_list.pack_start(label)
        label.show()
        self.wait_for_events(0.2)
        self.window.connect('delete_event', self.exit)
        self.window.connect('key-release-event', self.key_event)
        daemon.SetGUIOpen(True)
        bus.add_signal_receiver(self.dbus_scan_finished, 'SendEndScanSignal',
                        'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.dbus_scan_started, 'SendStartScanSignal',
                        'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.update_connect_buttons, 'StatusChanged',
                        'org.wicd.daemon')
        bus.add_signal_receiver(self.handle_connection_results,
                                'ConnectResultsSent', 'org.wicd.daemon')
        bus.add_signal_receiver(lambda: setup_dbus(force=False),
                                "DaemonStarting", "org.wicd.daemon")
        bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                                'org.wicd.daemon')
        if standalone:
            bus.add_signal_receiver(handle_no_dbus, "DaemonClosing",
                                    "org.wicd.daemon")

        self._do_statusbar_update(*daemon.GetConnectionStatus())
        self.wait_for_events(0.1)
        self.update_cb = misc.timeout_add(2, self.update_statusbar)
        self.refresh_clicked()
Ejemplo n.º 21
0
Archivo: gui.py Proyecto: wmak/wicd
    def __init__(self, standalone=False, tray=None):
        """ Initializes everything needed for the GUI. """
        setup_dbus()

        if not daemon:
            errmsg = _("Error connecting to wicd service via D-Bus. "
                       "Please ensure the wicd service is running.")
            d = gtk.MessageDialog(parent=None,
                                  flags=gtk.DIALOG_MODAL,
                                  type=gtk.MESSAGE_ERROR,
                                  buttons=gtk.BUTTONS_OK,
                                  message_format=errmsg)
            d.run()
            sys.exit(1)

        self.tray = tray

        gladefile = os.path.join(wpath.gtk, "wicd.ui")
        self.wTree = gtk.Builder()
        self.wTree.set_translation_domain('wicd')
        self.wTree.add_from_file(gladefile)
        self.window = self.wTree.get_object("window1")
        width = int(gtk.gdk.screen_width() / 2)
        if width > 530:
            width = 530
        self.window.resize(width, int(gtk.gdk.screen_height() / 1.7))

        dic = {
            "refresh_clicked": self.refresh_clicked,
            "quit_clicked": self.exit,
            "rfkill_clicked": self.switch_rfkill,
            "disconnect_clicked": self.disconnect_all,
            "main_exit": self.exit,
            "cancel_clicked": self.cancel_connect,
            "hidden_clicked": self.connect_hidden,
            "preferences_clicked": self.settings_dialog,
            "about_clicked": self.about_dialog,
            "create_adhoc_clicked": self.create_adhoc_network,
            "forget_network_clicked": self.forget_network,
        }
        self.wTree.connect_signals(dic)

        # Set some strings in the GUI - they may be translated
        label_instruct = self.wTree.get_object("label_instructions")
        label_instruct.set_label(_('Choose from the networks below:'))

        probar = self.wTree.get_object("progressbar")
        probar.set_text(_('Connecting'))

        self.disconnect_all_button = self.wTree.get_object('disconnect_button')
        self.rfkill_button = self.wTree.get_object("rfkill_button")
        self.all_network_list = self.wTree.get_object("network_list_vbox")
        self.all_network_list.show_all()
        self.wired_network_box = gtk.VBox(False, 0)
        self.wired_network_box.show_all()
        self.network_list = gtk.VBox(False, 0)
        self.all_network_list.pack_start(self.wired_network_box, False, False)
        self.all_network_list.pack_start(self.network_list, True, True)
        self.network_list.show_all()
        self.status_area = self.wTree.get_object("connecting_hbox")
        self.status_bar = self.wTree.get_object("statusbar")
        menu = self.wTree.get_object("menu1")

        self.status_area.hide_all()

        self.window.set_icon_name('wicd-gtk')
        self.statusID = None
        self.first_dialog_load = True
        self.is_visible = True
        self.pulse_active = False
        self.pref = None
        self.standalone = standalone
        self.wpadrivercombo = None
        self.connecting = False
        self.refreshing = False
        self.prev_state = None
        self.update_cb = None
        self._wired_showing = False
        self.network_list.set_sensitive(False)
        label = gtk.Label("%s..." % _('Scanning'))
        self.network_list.pack_start(label)
        label.show()
        self.wait_for_events(0.2)
        self.window.connect('delete_event', self.exit)
        self.window.connect('key-release-event', self.key_event)
        daemon.SetGUIOpen(True)
        bus.add_signal_receiver(self.dbus_scan_finished, 'SendEndScanSignal',
                                'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.dbus_scan_started, 'SendStartScanSignal',
                                'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.update_connect_buttons, 'StatusChanged',
                                'org.wicd.daemon')
        bus.add_signal_receiver(self.handle_connection_results,
                                'ConnectResultsSent', 'org.wicd.daemon')
        bus.add_signal_receiver(lambda: setup_dbus(force=False),
                                "DaemonStarting", "org.wicd.daemon")
        bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                                'org.wicd.daemon')
        if standalone:
            bus.add_signal_receiver(handle_no_dbus, "DaemonClosing",
                                    "org.wicd.daemon")

        self._do_statusbar_update(*daemon.GetConnectionStatus())
        self.wait_for_events(0.1)
        self.update_cb = misc.timeout_add(2, self.update_statusbar)
        self.refresh_clicked()
Ejemplo n.º 22
0
Archivo: gui.py Proyecto: cdanyang/wicd
    def __init__(self, standalone=False, tray=None):
        """ Initializes everything needed for the GUI. """
        setup_dbus()

        self.tray = tray

        gladefile = os.path.join(wpath.gtk, "wicd.ui")
        self.wTree = gtk.Builder()
        self.wTree.add_from_file(gladefile)
        self.window = self.wTree.get_object("window1")
        width = int(gtk.gdk.screen_width() / 2)
        if width > 530:
            width = 530
        self.window.resize(width, int(gtk.gdk.screen_height() / 1.7))

        dic = {
            "refresh_clicked": self.refresh_clicked,
            "quit_clicked": self.exit,
            "rfkill_clicked": self.switch_rfkill,
            "disconnect_clicked": self.disconnect_all,
            "main_exit": self.exit,
            "cancel_clicked": self.cancel_connect,
            "hidden_clicked": self.connect_hidden,
            "preferences_clicked": self.settings_dialog,
            "about_clicked": self.about_dialog,
            "create_adhoc_clicked": self.create_adhoc_network,
        }
        self.wTree.connect_signals(dic)

        # Set some strings in the GUI - they may be translated
        label_instruct = self.wTree.get_object("label_instructions")
        label_instruct.set_label(language['select_a_network'])

        probar = self.wTree.get_object("progressbar")
        probar.set_text(language['connecting'])

        self.rfkill_button = self.wTree.get_object("rfkill_button")
        self.all_network_list = self.wTree.get_object("network_list_vbox")
        self.all_network_list.show_all()
        self.wired_network_box = gtk.VBox(False, 0)
        self.wired_network_box.show_all()
        self.network_list = gtk.VBox(False, 0)
        self.all_network_list.pack_start(self.wired_network_box, False, False)
        self.all_network_list.pack_start(self.network_list, True, True)
        self.network_list.show_all()
        self.status_area = self.wTree.get_object("connecting_hbox")
        self.status_bar = self.wTree.get_object("statusbar")
        menu = self.wTree.get_object("menu1")

        self.status_area.hide_all()

        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
            self.window.set_icon_from_file(
                os.path.join(wpath.images, "wicd.png"))
        self.statusID = None
        self.first_dialog_load = True
        self.is_visible = True
        self.pulse_active = False
        self.pref = None
        self.standalone = standalone
        self.wpadrivercombo = None
        self.connecting = False
        self.refreshing = False
        self.prev_state = None
        self.update_cb = None
        self.network_list.set_sensitive(False)
        label = gtk.Label("%s..." % language['scanning'])
        self.network_list.pack_start(label)
        label.show()
        self.wait_for_events(0.2)
        self.window.connect('delete_event', self.exit)
        self.window.connect('key-release-event', self.key_event)
        daemon.SetGUIOpen(True)
        bus.add_signal_receiver(self.dbus_scan_finished, 'SendEndScanSignal',
                                'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.dbus_scan_started, 'SendStartScanSignal',
                                'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.update_connect_buttons, 'StatusChanged',
                                'org.wicd.daemon')
        bus.add_signal_receiver(self.handle_connection_results,
                                'ConnectResultsSent', 'org.wicd.daemon')
        bus.add_signal_receiver(lambda: setup_dbus(force=False),
                                "DaemonStarting", "org.wicd.daemon")
        bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                                'org.wicd.daemon')
        if standalone:
            bus.add_signal_receiver(handle_no_dbus, "DaemonClosing",
                                    "org.wicd.daemon")

        self._do_statusbar_update(*daemon.GetConnectionStatus())
        self.wait_for_events(0.1)
        self.update_cb = misc.timeout_add(2, self.update_statusbar)
        self.refresh_clicked()
Ejemplo n.º 23
0
    def __init__(self, standalone=False, tray=None):
        """ Initializes everything needed for the GUI. """
        setup_dbus()

        self.tray = tray

        gladefile = os.path.join(wpath.gtk, "wicd.ui")
        self.wTree = gtk.Builder()
        self.wTree.add_from_file(gladefile)
        self.window = self.wTree.get_object("window1")
        width = int(gtk.gdk.screen_width() / 2)
        if width > 530:
            width = 530
        self.window.resize(width, int(gtk.gdk.screen_height() / 1.7))

        dic = { "refresh_clicked" : self.refresh_clicked, 
                "quit_clicked" : self.exit,
                "rfkill_clicked" : self.switch_rfkill,
                "disconnect_clicked" : self.disconnect_all,
                "main_exit" : self.exit, 
                "cancel_clicked" : self.cancel_connect,
                "hidden_clicked" : self.connect_hidden,
                "preferences_clicked" : self.settings_dialog,
                "about_clicked" : self.about_dialog,
                "create_adhoc_clicked" : self.create_adhoc_network,
                }
        self.wTree.connect_signals(dic)

        # Set some strings in the GUI - they may be translated
        label_instruct = self.wTree.get_object("label_instructions")
        label_instruct.set_label(language['select_a_network'])

        probar = self.wTree.get_object("progressbar")
        probar.set_text(language['connecting'])

        self.rfkill_button = self.wTree.get_object("rfkill_button")
        self.all_network_list = self.wTree.get_object("network_list_vbox")
        self.all_network_list.show_all()
        self.wired_network_box = gtk.VBox(False, 0)
        self.wired_network_box.show_all()
        self.network_list = gtk.VBox(False, 0)
        self.all_network_list.pack_start(self.wired_network_box, False, False)
        self.all_network_list.pack_start(self.network_list, True, True)
        self.network_list.show_all()
        self.status_area = self.wTree.get_object("connecting_hbox")
        self.status_bar = self.wTree.get_object("statusbar")
        menu = self.wTree.get_object("menu1")

        self.status_area.hide_all()

        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
            self.window.set_icon_from_file(os.path.join(wpath.images, "wicd.png"))
        self.statusID = None
        self.first_dialog_load = True
        self.is_visible = True
        self.pulse_active = False
        self.pref = None
        self.standalone = standalone
        self.wpadrivercombo = None
        self.connecting = False
        self.refreshing = False
        self.prev_state = None
        self.update_cb = None
        self.network_list.set_sensitive(False)
        label = gtk.Label("%s..." % language['scanning'])
        self.network_list.pack_start(label)
        label.show()
        self.wait_for_events(0.2)
        self.window.connect('delete_event', self.exit)
        self.window.connect('key-release-event', self.key_event)
        daemon.SetGUIOpen(True)
        bus.add_signal_receiver(self.dbus_scan_finished, 'SendEndScanSignal',
                        'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.dbus_scan_started, 'SendStartScanSignal',
                        'org.wicd.daemon.wireless')
        bus.add_signal_receiver(self.update_connect_buttons, 'StatusChanged',
                        'org.wicd.daemon')
        bus.add_signal_receiver(self.handle_connection_results,
                                'ConnectResultsSent', 'org.wicd.daemon')
        bus.add_signal_receiver(lambda: setup_dbus(force=False), 
                                "DaemonStarting", "org.wicd.daemon")
        bus.add_signal_receiver(self._do_statusbar_update, 'StatusChanged',
                                'org.wicd.daemon')
        if standalone:
            bus.add_signal_receiver(handle_no_dbus, "DaemonClosing", 
                                    "org.wicd.daemon")
            
        self._do_statusbar_update(*daemon.GetConnectionStatus())
        self.wait_for_events(0.1)
        self.update_cb = misc.timeout_add(2, self.update_statusbar)
        self.refresh_clicked()