class ConfigureDialog(): def create_dialog(self): try: self.builder = gtk.Builder() f = os.path.join(os.path.dirname(__file__), "configure.glade") self.builder.add_from_file(f) self.builder.connect_signals(self) self.account = Account() self.init_widgets() return self.dialog except AccountError as e: dialog = ExceptionDialog(e) return dialog.get_dialog() def get_widgets(self): self.dialog = self.builder.get_object("config_dialog") self.usr_entry = self.builder.get_object("usr_entry") self.pwd_entry = self.builder.get_object("pwd_entry") self.acct_radio = self.builder.get_object("acct_radio") self.anon_radio = self.builder.get_object("anon_radio") self.acct_cont = self.builder.get_object("acct_container") def init_widgets(self): self.get_widgets() if self.account.exists(): usr, pwd = self.account.get_details() self.usr_entry.set_text(usr) self.pwd_entry.set_text(pwd) self.acct_radio.set_active(True) else: self.set_sensitive(False) self.dialog.show() def on_show_check_toggled(self, show_check, data=None): if show_check.get_active(): self.pwd_entry.set_visibility(True) else: self.pwd_entry.set_visibility(False) def on_entry_clear(self, entry, icon_pos, data=None): entry.set_text("") def on_close_button_clicked(self, widget, data=None): if self.anon_radio.get_active(): self.account.delete_details() else: pwd = self.pwd_entry.get_text() usr = self.usr_entry.get_text() self.account.set_details(usr, pwd) self.dialog.destroy() def set_sensitive(self, hide): self.acct_cont.set_sensitive(hide) def on_anon_radio_toggled(self, widget, data=None): self.set_sensitive(False) def on_acct_radio_toggled(self, widget, data=None): self.set_sensitive(True)