コード例 #1
0
    def change_encrypt_method(self):
        """ Change encrypt method based on combobox. """
        #self.lbox_encrypt = urwid.ListBox()
        self.encryption_info = {}
        wid, ID = self.encryption_combo.get_focus()
        methods = self.encrypt_types

        # pylint: disable-msg=E0203
        if self._w.body.body.__contains__(self.pile_encrypt):
            self._w.body.body.pop(self._w.body.body.__len__() - 1)

        # If nothing is selected, select the first entry.
        if ID == -1:
            self.encryption_combo.set_focus(0)
            ID = 0

        theList = []
        for type_ in ['required', 'optional']:
            fields = methods[ID][type_]
            for field in fields:
                try:
                    text = language[field[1].lower().replace(' ', '_')]
                except KeyError:
                    text = field[1].replace(' ', '_')
                edit = MaskingEdit(('editcp', text + ': '))
                edit.set_mask_mode('no_focus')
                theList.append(edit)
                # Add the data to any array, so that the information
                # can be easily accessed by giving the name of the wanted
                # data.
                self.encryption_info[field[0]] = [edit, type_]

                if self.wired:
                    edit.set_edit_text(noneToBlankString(
                        wired.GetWiredProperty(field[0])))
                else:
                    edit.set_edit_text(noneToBlankString(
                        wireless.GetWirelessProperty(self.networkid, field[0])))

        #FIXME: This causes the entire pile to light up upon use.
        # Make this into a listbox?
        self.pile_encrypt = DynWrap(
            urwid.Pile(theList),
            attrs=('editbx', 'editnfc')
        )

        self.pile_encrypt.set_sensitive(self.encryption_chkbox.get_state())

        self._w.body.body.insert(self._w.body.body.__len__(), self.pile_encrypt)
コード例 #2
0
ファイル: netentry_curses.py プロジェクト: cdanyang/wicd
    def change_encrypt_method(self):
        #self.lbox_encrypt = urwid.ListBox()
        self.encryption_info = {}
        wid,ID = self.encryption_combo.get_focus()
        methods = misc.LoadEncryptionMethods()

        if self._w.body.body.__contains__(self.pile_encrypt):
            self._w.body.body.pop(self._w.body.body.__len__()-1)

        # If nothing is selected, select the first entry.
        if ID == -1:
            self.encryption_combo.set_focus(0)
            ID = 0

        theList = []
        for type_ in ['required', 'optional']:
            fields = methods[ID][type_]
            for field in fields:
                if language.has_key(field[1]):
                    edit = MaskingEdit(('editcp',language[field[1].lower().replace(' ','_')]+': '))
                else:
                    edit = MaskingEdit(('editcp',field[1].replace('_',' ')+': '))
                edit.set_mask_mode('no_focus')
                theList.append(edit)
                # Add the data to any array, so that the information
                # can be easily accessed by giving the name of the wanted
                # data.
                self.encryption_info[field[0]] = [edit, type_]

                edit.set_edit_text(noneToBlankString(
                    wireless.GetWirelessProperty(self.networkid, field[0])))

        #FIXME: This causes the entire pile to light up upon use.
        # Make this into a listbox?
        self.pile_encrypt = DynWrap(urwid.Pile(theList),attrs=('editbx','editnfc'))
        self._w.body.body.insert(self._w.body.body.__len__(),self.pile_encrypt)
コード例 #3
0
    def __init__(self):
        self.ui = None
        self.body = None

        self.wired = None
        self.networkid = None

        self.encryption_info = None
        self.encryption_combo = None
        self.encrypt_types = None
        self.encryption_chkbox = None

        static_ip_t = _('Use Static IPs')
        ip_t = ('editcp', _('IP') + ':     ')
        netmask_t = ('editcp', _('Netmask') + ':')
        gateway_t = ('editcp', _('Gateway') + ':')

        use_static_dns_t = _('Use Static DNS')
        use_global_dns_t = _('Use global DNS servers')
        dns_dom_t = ('editcp', _('DNS domain') + ':   ')
        search_dom_t = ('editcp', _('Search domain') + ':')
        dns1_t = ('editcp', _('DNS server') + ' 1' + ':' + ' ' * 8)
        dns2_t = ('editcp', _('DNS server') + ' 2' + ':' + ' ' * 8)
        dns3_t = ('editcp', _('DNS server') + ' 3' + ':' + ' ' * 8)

        use_dhcp_h_t = _('Use DHCP Hostname')
        dhcp_h_t = ('editcp', _('DHCP Hostname') + ': ')

        cancel_t = _('Cancel')
        ok_t = _('OK')

        self.static_ip_cb = urwid.CheckBox(static_ip_t,
                on_state_change=self.static_ip_toggle)
        self.ip_edit = DynWrap(urwid.Edit(ip_t), False)
        self.netmask_edit = DynWrap(urwid.Edit(netmask_t), False)
        self.gateway_edit = DynWrap(urwid.Edit(gateway_t), False)

        self.static_dns_cb = DynWrap(
            urwid.CheckBox(use_static_dns_t, on_state_change=self.dns_toggle),
            True,
            ('body', 'editnfc'),
            None
        )
        self.global_dns_cb = DynWrap(
            urwid.CheckBox(use_global_dns_t, on_state_change=self.dns_toggle),
            False,
            ('body', 'editnfc'),
            None
        )
        self.checkb_cols = urwid.Columns([
            self.static_dns_cb,
            self.global_dns_cb
        ])
        self.dns_dom_edit = DynWrap(urwid.Edit(dns_dom_t), False)
        self.search_dom_edit = DynWrap(urwid.Edit(search_dom_t), False)
        self.dns1 = DynWrap(urwid.Edit(dns1_t), False)
        self.dns2 = DynWrap(urwid.Edit(dns2_t), False)
        self.dns3 = DynWrap(urwid.Edit(dns3_t), False)

        self.use_dhcp_h = urwid.CheckBox(
            use_dhcp_h_t,
            False,
            on_state_change=self.use_dhcp_h_toggle
        )
        self.dhcp_h = DynWrap(urwid.Edit(dhcp_h_t), False)

        _blank = urwid.Text('')

        walker = urwid.SimpleListWalker([
            self.static_ip_cb,
            self.ip_edit,
            self.netmask_edit,
            self.gateway_edit,
            _blank,
            self.checkb_cols,
            self.dns_dom_edit,
            self.search_dom_edit,
            self.dns1, self.dns2, self.dns3,
            _blank,
            self.use_dhcp_h,
            self.dhcp_h,
            _blank
        ])

        self._listbox = urwid.ListBox(walker)
        self._frame = urwid.Frame(self._listbox)

        # pylint: disable-msg=E1101
        self.__super.__init__(self._frame)
