Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services/nm/wepkeydialog.py
diff options
context:
space:
mode:
Diffstat (limited to 'services/nm/wepkeydialog.py')
-rw-r--r--services/nm/wepkeydialog.py42
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()