diff options
Diffstat (limited to 'services/nm/wepkeydialog.py')
-rw-r--r-- | services/nm/wepkeydialog.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/services/nm/wepkeydialog.py b/services/nm/wepkeydialog.py new file mode 100644 index 0000000..dd61f1c --- /dev/null +++ b/services/nm/wepkeydialog.py @@ -0,0 +1,42 @@ +import gtk + +class WEPKeyDialog(gtk.Dialog): + def __init__(self): + gtk.Dialog.__init__(self) + + self.set_has_separator(False) + + self._entry = gtk.Entry() + self._entry.props.visibility = False + self._entry.connect('changed', self._entry_changed_cb) + self.vbox.pack_start(self._entry) + self._entry.show() + + self.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, + gtk.STOCK_OK, gtk.RESPONSE_OK) + + self.set_default_response(gtk.RESPONSE_OK) + self._update_response_sensitivity() + + def get_key(self): + return self._entry.get_text() + + def _entry_changed_cb(self, entry): + self._update_response_sensitivity() + + def _update_response_sensitivity(self): + key = self.get_key() + + is_hex = True + for c in key: + if not 'a' <= c <= 'f' and not '0' <= c <= '9': + is_hex = False + + valid_len = (len(key) == 10 or len(key) == 26) + self.set_response_sensitive(gtk.RESPONSE_OK, is_hex and valid_len) + +if __name__ == "__main__": + dialog = WEPKeyDialog() + dialog.run() + + print dialog.get_key() |