コード例 #4
0
class AdvancedSettingsDialog(urwid.WidgetWrap):
    """
    Settings dialog.

    Both the wired and the wireless settings preferences dialogs use some of the
    same fields.
    This will be used to produce the individual network settings dialogs way far
    below.
    """
    # pylint: disable-msg=W0231
    def __init__(self):
        self.ui = None
        self.body = None

        self.wired = None
        self.networkid = None

        self.encryption_info = None
        self.encryption_combo = None
        self.encrypt_types = None
        self.encryption_chkbox = None

        static_ip_t = _('Use Static IPs')
        ip_t = ('editcp', _('IP') + ':     ')
        netmask_t = ('editcp', _('Netmask') + ':')
        gateway_t = ('editcp', _('Gateway') + ':')

        use_static_dns_t = _('Use Static DNS')
        use_global_dns_t = _('Use global DNS servers')
        dns_dom_t = ('editcp', _('DNS domain') + ':   ')
        search_dom_t = ('editcp', _('Search domain') + ':')
        dns1_t = ('editcp', _('DNS server') + ' 1' + ':' + ' ' * 8)
        dns2_t = ('editcp', _('DNS server') + ' 2' + ':' + ' ' * 8)
        dns3_t = ('editcp', _('DNS server') + ' 3' + ':' + ' ' * 8)

        use_dhcp_h_t = _('Use DHCP Hostname')
        dhcp_h_t = ('editcp', _('DHCP Hostname') + ': ')

        cancel_t = _('Cancel')
        ok_t = _('OK')

        self.static_ip_cb = urwid.CheckBox(static_ip_t,
                on_state_change=self.static_ip_toggle)
        self.ip_edit = DynWrap(urwid.Edit(ip_t), False)
        self.netmask_edit = DynWrap(urwid.Edit(netmask_t), False)
        self.gateway_edit = DynWrap(urwid.Edit(gateway_t), False)

        self.static_dns_cb = DynWrap(
            urwid.CheckBox(use_static_dns_t, on_state_change=self.dns_toggle),
            True,
            ('body', 'editnfc'),
            None
        )
        self.global_dns_cb = DynWrap(
            urwid.CheckBox(use_global_dns_t, on_state_change=self.dns_toggle),
            False,
            ('body', 'editnfc'),
            None
        )
        self.checkb_cols = urwid.Columns([
            self.static_dns_cb,
            self.global_dns_cb
        ])
        self.dns_dom_edit = DynWrap(urwid.Edit(dns_dom_t), False)
        self.search_dom_edit = DynWrap(urwid.Edit(search_dom_t), False)
        self.dns1 = DynWrap(urwid.Edit(dns1_t), False)
        self.dns2 = DynWrap(urwid.Edit(dns2_t), False)
        self.dns3 = DynWrap(urwid.Edit(dns3_t), False)

        self.use_dhcp_h = urwid.CheckBox(
            use_dhcp_h_t,
            False,
            on_state_change=self.use_dhcp_h_toggle
        )
        self.dhcp_h = DynWrap(urwid.Edit(dhcp_h_t), False)

        _blank = urwid.Text('')

        walker = urwid.SimpleListWalker([
            self.static_ip_cb,
            self.ip_edit,
            self.netmask_edit,
            self.gateway_edit,
            _blank,
            self.checkb_cols,
            self.dns_dom_edit,
            self.search_dom_edit,
            self.dns1, self.dns2, self.dns3,
            _blank,
            self.use_dhcp_h,
            self.dhcp_h,
            _blank
        ])

        self._listbox = urwid.ListBox(walker)
        self._frame = urwid.Frame(self._listbox)

        # pylint: disable-msg=E1101
        self.__super.__init__(self._frame)

    def use_dhcp_h_toggle(self, checkb, new_state, user_data=None):
        """ Set sensitivity of widget. """
        self.dhcp_h.set_sensitive(new_state)

    def static_ip_toggle(self, checkb, new_state, user_data=None):
        """ Set sensitivity of widget. """
        for w in [self.ip_edit, self.netmask_edit, self.gateway_edit]:
            w.set_sensitive(new_state)
        self.static_dns_cb.set_state(new_state)
        self.static_dns_cb.set_sensitive(not new_state)
        if new_state:
            self.checkb_cols.set_focus(self.global_dns_cb)
        else:
            self.checkb_cols.set_focus(self.static_dns_cb)

    def dns_toggle(self, checkb, new_state, user_data=None):
        """ Set sensitivity of widget. """
        if checkb == self.static_dns_cb.get_w():
            for w in [
                self.dns_dom_edit,
                self.search_dom_edit,
                self.dns1,
                self.dns2,
                self.dns3
            ]:
                w.set_sensitive(new_state)
            if not new_state:
                self.global_dns_cb.set_state(False, do_callback=False)
            self.global_dns_cb.set_sensitive(new_state)
        # use_global_dns_cb is DynWrapped
        if checkb == self.global_dns_cb.get_w():
            for w in [self.dns_dom_edit, self.search_dom_edit,
                    self.dns1, self.dns2, self.dns3 ]:
                w.set_sensitive(not new_state)

    def set_net_prop(self, option, value):
        """ Set network property. MUST BE OVERRIDEN. """
        raise NotImplementedError

    # Code totally yanked from netentry.py
    def save_settings(self):
        """ Save settings common to wired and wireless settings dialogs. """
        if self.static_ip_cb.get_state():
            for i in [
                self.ip_edit,
                self.netmask_edit,
                self.gateway_edit
            ]:
                i.set_edit_text(i.get_edit_text().strip())

            self.set_net_prop("ip", noneToString(self.ip_edit.get_edit_text()))
            self.set_net_prop("netmask",
                noneToString(self.netmask_edit.get_edit_text()))
            self.set_net_prop("gateway",
                noneToString(self.gateway_edit.get_edit_text()))
        else:
            self.set_net_prop("ip", '')
            self.set_net_prop("netmask", '')
            self.set_net_prop("gateway", '')

        if self.static_dns_cb.get_state() and \
           not self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', False)
            # Strip addressses before checking them in the daemon.
            for i in [
                self.dns1,
                self.dns2,
                self.dns3,
                self.dns_dom_edit,
                self.search_dom_edit
            ]:
                i.set_edit_text(i.get_edit_text().strip())
            self.set_net_prop('dns_domain',
                noneToString(self.dns_dom_edit.get_edit_text()))
            self.set_net_prop("search_domain",
                noneToString(self.search_dom_edit.get_edit_text()))
            self.set_net_prop("dns1", noneToString(self.dns1.get_edit_text()))
            self.set_net_prop("dns2", noneToString(self.dns2.get_edit_text()))
            self.set_net_prop("dns3", noneToString(self.dns3.get_edit_text()))
        elif self.static_dns_cb.get_state() and \
             self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', True)
        else:
            self.set_net_prop('use_static_dns', False)
            self.set_net_prop('use_global_dns', False)
            self.set_net_prop('dns_domain', '')
            self.set_net_prop("search_domain", '')
            self.set_net_prop("dns1", '')
            self.set_net_prop("dns2", '')
            self.set_net_prop("dns3", '')
        self.set_net_prop('dhcphostname', self.dhcp_h.get_edit_text())
        self.set_net_prop('usedhcphostname', self.use_dhcp_h.get_state())

    # Prevent comboboxes from dying.
    def ready_widgets(self, ui, body):
        """ Build comboboxes. """
        self.ui = ui
        self.body = body
        self.encryption_combo.build_combobox(body, ui, 14)
        self.change_encrypt_method()

    def combo_on_change(self, combobox, new_index, user_data=None):
        """ Handle change of item in the combobox. """
        self.change_encrypt_method()

    # More or less ripped from netentry.py
    def change_encrypt_method(self):
        """ Change encrypt method based on combobox. """
        #self.lbox_encrypt = urwid.ListBox()
        self.encryption_info = {}
        wid, ID = self.encryption_combo.get_focus()
        methods = self.encrypt_types

        # pylint: disable-msg=E0203
        if self._w.body.body.__contains__(self.pile_encrypt):
            self._w.body.body.pop(self._w.body.body.__len__() - 1)

        # If nothing is selected, select the first entry.
        if ID == -1:
            self.encryption_combo.set_focus(0)
            ID = 0

        theList = []
        for type_ in ['required', 'optional']:
            fields = methods[ID][type_]
            for field in fields:
                try:
                    text = language[field[1].lower().replace(' ', '_')]
                except KeyError:
                    text = field[1].replace(' ', '_')
                edit = MaskingEdit(('editcp', text + ': '))
                edit.set_mask_mode('no_focus')
                theList.append(edit)
                # Add the data to any array, so that the information
                # can be easily accessed by giving the name of the wanted
                # data.
                self.encryption_info[field[0]] = [edit, type_]

                if self.wired:
                    edit.set_edit_text(noneToBlankString(
                        wired.GetWiredProperty(field[0])))
                else:
                    edit.set_edit_text(noneToBlankString(
                        wireless.GetWirelessProperty(self.networkid, field[0])))

        #FIXME: This causes the entire pile to light up upon use.
        # Make this into a listbox?
        self.pile_encrypt = DynWrap(
            urwid.Pile(theList),
            attrs=('editbx', 'editnfc')
        )

        self.pile_encrypt.set_sensitive(self.encryption_chkbox.get_state())

        self._w.body.body.insert(self._w.body.body.__len__(), self.pile_encrypt)
        #self._w.body.body.append(self.pile_encrypt)

    def encryption_toggle(self, chkbox, new_state, user_data=None):
        """ Set sensitivity of widget. """
        self.encryption_combo.set_sensitive(new_state)
        self.pile_encrypt.set_sensitive(new_state)
