예제 #1
0
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)