From afaa5f77dd01948a27575602cf5c655d025990b9 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Thu, 11 Sep 2008 09:28:47 +0000 Subject: CP: clear network configuration #7480 (dsd, erikg, scott, marco, erikos, eben) --- diff --git a/src/controlpanel/model/network.py b/src/controlpanel/model/network.py index c3bc6f6..cbe0473 100644 --- a/src/controlpanel/model/network.py +++ b/src/controlpanel/model/network.py @@ -19,6 +19,7 @@ import dbus from gettext import gettext as _ from sugar import profile +from hardware import hardwaremanager NM_SERVICE_NAME = 'org.freedesktop.NetworkManager' NM_SERVICE_PATH = '/org/freedesktop/NetworkManager' @@ -89,3 +90,12 @@ def clear_registration(): pro.backup1 = None pro.save() return 1 + +def clear_networks(): + """Clear saved passwords and network configurations. + """ + network_manager = hardwaremanager.get_network_manager() + if not network_manager: + return + network_manager.nminfo.delete_all_networks() + return 1 diff --git a/src/controlpanel/view/network.py b/src/controlpanel/view/network.py index 8d3f382..2b19656 100644 --- a/src/controlpanel/view/network.py +++ b/src/controlpanel/view/network.py @@ -38,6 +38,7 @@ class Network(SectionView): self._radio_valid = True self._jabber_change_handler = None self._radio_change_handler = None + self._network_configuration_reset_handler = None self.set_border_width(style.DEFAULT_SPACING * 2) self.set_spacing(style.DEFAULT_SPACING) @@ -57,33 +58,51 @@ class Network(SectionView): box_wireless = gtk.VBox() box_wireless.set_border_width(style.DEFAULT_SPACING * 2) box_wireless.set_spacing(style.DEFAULT_SPACING) + + radio_info = gtk.Label(_("Turn of the wireless radio to save " + "battery life")) + radio_info.set_alignment(0, 0) + radio_info.set_line_wrap(True) + radio_info.show() + box_wireless.pack_start(radio_info, expand=False) + box_radio = gtk.HBox(spacing=style.DEFAULT_SPACING) - label_radio = gtk.Label(_('Radio:')) - label_radio.set_alignment(1, 0.5) - label_radio.modify_fg(gtk.STATE_NORMAL, - style.COLOR_SELECTION_GREY.get_gdk_color()) - box_radio.pack_start(label_radio, expand=False) - group.add_widget(label_radio) - label_radio.show() self._button = gtk.CheckButton() self._button.set_alignment(0, 0) box_radio.pack_start(self._button, expand=False) self._button.show() + + label_radio = gtk.Label(_('Radio')) + label_radio.set_alignment(0, 0.5) + box_radio.pack_start(label_radio, expand=False) + label_radio.show() + box_wireless.pack_start(box_radio, expand=False) box_radio.show() self._radio_alert = InlineAlert() - label_radio_error = gtk.Label() - group.add_widget(label_radio_error) - self._radio_alert_box.pack_start(label_radio_error, expand=False) - label_radio_error.show() self._radio_alert_box.pack_start(self._radio_alert, expand=False) - box_wireless.pack_end(self._radio_alert_box, expand=False) + box_radio.pack_end(self._radio_alert_box, expand=False) self._radio_alert_box.show() if 'radio' in self.restart_alerts: self._radio_alert.props.msg = self.restart_msg self._radio_alert.show() + history_info = gtk.Label(_("Discard network history if you " + "have trouble connecting to the network")) + history_info.set_alignment(0, 0) + history_info.set_line_wrap(True) + history_info.show() + box_wireless.pack_start(history_info, expand=False) + + box_clear_history = gtk.HBox(spacing=style.DEFAULT_SPACING) + self._clear_history_button = gtk.Button() + self._clear_history_button.set_label(_('Discard network history')) + box_clear_history.pack_start(self._clear_history_button, expand=False) + self._clear_history_button.show() + box_wireless.pack_start(box_clear_history, expand=False) + box_clear_history.show() + self.pack_start(box_wireless, expand=False) box_wireless.show() @@ -153,6 +172,9 @@ class Network(SectionView): 'toggled', self.__radio_toggled_cb) self._jabber_change_handler = self._entry.connect( \ 'changed', self.__jabber_changed_cb) + self._network_configuration_reset_handler = \ + self._clear_history_button.connect( \ + 'clicked', self.__network_configuration_reset_cb) def undo(self): self._button.disconnect(self._radio_change_handler) @@ -204,3 +226,6 @@ class Network(SectionView): self._validate() self._jabber_alert.show() return False + + def __network_configuration_reset_cb(self, widget): + self._model.clear_networks() diff --git a/src/hardware/nminfo.py b/src/hardware/nminfo.py index e561ff1..58d1a6d 100644 --- a/src/hardware/nminfo.py +++ b/src/hardware/nminfo.py @@ -549,3 +549,8 @@ class NMInfo(object): return self._key_dialog_destroy_cb(self._key_dialog) + # this method is invoked directly in-process (not by DBus). + def delete_all_networks(self): + self._allowed_networks = {} + self.save_config() + -- cgit v0.9.1