コード例 #5
0
    def __init__(self, body, pos, ui, dbus=None):
        global daemon, wireless, wired

        self.thebackends = None
        self.backends = None
        self.wpadrivers = None
        self.thedrivers = None

        daemon = dbus['daemon']
        wireless = dbus['wireless']
        wired = dbus['wired']

        width, height = ui.get_cols_rows()
        height -= 3
        #width = 80
        #height = 20
        # Stuff that goes at the top

        header0_t = _('General Settings')
        header1_t = _('External Programs')
        header2_t = _('Advanced Settings')
        self.header0 = urwid.AttrWrap(SelText(header0_t), 'tab active',
                                      'focus')
        self.header1 = urwid.AttrWrap(SelText(header1_t), 'body', 'focus')
        self.header2 = urwid.AttrWrap(SelText(header2_t), 'body', 'focus')
        title = ('Preferences')

        # Blank line
        _blank = urwid.Text('')

        ####
        #### Text in the widgets
        ####

        # General Settings
        net_cat_t = ('header', ('Network Interfaces'))
        wired_t = ('editcp', ('Wired Interface') + ':   ')
        wless_t = ('editcp', ('Wireless Interface') + ':')
        always_show_wired_t = _('Always show wired interface')
        prefer_wired_t = _('Always switch to wired connection when available')

        global_dns_cat_t = ('header', _('Global DNS servers'))
        global_dns_t = ('editcp', _('Use global DNS servers'))
        dns_dom_t = ('editcp', '    ' + _('DNS domain') + ':   ')
        search_dom_t = ('editcp', '    ' + _('Search domain') + ':')
        dns1_t = ('editcp', '    ' + _('DNS server') + ' 1: ')
        dns2_t = ('editcp', '    ' + _('DNS server') + ' 2: ')
        dns3_t = ('editcp', '    ' + _('DNS server') + ' 3: ')

        wired_auto_cat_t = ('header', _('Wired Autoconnect Settings'))
        wired_auto_1_t = _('Use default profile on wired autoconnect')
        wired_auto_2_t = _('Prompt for profile on wired autoconnect')
        wired_auto_3_t = _('Use last used profile on wired autoconnect')

        auto_reconn_cat_t = ('header', _('Automatic Reconnection'))
        auto_reconn_t = _('Automatically reconnect on connection loss')

        #### External Programs
        automatic_t = _('Automatic (recommended)')

        dhcp_header_t = ('header', _('DHCP Client'))
        # Automatic
        dhcp1_t = 'dhclient'
        dhcp2_t = 'dhcpcd'
        dhcp3_t = 'pump'
        dhcp4_t = 'udhcpc'

        wired_detect_header_t = ('header', _('Wired Link Detection'))
        wired1_t = 'ethtool'
        wired2_t = 'mii-tool'

        flush_header_t = ('header', _('Route Table Flushing'))
        flush1_t = 'ip'
        flush2_t = 'route'

        #### Advanced Settings
        wpa_cat_t = ('header', _('WPA Supplicant'))
        wpa_t = ('editcp', 'Driver:')
        wpa_list = []
        wpa_warn_t = (
            'important',
            _('You should almost always use wext as the WPA supplicant driver')
        )

        backend_cat_t = ('header', _('Backend'))
        backend_t = _('Backend') + ':'
        backend_list = []

        debug_cat_t = ('header', _('Debugging'))
        debug_mode_t = _('Enable debug mode')

        wless_cat_t = ('header', _('Wireless Interface'))
        use_dbm_t = _('Use dBm to measure signal strength')
        verify_ap_t = \
            _('Ping static gateways after connecting to verify association')

        ####
        #### UI Widgets
        ####

        # General Settings
        self.net_cat = urwid.Text(net_cat_t)
        self.wired_edit = \
            urwid.AttrWrap(urwid.Edit(wired_t), 'editbx', 'editfc')
        self.wless_edit = \
            urwid.AttrWrap(urwid.Edit(wless_t), 'editbx', 'editfc')
        self.prefer_wired_chkbx = urwid.CheckBox(prefer_wired_t)
        self.global_dns_cat = urwid.Text(global_dns_cat_t)
        # Default the global DNS settings to off.  They will be reenabled later
        # if so required.
        global_dns_state = False
        self.global_dns_checkb = urwid.CheckBox(
            global_dns_t,
            global_dns_state,
            on_state_change=self.global_dns_trigger)
        self.search_dom = DynWrap(urwid.Edit(search_dom_t), global_dns_state)
        self.dns_dom = DynWrap(urwid.Edit(dns_dom_t), global_dns_state)
        self.dns1 = DynWrap(urwid.Edit(dns1_t), global_dns_state)
        self.dns2 = DynWrap(urwid.Edit(dns2_t), global_dns_state)
        self.dns3 = DynWrap(urwid.Edit(dns3_t), global_dns_state)

        self.always_show_wired_checkb = urwid.CheckBox(always_show_wired_t)

        self.wired_auto_l = []
        self.wired_auto_cat = urwid.Text(wired_auto_cat_t)
        self.wired_auto_1 = urwid.RadioButton(self.wired_auto_l,
                                              wired_auto_1_t)
        self.wired_auto_2 = urwid.RadioButton(self.wired_auto_l,
                                              wired_auto_2_t)
        self.wired_auto_3 = urwid.RadioButton(self.wired_auto_l,
                                              wired_auto_3_t)

        self.auto_reconn_cat = urwid.Text(auto_reconn_cat_t)
        self.auto_reconn_checkb = urwid.CheckBox(auto_reconn_t)
        generalLB = urwid.ListBox([
            self.net_cat,
            self.wless_edit,  # _blank,
            self.wired_edit,
            self.always_show_wired_checkb,
            self.prefer_wired_chkbx,
            _blank,
            self.global_dns_cat,
            self.global_dns_checkb,  # _blank,
            self.search_dom,
            self.dns_dom,
            self.dns1,
            self.dns2,
            self.dns3,
            _blank,
            self.wired_auto_cat,
            self.wired_auto_1,
            self.wired_auto_2,
            self.wired_auto_3,
            _blank,
            self.auto_reconn_cat,
            self.auto_reconn_checkb
        ])

        #### External Programs tab
        automatic_t = _('Automatic (recommended)')

        self.dhcp_header = urwid.Text(dhcp_header_t)
        self.dhcp_l = []

        # Order of these is flipped in the actual interface,
        # (2, 3, 1 -> dhcpcd, pump, dhclient), because dhclient often doesn't
        # like to work on several distros.
        self.dhcp0 = urwid.RadioButton(self.dhcp_l, automatic_t)
        self.dhcp1 = DynRadioButton(self.dhcp_l, dhcp1_t)
        self.dhcp2 = DynRadioButton(self.dhcp_l, dhcp2_t)
        self.dhcp3 = DynRadioButton(self.dhcp_l, dhcp3_t)
        self.dhcp4 = DynRadioButton(self.dhcp_l, dhcp4_t)
        self.dhcp_l = [
            self.dhcp0, self.dhcp1, self.dhcp2, self.dhcp3, self.dhcp4
        ]

        self.wired_l = []
        self.wired_detect_header = urwid.Text(wired_detect_header_t)
        self.wired0 = urwid.RadioButton(self.wired_l, automatic_t)
        self.wired1 = DynRadioButton(self.wired_l, wired1_t)
        self.wired2 = DynRadioButton(self.wired_l, wired2_t)
        self.wired_l = [self.wired0, self.wired1, self.wired2]

        self.flush_l = []
        self.flush_header = urwid.Text(flush_header_t)
        self.flush0 = urwid.RadioButton(self.flush_l, automatic_t)
        self.flush1 = DynRadioButton(self.flush_l, flush1_t)
        self.flush2 = DynRadioButton(self.flush_l, flush2_t)
        self.flush_l = [self.flush0, self.flush1, self.flush2]

        externalLB = urwid.ListBox([
            self.dhcp_header, self.dhcp0, self.dhcp2, self.dhcp3, self.dhcp1,
            self.dhcp4, _blank, self.wired_detect_header, self.wired0,
            self.wired1, self.wired2, _blank, self.flush_header, self.flush0,
            self.flush1, self.flush2
        ])

        #### Advanced settings
        self.wpa_cat = urwid.Text(wpa_cat_t)
        self.wpa_cbox = ComboBox(wpa_t)
        self.wpa_warn = urwid.Text(wpa_warn_t)

        self.backend_cat = urwid.Text(backend_cat_t)
        self.backend_cbox = ComboBox(backend_t)

        self.debug_cat = urwid.Text(debug_cat_t)
        self.debug_mode_checkb = urwid.CheckBox(debug_mode_t)

        self.wless_cat = urwid.Text(wless_cat_t)
        self.use_dbm_checkb = urwid.CheckBox(use_dbm_t)
        self.verify_ap_checkb = urwid.CheckBox(verify_ap_t)

        advancedLB = urwid.ListBox([
            self.wpa_cat, self.wpa_cbox, self.wpa_warn, _blank,
            self.backend_cat, self.backend_cbox, _blank, self.debug_cat,
            self.debug_mode_checkb, _blank, self.wless_cat,
            self.use_dbm_checkb, _blank, self.verify_ap_checkb, _blank
        ])

        headerList = [self.header0, self.header1, self.header2]
        lbList = [generalLB, externalLB, advancedLB]
        self.tab_map = {
            self.header0: generalLB,
            self.header1: externalLB,
            self.header2: advancedLB
        }
        #self.load_settings()

        self.tabs = TabColumns(headerList, lbList, _('Preferences'))
        # pylint: disable-msg=E1101
        self.__super.__init__(self.tabs)
コード例 #6
0
ファイル: prefs_curses.py プロジェクト: cbxbiker61/wicd
    def __init__(self, body, pos, ui, dbus=None):
        global daemon, wireless, wired

        daemon = dbus['daemon']
        wireless = dbus['wireless']
        wired = dbus['wired']

        width,height =  ui.get_cols_rows()
        height -= 3
        #width = 80
        #height = 20
        # Stuff that goes at the top

        header0_t = language["gen_settings"]
        header1_t = language["ext_programs"]
        header2_t = language["advanced_settings"]
        self.header0 = urwid.AttrWrap(SelText(header0_t), 'tab active', 'focus')
        self.header1 = urwid.AttrWrap(SelText(header1_t), 'body', 'focus')
        self.header2 = urwid.AttrWrap(SelText(header2_t), 'body', 'focus')
        title   = language['preferences']

        # Blank line
        _blank = urwid.Text('')

        ####
        #### Text in the widgets
        ####

        # General Settings
        net_cat_t           = ('header', language['network_interfaces'])
        wired_t             = ('editcp', language['wired_interface']+':   ')
        wless_t             = ('editcp', language['wireless_interface']+':')
        always_show_wired_t = language['wired_always_on']
        prefer_wired_t      = language['always_switch_to_wired']

        global_dns_cat_t = ('header', language['global_dns_servers'])
        global_dns_t     = ('editcp', language['use_global_dns'])
        dns_dom_t        = ('editcp', '    '+language['dns_domain']+':   ')
        search_dom_t     = ('editcp', '    '+language['search_domain']+':')
        dns1_t           = ('editcp', '    DNS server 1: ')
        dns2_t           = ('editcp', '    DNS server 2: ')
        dns3_t           = ('editcp', '    DNS server 3: ')


        wired_auto_cat_t= ('header', language['wired_autoconnect_settings'])
        wired_auto_1_t = language['use_default_profile']
        wired_auto_2_t = language['show_wired_list']
        wired_auto_3_t = language['use_last_used_profile']

        auto_reconn_cat_t = ('header', language['automatic_reconnection'])
        auto_reconn_t = language['auto_reconnect']

        #### External Programs
        automatic_t = language['wicd_auto_config']

        dhcp_header_t = ('header', language["dhcp_client"])
        # Automatic
        dhcp1_t  = 'dhclient'
        dhcp2_t  = 'dhcpcd'
        dhcp3_t  = 'pump'
        dhcp4_t  = 'udhcpc'

        wired_detect_header_t = ('header', language["wired_detect"])
        wired1_t              = 'ethtool'
        wired2_t              = 'mii-tool'

        flush_header_t = ('header', language["route_flush"])
        flush1_t           = 'ip'
        flush2_t           = 'route'
 
        #### Advanced Settings
        wpa_cat_t=('header', language['wpa_supplicant'])
        wpa_t=('editcp','Driver:')
        wpa_list = []
        wpa_warn_t = ('important', language['always_use_wext'])
        
        backend_cat_t = ('header', language['backend'])
        backend_t = language['backend']+':'
        backend_list = []
        
        debug_cat_t = ('header', language['debugging'])
        debug_mode_t = language['use_debug_mode']

        wless_cat_t = ('header', language['wireless_interface'])
        use_dbm_t = language['display_type_dialog']
        verify_ap_t = language['verify_ap_dialog']
        


        ####
        #### UI Widgets
        ####

        # General Settings
        self.net_cat    = urwid.Text(net_cat_t)
        self.wired_edit = urwid.AttrWrap(urwid.Edit(wired_t),'editbx','editfc')
        self.wless_edit = urwid.AttrWrap(urwid.Edit(wless_t),'editbx','editfc')
        self.prefer_wired_chkbx = urwid.CheckBox(prefer_wired_t)
        self.global_dns_cat = urwid.Text(global_dns_cat_t)
        # Default the global DNS settings to off.  They will be reenabled later
        # if so required.
        global_dns_state = False
        self.global_dns_checkb  = urwid.CheckBox(global_dns_t, global_dns_state,
                on_state_change=self.global_dns_trigger)
        self.search_dom = DynWrap(urwid.Edit(search_dom_t), global_dns_state)
        self.dns_dom    = DynWrap(urwid.Edit(dns_dom_t), global_dns_state)
        self.dns1       = DynWrap(urwid.Edit(dns1_t), global_dns_state)
        self.dns2       = DynWrap(urwid.Edit(dns2_t), global_dns_state)
        self.dns3       = DynWrap(urwid.Edit(dns3_t), global_dns_state)


        self.always_show_wired_checkb = urwid.CheckBox(always_show_wired_t)

        self.wired_auto_l  = []
        self.wired_auto_cat= urwid.Text(wired_auto_cat_t)
        self.wired_auto_1  = urwid.RadioButton(self.wired_auto_l,wired_auto_1_t)
        self.wired_auto_2  = urwid.RadioButton(self.wired_auto_l,wired_auto_2_t)
        self.wired_auto_3  = urwid.RadioButton(self.wired_auto_l,wired_auto_3_t)

        self.auto_reconn_cat    = urwid.Text(auto_reconn_cat_t)
        self.auto_reconn_checkb = urwid.CheckBox(auto_reconn_t)
        generalLB = urwid.ListBox([self.net_cat,
                                   self.wless_edit,#_blank,
                                   self.wired_edit,
                                   self.always_show_wired_checkb,
                                   self.prefer_wired_chkbx,_blank,
                                   self.global_dns_cat,
                                   self.global_dns_checkb,#_blank,
                                   self.search_dom,self.dns_dom,
                                   self.dns1,self.dns2,self.dns3,_blank,
                                   self.wired_auto_cat,
                                   self.wired_auto_1,
                                   self.wired_auto_2,
                                   self.wired_auto_3, _blank,
                                   self.auto_reconn_cat,
                                   self.auto_reconn_checkb
                                  ])

        #### External Programs tab
        automatic_t = language['wicd_auto_config']

        self.dhcp_header = urwid.Text(dhcp_header_t)
        self.dhcp_l = []

        # Order of these is flipped in the actual interface,
        # (2,3,1 -> dhcpcd, pump, dhclient), because dhclient often doesn't like
        # to work on several distros.
        self.dhcp0  = urwid.RadioButton(self.dhcp_l ,automatic_t)
        self.dhcp1  = DynRadioButton(self.dhcp_l, dhcp1_t)
        self.dhcp2  = DynRadioButton(self.dhcp_l, dhcp2_t)
        self.dhcp3  = DynRadioButton(self.dhcp_l, dhcp3_t)
        self.dhcp4  = DynRadioButton(self.dhcp_l, dhcp4_t)
        self.dhcp_l = [self.dhcp0,self.dhcp1,self.dhcp2,self.dhcp3,self.dhcp4]

        self.wired_l = []
        self.wired_detect_header = urwid.Text(wired_detect_header_t)
        self.wired0         = urwid.RadioButton(self.wired_l, automatic_t)
        self.wired1         = DynRadioButton(self.wired_l, wired1_t)
        self.wired2         = DynRadioButton(self.wired_l, wired2_t)
        self.wired_l = [self.wired0, self.wired1, self.wired2]

        self.flush_l = []
        self.flush_header   = urwid.Text(flush_header_t)
        self.flush0         = urwid.RadioButton(self.flush_l,automatic_t)
        self.flush1         = DynRadioButton(self.flush_l,flush1_t)
        self.flush2         = DynRadioButton(self.flush_l,flush2_t)
        self.flush_l = [self.flush0,self.flush1,self.flush2]

        externalLB = urwid.ListBox([self.dhcp_header,
                                    self.dhcp0,self.dhcp2,self.dhcp3,self.dhcp1,
                                    self.dhcp4,
                                    _blank,
                                    self.wired_detect_header,
                                    self.wired0,self.wired1,self.wired2,
                                    _blank,
                                    self.flush_header,
                                    self.flush0,self.flush1,self.flush2
                                   ])


        #### Advanced settings
        self.wpa_cat      = urwid.Text(wpa_cat_t)
        self.wpa_cbox     = ComboBox(wpa_t)
        self.wpa_warn     = urwid.Text(wpa_warn_t)
        
        self.backend_cat  = urwid.Text(backend_cat_t)
        self.backend_cbox = ComboBox(backend_t)
        
        self.debug_cat           = urwid.Text(debug_cat_t)
        self.debug_mode_checkb   = urwid.CheckBox(debug_mode_t)

        self.wless_cat        = urwid.Text(wless_cat_t)
        self.use_dbm_checkb   = urwid.CheckBox(use_dbm_t)
        self.verify_ap_checkb = urwid.CheckBox(verify_ap_t)


        advancedLB = urwid.ListBox([self.wpa_cat,
                                    self.wpa_cbox,self.wpa_warn,_blank,
                                    self.backend_cat,
                                    self.backend_cbox,_blank,
                                    self.debug_cat,
                                    self.debug_mode_checkb, _blank,
                                    self.wless_cat,
                                    self.use_dbm_checkb, _blank,
                                    self.verify_ap_checkb, _blank
                                    ])


        headerList = [self.header0,self.header1,self.header2]
        lbList = [generalLB,externalLB,advancedLB]
        self.tab_map = {self.header0 : generalLB,
                        self.header1 : externalLB,
                        self.header2 : advancedLB}
        #self.load_settings()

        self.tabs = TabColumns(headerList,lbList,language['preferences'])
        self.__super.__init__(self.tabs)
コード例 #7
0
ファイル: prefs_curses.py プロジェクト: cbxbiker61/wicd
class PrefsDialog(urwid.WidgetWrap):
    def __init__(self, body, pos, ui, dbus=None):
        global daemon, wireless, wired

        daemon = dbus['daemon']
        wireless = dbus['wireless']
        wired = dbus['wired']

        width,height =  ui.get_cols_rows()
        height -= 3
        #width = 80
        #height = 20
        # Stuff that goes at the top

        header0_t = language["gen_settings"]
        header1_t = language["ext_programs"]
        header2_t = language["advanced_settings"]
        self.header0 = urwid.AttrWrap(SelText(header0_t), 'tab active', 'focus')
        self.header1 = urwid.AttrWrap(SelText(header1_t), 'body', 'focus')
        self.header2 = urwid.AttrWrap(SelText(header2_t), 'body', 'focus')
        title   = language['preferences']

        # Blank line
        _blank = urwid.Text('')

        ####
        #### Text in the widgets
        ####

        # General Settings
        net_cat_t           = ('header', language['network_interfaces'])
        wired_t             = ('editcp', language['wired_interface']+':   ')
        wless_t             = ('editcp', language['wireless_interface']+':')
        always_show_wired_t = language['wired_always_on']
        prefer_wired_t      = language['always_switch_to_wired']

        global_dns_cat_t = ('header', language['global_dns_servers'])
        global_dns_t     = ('editcp', language['use_global_dns'])
        dns_dom_t        = ('editcp', '    '+language['dns_domain']+':   ')
        search_dom_t     = ('editcp', '    '+language['search_domain']+':')
        dns1_t           = ('editcp', '    DNS server 1: ')
        dns2_t           = ('editcp', '    DNS server 2: ')
        dns3_t           = ('editcp', '    DNS server 3: ')


        wired_auto_cat_t= ('header', language['wired_autoconnect_settings'])
        wired_auto_1_t = language['use_default_profile']
        wired_auto_2_t = language['show_wired_list']
        wired_auto_3_t = language['use_last_used_profile']

        auto_reconn_cat_t = ('header', language['automatic_reconnection'])
        auto_reconn_t = language['auto_reconnect']

        #### External Programs
        automatic_t = language['wicd_auto_config']

        dhcp_header_t = ('header', language["dhcp_client"])
        # Automatic
        dhcp1_t  = 'dhclient'
        dhcp2_t  = 'dhcpcd'
        dhcp3_t  = 'pump'
        dhcp4_t  = 'udhcpc'

        wired_detect_header_t = ('header', language["wired_detect"])
        wired1_t              = 'ethtool'
        wired2_t              = 'mii-tool'

        flush_header_t = ('header', language["route_flush"])
        flush1_t           = 'ip'
        flush2_t           = 'route'
 
        #### Advanced Settings
        wpa_cat_t=('header', language['wpa_supplicant'])
        wpa_t=('editcp','Driver:')
        wpa_list = []
        wpa_warn_t = ('important', language['always_use_wext'])
        
        backend_cat_t = ('header', language['backend'])
        backend_t = language['backend']+':'
        backend_list = []
        
        debug_cat_t = ('header', language['debugging'])
        debug_mode_t = language['use_debug_mode']

        wless_cat_t = ('header', language['wireless_interface'])
        use_dbm_t = language['display_type_dialog']
        verify_ap_t = language['verify_ap_dialog']
        


        ####
        #### UI Widgets
        ####

        # General Settings
        self.net_cat    = urwid.Text(net_cat_t)
        self.wired_edit = urwid.AttrWrap(urwid.Edit(wired_t),'editbx','editfc')
        self.wless_edit = urwid.AttrWrap(urwid.Edit(wless_t),'editbx','editfc')
        self.prefer_wired_chkbx = urwid.CheckBox(prefer_wired_t)
        self.global_dns_cat = urwid.Text(global_dns_cat_t)
        # Default the global DNS settings to off.  They will be reenabled later
        # if so required.
        global_dns_state = False
        self.global_dns_checkb  = urwid.CheckBox(global_dns_t, global_dns_state,
                on_state_change=self.global_dns_trigger)
        self.search_dom = DynWrap(urwid.Edit(search_dom_t), global_dns_state)
        self.dns_dom    = DynWrap(urwid.Edit(dns_dom_t), global_dns_state)
        self.dns1       = DynWrap(urwid.Edit(dns1_t), global_dns_state)
        self.dns2       = DynWrap(urwid.Edit(dns2_t), global_dns_state)
        self.dns3       = DynWrap(urwid.Edit(dns3_t), global_dns_state)


        self.always_show_wired_checkb = urwid.CheckBox(always_show_wired_t)

        self.wired_auto_l  = []
        self.wired_auto_cat= urwid.Text(wired_auto_cat_t)
        self.wired_auto_1  = urwid.RadioButton(self.wired_auto_l,wired_auto_1_t)
        self.wired_auto_2  = urwid.RadioButton(self.wired_auto_l,wired_auto_2_t)
        self.wired_auto_3  = urwid.RadioButton(self.wired_auto_l,wired_auto_3_t)

        self.auto_reconn_cat    = urwid.Text(auto_reconn_cat_t)
        self.auto_reconn_checkb = urwid.CheckBox(auto_reconn_t)
        generalLB = urwid.ListBox([self.net_cat,
                                   self.wless_edit,#_blank,
                                   self.wired_edit,
                                   self.always_show_wired_checkb,
                                   self.prefer_wired_chkbx,_blank,
                                   self.global_dns_cat,
                                   self.global_dns_checkb,#_blank,
                                   self.search_dom,self.dns_dom,
                                   self.dns1,self.dns2,self.dns3,_blank,
                                   self.wired_auto_cat,
                                   self.wired_auto_1,
                                   self.wired_auto_2,
                                   self.wired_auto_3, _blank,
                                   self.auto_reconn_cat,
                                   self.auto_reconn_checkb
                                  ])

        #### External Programs tab
        automatic_t = language['wicd_auto_config']

        self.dhcp_header = urwid.Text(dhcp_header_t)
        self.dhcp_l = []

        # Order of these is flipped in the actual interface,
        # (2,3,1 -> dhcpcd, pump, dhclient), because dhclient often doesn't like
        # to work on several distros.
        self.dhcp0  = urwid.RadioButton(self.dhcp_l ,automatic_t)
        self.dhcp1  = DynRadioButton(self.dhcp_l, dhcp1_t)
        self.dhcp2  = DynRadioButton(self.dhcp_l, dhcp2_t)
        self.dhcp3  = DynRadioButton(self.dhcp_l, dhcp3_t)
        self.dhcp4  = DynRadioButton(self.dhcp_l, dhcp4_t)
        self.dhcp_l = [self.dhcp0,self.dhcp1,self.dhcp2,self.dhcp3,self.dhcp4]

        self.wired_l = []
        self.wired_detect_header = urwid.Text(wired_detect_header_t)
        self.wired0         = urwid.RadioButton(self.wired_l, automatic_t)
        self.wired1         = DynRadioButton(self.wired_l, wired1_t)
        self.wired2         = DynRadioButton(self.wired_l, wired2_t)
        self.wired_l = [self.wired0, self.wired1, self.wired2]

        self.flush_l = []
        self.flush_header   = urwid.Text(flush_header_t)
        self.flush0         = urwid.RadioButton(self.flush_l,automatic_t)
        self.flush1         = DynRadioButton(self.flush_l,flush1_t)
        self.flush2         = DynRadioButton(self.flush_l,flush2_t)
        self.flush_l = [self.flush0,self.flush1,self.flush2]

        externalLB = urwid.ListBox([self.dhcp_header,
                                    self.dhcp0,self.dhcp2,self.dhcp3,self.dhcp1,
                                    self.dhcp4,
                                    _blank,
                                    self.wired_detect_header,
                                    self.wired0,self.wired1,self.wired2,
                                    _blank,
                                    self.flush_header,
                                    self.flush0,self.flush1,self.flush2
                                   ])


        #### Advanced settings
        self.wpa_cat      = urwid.Text(wpa_cat_t)
        self.wpa_cbox     = ComboBox(wpa_t)
        self.wpa_warn     = urwid.Text(wpa_warn_t)
        
        self.backend_cat  = urwid.Text(backend_cat_t)
        self.backend_cbox = ComboBox(backend_t)
        
        self.debug_cat           = urwid.Text(debug_cat_t)
        self.debug_mode_checkb   = urwid.CheckBox(debug_mode_t)

        self.wless_cat        = urwid.Text(wless_cat_t)
        self.use_dbm_checkb   = urwid.CheckBox(use_dbm_t)
        self.verify_ap_checkb = urwid.CheckBox(verify_ap_t)


        advancedLB = urwid.ListBox([self.wpa_cat,
                                    self.wpa_cbox,self.wpa_warn,_blank,
                                    self.backend_cat,
                                    self.backend_cbox,_blank,
                                    self.debug_cat,
                                    self.debug_mode_checkb, _blank,
                                    self.wless_cat,
                                    self.use_dbm_checkb, _blank,
                                    self.verify_ap_checkb, _blank
                                    ])


        headerList = [self.header0,self.header1,self.header2]
        lbList = [generalLB,externalLB,advancedLB]
        self.tab_map = {self.header0 : generalLB,
                        self.header1 : externalLB,
                        self.header2 : advancedLB}
        #self.load_settings()

        self.tabs = TabColumns(headerList,lbList,language['preferences'])
        self.__super.__init__(self.tabs)
        
    def load_settings(self):

        ### General Settings
        # ComboBox does not like dbus.Strings as text markups.  My fault. :/
        wless_iface = unicode(daemon.GetWirelessInterface())
        wired_iface = unicode(daemon.GetWiredInterface())
        self.wless_edit.set_edit_text(wless_iface)
        self.wired_edit.set_edit_text(wired_iface)

        self.always_show_wired_checkb.set_state(
                daemon.GetAlwaysShowWiredInterface())
        self.prefer_wired_chkbx.set_state(daemon.GetPreferWiredNetwork())
        # DNS
        self.global_dns_checkb.set_state(daemon.GetUseGlobalDNS())
        theDNS = daemon.GetGlobalDNSAddresses()

        i = 0
        for w in self.dns1,self.dns2,self.dns3,self.dns_dom,self.search_dom :
            w.set_edit_text(misc.noneToBlankString(theDNS[i]))
            i+=1

        # Wired Automatic Connection
        self.wired_auto_l[daemon.GetWiredAutoConnectMethod()-1]
        self.auto_reconn_checkb.set_state(daemon.GetAutoReconnect())

        def find_avail(apps):
            for app in apps[1:]:
                app.set_sensitive(daemon.GetAppAvailable(app.get_label()))

        ### External Programs
        find_avail(self.dhcp_l)
        dhcp_method = daemon.GetDHCPClient()
        self.dhcp_l[dhcp_method].set_state(True)
        
        find_avail(self.wired_l)
        wired_link_method = daemon.GetLinkDetectionTool()
        self.wired_l[wired_link_method].set_state(True)

        find_avail(self.flush_l)
        flush_method = daemon.GetFlushTool()
        self.flush_l[flush_method].set_state(True)

        ### Advanced settings
        # wpa_supplicant janx
        self.wpadrivers = wireless.GetWpaSupplicantDrivers()
        self.wpadrivers.append("ralink_legacy")
        # Same as above with the dbus.String
        self.thedrivers = [unicode(w) for w in self.wpadrivers]
        self.wpa_cbox.set_list(self.thedrivers)
        
        # Pick where to begin first:
        def_driver = daemon.GetWPADriver()
        try:
            self.wpa_cbox.set_focus(self.wpadrivers.index(def_driver))
        except ValueError:
            pass # It defaults to 0 anyway (I hope)

        self.backends = daemon.GetBackendList()
        self.thebackends= [unicode(w) for w in self.backends]
        self.backend_cbox.set_list(self.thebackends) 
        cur_backend = daemon.GetSavedBackend()
        try:
            self.backend_cbox.set_focus(self.thebackends.index(cur_backend))
        except ValueError:
            self.backend_cbox.set_focus(0)

        # Three last checkboxes
        self.debug_mode_checkb.set_state(daemon.GetDebugMode())
        self.use_dbm_checkb.set_state(daemon.GetSignalDisplayType())
        self.verify_ap_checkb.set_state(daemon.GetShouldVerifyAp())

    def save_settings(self):
        """ Pushes the selected settings to the daemon.
            This exact order is found in prefs.py"""
        daemon.SetUseGlobalDNS(self.global_dns_checkb.get_state())

        for i in [self.dns1, self.dns2,
                  self.dns3,self.dns_dom, self.search_dom, self.dns_dom]:
            i.set_edit_text(i.get_edit_text().strip())

        daemon.SetGlobalDNS(self.dns1.get_edit_text(), self.dns2.get_edit_text(),
                            self.dns3.get_edit_text(), self.dns_dom.get_edit_text(),
                            self.search_dom.get_edit_text())
        daemon.SetWirelessInterface(self.wless_edit.get_edit_text())
        daemon.SetWiredInterface(self.wired_edit.get_edit_text())
        daemon.SetWPADriver(self.wpadrivers[self.wpa_cbox.get_focus()[1]])
        daemon.SetAlwaysShowWiredInterface(self.always_show_wired_checkb.get_state())
        daemon.SetAutoReconnect(self.auto_reconn_checkb.get_state())
        daemon.SetDebugMode(self.debug_mode_checkb.get_state())
        daemon.SetSignalDisplayType(int(self.use_dbm_checkb.get_state()))
        daemon.SetShouldVerifyAp(int(self.verify_ap_checkb.get_state()))
        daemon.SetPreferWiredNetwork(bool(self.prefer_wired_chkbx.get_state()))
        if self.wired_auto_2.get_state():
            daemon.SetWiredAutoConnectMethod(2)
        elif self.wired_auto_3.get_state():
            daemon.SetWiredAutoConnectMethod(3)
        else:
            daemon.SetWiredAutoConnectMethod(1)

        daemon.SetBackend(self.backends[self.backend_cbox.get_focus()[1]])
            
        # External Programs Tab
        if self.dhcp0.get_state():
            dhcp_client = misc.AUTO
        elif self.dhcp1.get_state():
            dhcp_client = misc.DHCLIENT
        elif self.dhcp2.get_state():
            dhcp_client = misc.DHCPCD
        elif self.dhcp3.get_state():
            dhcp_client = misc.PUMP
        else:
            dhcp_client = misc.UDHCPC
        daemon.SetDHCPClient(dhcp_client)
        
        if self.wired0.get_state():
            link_tool = misc.AUTO
        elif self.wired1.get_state():
            link_tool = misc.ETHTOOL
        else:
            link_tool = misc.MIITOOL
        daemon.SetLinkDetectionTool(link_tool)
        
        if self.flush0.get_state():
            flush_tool = misc.AUTO
        elif self.flush1.get_state():
            flush_tool = misc.IP
        else:
            flush_tool = misc.ROUTE
        daemon.SetFlushTool(flush_tool)

    # DNS CheckBox callback
    def global_dns_trigger(self,check_box,new_state,user_data=None):
        for w in self.dns1,self.dns2,self.dns3,self.dns_dom,self.search_dom:
            w.set_sensitive(new_state)

    def ready_widgets(self,ui,body):
        self.wpa_cbox.build_combobox(body,ui,4)
        self.backend_cbox.build_combobox(body,ui,8)
コード例 #8
0
class AdvancedSettingsDialog(urwid.WidgetWrap):
    def __init__(self):
        self.ui=None

        static_ip_t = _('Use Static IPs')
        ip_t        = ('editcp',_('IP')+':     ')
        netmask_t   = ('editcp',_('Netmask')+':')
        gateway_t   = ('editcp',_('Gateway')+':')

        use_static_dns_t = _('Use Static DNS')
        use_global_dns_t = _('Use global DNS servers')
        dns_dom_t    = ('editcp',_('DNS domain')+':   ')
        search_dom_t = ('editcp',_('Search domain')+':')
        dns1_t       = ('editcp',_('DNS server')+ ' 1'+':'+' '*8)
        dns2_t       = ('editcp',_('DNS server')+ ' 2'+':'+' '*8)
        dns3_t       = ('editcp',_('DNS server')+ ' 3'+':'+' '*8)
        
        use_dhcp_h_t = _('Use DHCP Hostname')
        dhcp_h_t     = ('editcp',_('DHCP Hostname')+': ')
        
        cancel_t = _('Cancel')
        ok_t = _('OK')
        
        self.static_ip_cb = urwid.CheckBox(static_ip_t,
                on_state_change=self.static_ip_toggle)
        self.ip_edit      = DynWrap(urwid.Edit(ip_t),False)
        self.netmask_edit = DynWrap(urwid.Edit(netmask_t),False)
        self.gateway_edit = DynWrap(urwid.Edit(gateway_t),False)


        self.static_dns_cb = DynWrap(urwid.CheckBox(use_static_dns_t,
                on_state_change=self.dns_toggle),True,('body','editnfc'),None)
        self.global_dns_cb = DynWrap(urwid.CheckBox(use_global_dns_t,
                on_state_change=self.dns_toggle),False,('body','editnfc'),None)
        self.checkb_cols = urwid.Columns([self.static_dns_cb,
                                     self.global_dns_cb])
        self.dns_dom_edit      = DynWrap(urwid.Edit(dns_dom_t)   ,False)
        self.search_dom_edit   = DynWrap(urwid.Edit(search_dom_t),False)
        self.dns1              = DynWrap(urwid.Edit(dns1_t)      ,False)
        self.dns2              = DynWrap(urwid.Edit(dns2_t)      ,False)
        self.dns3              = DynWrap(urwid.Edit(dns3_t)      ,False)

        self.use_dhcp_h        = urwid.CheckBox(use_dhcp_h_t,False,on_state_change=self.use_dhcp_h_toggle)
        self.dhcp_h            = DynWrap(urwid.Edit(dhcp_h_t),False)

        _blank = urwid.Text('')

        walker = urwid.SimpleListWalker([self.static_ip_cb,
                                         self.ip_edit,
                                         self.netmask_edit,
                                         self.gateway_edit,
                                         _blank,
                                         self.checkb_cols,
                                         self.dns_dom_edit,self.search_dom_edit,
                                         self.dns1,self.dns2,self.dns3,
                                         _blank,
                                         self.use_dhcp_h,
                                         self.dhcp_h,
                                         _blank
                                        ])



        self._listbox = urwid.ListBox(walker)
        self._frame = urwid.Frame(self._listbox)
        self.__super.__init__(self._frame)
    
    def use_dhcp_h_toggle(self,checkb,new_state,user_data=None):
        self.dhcp_h.set_sensitive(new_state)

    def static_ip_toggle(self,checkb,new_state,user_data=None):
        for w in [ self.ip_edit,self.netmask_edit,self.gateway_edit ]:
            w.set_sensitive(new_state)
        self.static_dns_cb.set_state(new_state)
        self.static_dns_cb.set_sensitive(not new_state)
        if new_state:
            self.checkb_cols.set_focus(self.global_dns_cb)
        else:
            self.checkb_cols.set_focus(self.static_dns_cb)

        
    def dns_toggle(self,checkb,new_state,user_data=None):
        if checkb == self.static_dns_cb.get_w():
            for w in [ self.dns_dom_edit,self.search_dom_edit,
                    self.dns1,self.dns2,self.dns3 ]:
                w.set_sensitive(new_state)
            if not new_state:
                self.global_dns_cb.set_state(False,do_callback=False)
            self.global_dns_cb.set_sensitive(new_state)
        # use_global_dns_cb is DynWrapped
        if checkb == self.global_dns_cb.get_w():
            for w in [self.dns_dom_edit,self.search_dom_edit,
                    self.dns1,self.dns2,self.dns3 ]:
                w.set_sensitive(not new_state)

    # Code totally yanked from netentry.py
    def save_settings(self):
        """ Save settings common to wired and wireless settings dialogs. """
        if self.static_ip_cb.get_state():
            for i in [self.ip_edit,self.netmask_edit,self.gateway_edit]:
                i.set_edit_text(i.get_edit_text().strip())

            self.set_net_prop("ip", noneToString(self.ip_edit.get_edit_text()))
            self.set_net_prop("netmask", noneToString(self.netmask_edit.get_edit_text()))
            self.set_net_prop("gateway", noneToString(self.gateway_edit.get_edit_text()))
        else:
            self.set_net_prop("ip", '')
            self.set_net_prop("netmask", '')
            self.set_net_prop("gateway", '')

        if self.static_dns_cb.get_state() and \
           not self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', False)
            # Strip addressses before checking them in the daemon.
            for i in [self.dns1, self.dns2,
                      self.dns3,self.dns_dom_edit, self.search_dom_edit]:
                i.set_edit_text(i.get_edit_text().strip())
            self.set_net_prop('dns_domain', noneToString(self.dns_dom_edit.get_edit_text()))
            self.set_net_prop("search_domain", noneToString(self.search_dom_edit.get_edit_text()))
            self.set_net_prop("dns1", noneToString(self.dns1.get_edit_text()))
            self.set_net_prop("dns2", noneToString(self.dns2.get_edit_text()))
            self.set_net_prop("dns3", noneToString(self.dns3.get_edit_text()))
        elif self.static_dns_cb.get_state() and \
             self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', True)
        else:
            self.set_net_prop('use_static_dns', False)
            self.set_net_prop('use_global_dns', False)
            self.set_net_prop('dns_domain', '')
            self.set_net_prop("search_domain", '')
            self.set_net_prop("dns1", '')
            self.set_net_prop("dns2", '')
            self.set_net_prop("dns3", '')
        self.set_net_prop('dhcphostname',self.dhcp_h.get_edit_text())
        self.set_net_prop('usedhcphostname',self.use_dhcp_h.get_state())
    # Prevent comboboxes from dying.
    def ready_widgets(self,ui,body):
        pass
コード例 #9
0
ファイル: prefs_curses.py プロジェクト: adiabuk/arch-tf701t
    def __init__(self, body, pos, ui, dbus=None):
        global daemon, wireless, wired

        self.thebackends = None
        self.backends = None
        self.wpadrivers = None
        self.thedrivers = None

        daemon = dbus['daemon']
        wireless = dbus['wireless']
        wired = dbus['wired']

        width, height = ui.get_cols_rows()
        height -= 3
        #width = 80
        #height = 20
        # Stuff that goes at the top

        header0_t = _('General Settings')
        header1_t = _('External Programs')
        header2_t = _('Advanced Settings')
        self.header0 = urwid.AttrWrap(SelText(header0_t), 'tab active', 'focus')
        self.header1 = urwid.AttrWrap(SelText(header1_t), 'body', 'focus')
        self.header2 = urwid.AttrWrap(SelText(header2_t), 'body', 'focus')
        title = ('Preferences')

        # Blank line
        _blank = urwid.Text('')

        ####
        #### Text in the widgets
        ####

        # General Settings
        net_cat_t = ('header', ('Network Interfaces'))
        wired_t = ('editcp', ('Wired Interface') + ':   ')
        wless_t = ('editcp', ('Wireless Interface') + ':')
        always_show_wired_t = _('Always show wired interface')
        prefer_wired_t = _('Always switch to wired connection when available')

        global_dns_cat_t = ('header', _('Global DNS servers'))
        global_dns_t = ('editcp', _('Use global DNS servers'))
        dns_dom_t = ('editcp', '    ' + _('DNS domain') + ':   ')
        search_dom_t = ('editcp', '    ' + _('Search domain') + ':')
        dns1_t = ('editcp', '    ' + _('DNS server') + ' 1: ')
        dns2_t = ('editcp', '    ' + _('DNS server') + ' 2: ')
        dns3_t = ('editcp', '    ' + _('DNS server') + ' 3: ')

        wired_auto_cat_t = ('header', _('Wired Autoconnect Settings'))
        wired_auto_1_t = _('Use default profile on wired autoconnect')
        wired_auto_2_t = _('Prompt for profile on wired autoconnect')
        wired_auto_3_t = _('Use last used profile on wired autoconnect')

        auto_reconn_cat_t = ('header', _('Automatic Reconnection'))
        auto_reconn_t = _('Automatically reconnect on connection loss')

        #### External Programs
        automatic_t = _('Automatic (recommended)')

        dhcp_header_t = ('header', _('DHCP Client'))
        # Automatic
        dhcp1_t = 'dhclient'
        dhcp2_t = 'dhcpcd'
        dhcp3_t = 'pump'
        dhcp4_t = 'udhcpc'

        wired_detect_header_t = ('header', _('Wired Link Detection'))
        wired1_t = 'ethtool'
        wired2_t = 'mii-tool'

        flush_header_t = ('header', _('Route Table Flushing'))
        flush1_t = 'ip'
        flush2_t = 'route'

        #### Advanced Settings
        wpa_cat_t = ('header', _('WPA Supplicant'))
        wpa_t = ('editcp', 'Driver:')
        wpa_list = []
        wpa_warn_t = ('important',
            _('You should almost always use wext as the WPA supplicant driver'))

        backend_cat_t = ('header', _('Backend'))
        backend_t = _('Backend') + ':'
        backend_list = []

        debug_cat_t = ('header', _('Debugging'))
        debug_mode_t = _('Enable debug mode')

        wless_cat_t = ('header', _('Wireless Interface'))
        use_dbm_t = _('Use dBm to measure signal strength')
        verify_ap_t = \
            _('Ping static gateways after connecting to verify association')

        ####
        #### UI Widgets
        ####

        # General Settings
        self.net_cat = urwid.Text(net_cat_t)
        self.wired_edit = \
            urwid.AttrWrap(urwid.Edit(wired_t), 'editbx', 'editfc')
        self.wless_edit = \
            urwid.AttrWrap(urwid.Edit(wless_t), 'editbx', 'editfc')
        self.prefer_wired_chkbx = urwid.CheckBox(prefer_wired_t)
        self.global_dns_cat = urwid.Text(global_dns_cat_t)
        # Default the global DNS settings to off.  They will be reenabled later
        # if so required.
        global_dns_state = False
        self.global_dns_checkb = urwid.CheckBox(global_dns_t,
             global_dns_state,
            on_state_change=self.global_dns_trigger
        )
        self.search_dom = DynWrap(urwid.Edit(search_dom_t), global_dns_state)
        self.dns_dom = DynWrap(urwid.Edit(dns_dom_t), global_dns_state)
        self.dns1 = DynWrap(urwid.Edit(dns1_t), global_dns_state)
        self.dns2 = DynWrap(urwid.Edit(dns2_t), global_dns_state)
        self.dns3 = DynWrap(urwid.Edit(dns3_t), global_dns_state)

        self.always_show_wired_checkb = urwid.CheckBox(always_show_wired_t)

        self.wired_auto_l = []
        self.wired_auto_cat = urwid.Text(wired_auto_cat_t)
        self.wired_auto_1 = urwid.RadioButton(self.wired_auto_l, wired_auto_1_t)
        self.wired_auto_2 = urwid.RadioButton(self.wired_auto_l, wired_auto_2_t)
        self.wired_auto_3 = urwid.RadioButton(self.wired_auto_l, wired_auto_3_t)

        self.auto_reconn_cat = urwid.Text(auto_reconn_cat_t)
        self.auto_reconn_checkb = urwid.CheckBox(auto_reconn_t)
        generalLB = urwid.ListBox([
            self.net_cat,
            self.wless_edit,  # _blank,
            self.wired_edit,
            self.always_show_wired_checkb,
            self.prefer_wired_chkbx, _blank,
            self.global_dns_cat,
            self.global_dns_checkb,  # _blank,
            self.search_dom, self.dns_dom,
            self.dns1, self.dns2, self.dns3, _blank,
            self.wired_auto_cat,
            self.wired_auto_1,
            self.wired_auto_2,
            self.wired_auto_3, _blank,
            self.auto_reconn_cat,
            self.auto_reconn_checkb
        ])

        #### External Programs tab
        automatic_t = _('Automatic (recommended)')

        self.dhcp_header = urwid.Text(dhcp_header_t)
        self.dhcp_l = []

        # Order of these is flipped in the actual interface,
        # (2, 3, 1 -> dhcpcd, pump, dhclient), because dhclient often doesn't
        # like to work on several distros.
        self.dhcp0 = urwid.RadioButton(self.dhcp_l, automatic_t)
        self.dhcp1 = DynRadioButton(self.dhcp_l, dhcp1_t)
        self.dhcp2 = DynRadioButton(self.dhcp_l, dhcp2_t)
        self.dhcp3 = DynRadioButton(self.dhcp_l, dhcp3_t)
        self.dhcp4 = DynRadioButton(self.dhcp_l, dhcp4_t)
        self.dhcp_l = [
            self.dhcp0, self.dhcp1, self.dhcp2, self.dhcp3, self.dhcp4
        ]

        self.wired_l = []
        self.wired_detect_header = urwid.Text(wired_detect_header_t)
        self.wired0 = urwid.RadioButton(self.wired_l, automatic_t)
        self.wired1 = DynRadioButton(self.wired_l, wired1_t)
        self.wired2 = DynRadioButton(self.wired_l, wired2_t)
        self.wired_l = [self.wired0, self.wired1, self.wired2]

        self.flush_l = []
        self.flush_header = urwid.Text(flush_header_t)
        self.flush0 = urwid.RadioButton(self.flush_l, automatic_t)
        self.flush1 = DynRadioButton(self.flush_l, flush1_t)
        self.flush2 = DynRadioButton(self.flush_l, flush2_t)
        self.flush_l = [self.flush0, self.flush1, self.flush2]

        externalLB = urwid.ListBox([
            self.dhcp_header,
            self.dhcp0, self.dhcp2, self.dhcp3, self.dhcp1, self.dhcp4,
            _blank,
            self.wired_detect_header,
            self.wired0, self.wired1, self.wired2,
            _blank,
            self.flush_header,
            self.flush0, self.flush1, self.flush2
        ])

        #### Advanced settings
        self.wpa_cat = urwid.Text(wpa_cat_t)
        self.wpa_cbox = ComboBox(wpa_t)
        self.wpa_warn = urwid.Text(wpa_warn_t)

        self.backend_cat = urwid.Text(backend_cat_t)
        self.backend_cbox = ComboBox(backend_t)

        self.debug_cat = urwid.Text(debug_cat_t)
        self.debug_mode_checkb = urwid.CheckBox(debug_mode_t)

        self.wless_cat = urwid.Text(wless_cat_t)
        self.use_dbm_checkb = urwid.CheckBox(use_dbm_t)
        self.verify_ap_checkb = urwid.CheckBox(verify_ap_t)

        advancedLB = urwid.ListBox([
            self.wpa_cat,
            self.wpa_cbox, self.wpa_warn, _blank,
            self.backend_cat,
            self.backend_cbox, _blank,
            self.debug_cat,
            self.debug_mode_checkb, _blank,
            self.wless_cat,
            self.use_dbm_checkb, _blank,
            self.verify_ap_checkb, _blank
        ])

        headerList = [self.header0, self.header1, self.header2]
        lbList = [generalLB, externalLB, advancedLB]
        self.tab_map = {
            self.header0: generalLB,
            self.header1: externalLB,
            self.header2: advancedLB
        }
        #self.load_settings()

        self.tabs = TabColumns(headerList, lbList, _('Preferences'))
        # pylint: disable-msg=E1101
        self.__super.__init__(self.tabs)
コード例 #10
0
ファイル: netentry_curses.py プロジェクト: cdanyang/wicd
    def __init__(self):
        self.ui=None

        static_ip_t = language['use_static_ip']
        ip_t        = ('editcp',language['ip']+':     ')
        netmask_t   = ('editcp',language['netmask']+':')
        gateway_t   = ('editcp',language['gateway']+':')

        use_static_dns_t = language['use_static_dns']
        use_global_dns_t = language['use_global_dns']
        dns_dom_t    = ('editcp',language['dns_domain']+':   ')
        search_dom_t = ('editcp',language['search_domain']+':')
        dns1_t       = ('editcp',language['dns']+ ' 1'+':'+' '*8)
        dns2_t       = ('editcp',language['dns']+ ' 2'+':'+' '*8)
        dns3_t       = ('editcp',language['dns']+ ' 3'+':'+' '*8)
        
        use_dhcp_h_t = ("Use DHCP Hostname")
        dhcp_h_t     = ('editcp',"DHCP Hostname: ")
        
        cancel_t = 'Cancel'
        ok_t = 'OK'
        
        self.static_ip_cb = urwid.CheckBox(static_ip_t,
                on_state_change=self.static_ip_toggle)
        self.ip_edit      = DynWrap(urwid.Edit(ip_t),False)
        self.netmask_edit = DynWrap(urwid.Edit(netmask_t),False)
        self.gateway_edit = DynWrap(urwid.Edit(gateway_t),False)


        self.static_dns_cb = DynWrap(urwid.CheckBox(use_static_dns_t,
                on_state_change=self.dns_toggle),True,('body','editnfc'),None)
        self.global_dns_cb = DynWrap(urwid.CheckBox(use_global_dns_t,
                on_state_change=self.dns_toggle),False,('body','editnfc'),None)
        self.checkb_cols = urwid.Columns([self.static_dns_cb,
                                     self.global_dns_cb])
        self.dns_dom_edit      = DynWrap(urwid.Edit(dns_dom_t)   ,False)
        self.search_dom_edit   = DynWrap(urwid.Edit(search_dom_t),False)
        self.dns1              = DynWrap(urwid.Edit(dns1_t)      ,False)
        self.dns2              = DynWrap(urwid.Edit(dns2_t)      ,False)
        self.dns3              = DynWrap(urwid.Edit(dns3_t)      ,False)

        self.use_dhcp_h        = urwid.CheckBox(use_dhcp_h_t,False,on_state_change=self.use_dhcp_h_toggle)
        self.dhcp_h            = DynWrap(urwid.Edit(dhcp_h_t),False)

        _blank = urwid.Text('')

        walker = urwid.SimpleListWalker([self.static_ip_cb,
                                         self.ip_edit,
                                         self.netmask_edit,
                                         self.gateway_edit,
                                         _blank,
                                         self.checkb_cols,
                                         self.dns_dom_edit,self.search_dom_edit,
                                         self.dns1,self.dns2,self.dns3,
                                         _blank,
                                         self.use_dhcp_h,
                                         self.dhcp_h,
                                         _blank
                                        ])



        self._listbox = urwid.ListBox(walker)
        self._frame = urwid.Frame(self._listbox)
        self.__super.__init__(self._frame)
コード例 #11
0
ファイル: netentry_curses.py プロジェクト: cdanyang/wicd
class AdvancedSettingsDialog(urwid.WidgetWrap):
    def __init__(self):
        self.ui=None

        static_ip_t = language['use_static_ip']
        ip_t        = ('editcp',language['ip']+':     ')
        netmask_t   = ('editcp',language['netmask']+':')
        gateway_t   = ('editcp',language['gateway']+':')

        use_static_dns_t = language['use_static_dns']
        use_global_dns_t = language['use_global_dns']
        dns_dom_t    = ('editcp',language['dns_domain']+':   ')
        search_dom_t = ('editcp',language['search_domain']+':')
        dns1_t       = ('editcp',language['dns']+ ' 1'+':'+' '*8)
        dns2_t       = ('editcp',language['dns']+ ' 2'+':'+' '*8)
        dns3_t       = ('editcp',language['dns']+ ' 3'+':'+' '*8)
        
        use_dhcp_h_t = ("Use DHCP Hostname")
        dhcp_h_t     = ('editcp',"DHCP Hostname: ")
        
        cancel_t = 'Cancel'
        ok_t = 'OK'
        
        self.static_ip_cb = urwid.CheckBox(static_ip_t,
                on_state_change=self.static_ip_toggle)
        self.ip_edit      = DynWrap(urwid.Edit(ip_t),False)
        self.netmask_edit = DynWrap(urwid.Edit(netmask_t),False)
        self.gateway_edit = DynWrap(urwid.Edit(gateway_t),False)


        self.static_dns_cb = DynWrap(urwid.CheckBox(use_static_dns_t,
                on_state_change=self.dns_toggle),True,('body','editnfc'),None)
        self.global_dns_cb = DynWrap(urwid.CheckBox(use_global_dns_t,
                on_state_change=self.dns_toggle),False,('body','editnfc'),None)
        self.checkb_cols = urwid.Columns([self.static_dns_cb,
                                     self.global_dns_cb])
        self.dns_dom_edit      = DynWrap(urwid.Edit(dns_dom_t)   ,False)
        self.search_dom_edit   = DynWrap(urwid.Edit(search_dom_t),False)
        self.dns1              = DynWrap(urwid.Edit(dns1_t)      ,False)
        self.dns2              = DynWrap(urwid.Edit(dns2_t)      ,False)
        self.dns3              = DynWrap(urwid.Edit(dns3_t)      ,False)

        self.use_dhcp_h        = urwid.CheckBox(use_dhcp_h_t,False,on_state_change=self.use_dhcp_h_toggle)
        self.dhcp_h            = DynWrap(urwid.Edit(dhcp_h_t),False)

        _blank = urwid.Text('')

        walker = urwid.SimpleListWalker([self.static_ip_cb,
                                         self.ip_edit,
                                         self.netmask_edit,
                                         self.gateway_edit,
                                         _blank,
                                         self.checkb_cols,
                                         self.dns_dom_edit,self.search_dom_edit,
                                         self.dns1,self.dns2,self.dns3,
                                         _blank,
                                         self.use_dhcp_h,
                                         self.dhcp_h,
                                         _blank
                                        ])



        self._listbox = urwid.ListBox(walker)
        self._frame = urwid.Frame(self._listbox)
        self.__super.__init__(self._frame)
    
    def use_dhcp_h_toggle(self,checkb,new_state,user_data=None):
        self.dhcp_h.set_sensitive(new_state)

    def static_ip_toggle(self,checkb,new_state,user_data=None):
        for w in [ self.ip_edit,self.netmask_edit,self.gateway_edit ]:
            w.set_sensitive(new_state)
        self.static_dns_cb.set_state(new_state)
        self.static_dns_cb.set_sensitive(not new_state)
        if new_state:
            self.checkb_cols.set_focus(self.global_dns_cb)
        else:
            self.checkb_cols.set_focus(self.static_dns_cb)

        
    def dns_toggle(self,checkb,new_state,user_data=None):
        if checkb == self.static_dns_cb.get_w():
            for w in [ self.dns_dom_edit,self.search_dom_edit,
                    self.dns1,self.dns2,self.dns3 ]:
                w.set_sensitive(new_state)
            if not new_state:
                self.global_dns_cb.set_state(False,do_callback=False)
            self.global_dns_cb.set_sensitive(new_state)
        # use_global_dns_cb is DynWrapped
        if checkb == self.global_dns_cb.get_w():
            for w in [self.dns_dom_edit,self.search_dom_edit,
                    self.dns1,self.dns2,self.dns3 ]:
                w.set_sensitive(not new_state)

    # Code totally yanked from netentry.py
    def save_settings(self):
        """ Save settings common to wired and wireless settings dialogs. """
        if self.static_ip_cb.get_state():
            for i in [self.ip_edit,self.netmask_edit,self.gateway_edit]:
                i.set_edit_text(i.get_edit_text().strip())

            self.set_net_prop("ip", noneToString(self.ip_edit.get_edit_text()))
            self.set_net_prop("netmask", noneToString(self.netmask_edit.get_edit_text()))
            self.set_net_prop("gateway", noneToString(self.gateway_edit.get_edit_text()))
        else:
            self.set_net_prop("ip", '')
            self.set_net_prop("netmask", '')
            self.set_net_prop("gateway", '')

        if self.static_dns_cb.get_state() and \
           not self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', False)
            # Strip addressses before checking them in the daemon.
            for i in [self.dns1, self.dns2,
                      self.dns3,self.dns_dom_edit, self.search_dom_edit]:
                i.set_edit_text(i.get_edit_text().strip())
            self.set_net_prop('dns_domain', noneToString(self.dns_dom_edit.get_edit_text()))
            self.set_net_prop("search_domain", noneToString(self.search_dom_edit.get_edit_text()))
            self.set_net_prop("dns1", noneToString(self.dns1.get_edit_text()))
            self.set_net_prop("dns2", noneToString(self.dns2.get_edit_text()))
            self.set_net_prop("dns3", noneToString(self.dns3.get_edit_text()))
        elif self.static_dns_cb.get_state() and \
             self.global_dns_cb.get_state():
            self.set_net_prop('use_static_dns', True)
            self.set_net_prop('use_global_dns', True)
        else:
            self.set_net_prop('use_static_dns', False)
            self.set_net_prop('use_global_dns', False)
            self.set_net_prop('dns_domain', '')
            self.set_net_prop("search_domain", '')
            self.set_net_prop("dns1", '')
            self.set_net_prop("dns2", '')
            self.set_net_prop("dns3", '')
        self.set_net_prop('dhcphostname',self.dhcp_h.get_edit_text())
        self.set_net_prop('usedhcphostname',self.use_dhcp_h.get_state())
    # Prevent comboboxes from dying.
    def ready_widgets(self,ui,body):
        pass