class RegistrationWindow: def __init__(self, applicationSession): self.applicationSession = applicationSession self.builder = gtk.Builder() self.builder.add_from_file(os.path.join('gui', 'glades', 'RegistrationWindow.glade')) self.dialog = self.builder.get_object('RegistrationDialog') self.dobEntry = MaskEntry() self.dobEntry.set_mask('%4d-%2d-%2d') self.dobEntry.set_text('yyyy-mm-dd') dobHBox = self.builder.get_object('dobHBox') dobHBox.pack_end(self.dobEntry, False, False, 0) self.dobEntry.show() self.dialog.connect('response', self.on_registerButton_activated) self.dialog.show() def on_registerButton_activated(self, *args): nickname = self.builder.get_object('nicknameEntry').get_text() pin = self.builder.get_object('pinEntry').get_text() dob = self.dobEntry.get_text() if self.builder.get_object('maleButton').get_active(): gender = 'male' else: gender = 'female' location = self.builder.get_object('locationEntry').get_text() language = self.builder.get_object('languageEntry').get_text() if not nickname: errorDialog("Please enter a nickname") return try: int(pin) if len(str(pin)) <4: raise ValueError except ValueError: errorDialog("Password must be a number and more than 4 digits") return self.applicationSession['tempPassword'] = pin #Todo: use a regular expression to check whether in correct format if len(dob) < 10: errorDialog("Please enter your Date of Birth") return if not len(location): errorDialog("Please enter a location") return if not len(language): errorDialog("Please enter a language") return message = RegistrationMessage(pin, nickname, dob, gender, location, language, self.applicationSession) self.applicationSession['protocolInstance'].sendMsg(message) self.dialog.destroy()
class PreferencesDialog: _loadingProfile = False _profileLoaded = False def __init__(self, mxit): self.mxit = mxit self.initGui() def initGui(self): self.builder = gtk.Builder() self.builder.add_from_file(os.path.join("gui", "glade", "PreferencesDialog.glade")) dialog = self.builder.get_object("PreferencesDialog") dialog.connect("response", self.on_response) self.builder.get_object("notebook").connect("switch-page", self.on_notebook_switch_page) dialog.show() self.genderComboBox = gtk.combo_box_new_text() self.genderComboBox.append_text("Female") self.genderComboBox.append_text("Male") self.genderComboBox.show() self.builder.get_object("genderBox").pack_end(self.genderComboBox, False, False) self.dobEntry = MaskEntry() self.dobEntry.set_mask("%4d-%2d-%2d") self.dobEntry.show() self.builder.get_object("dobBox").pack_end(self.dobEntry, False, False) try: self.builder.get_object("autoLoginButton").set_active(self.mxit.settings["autoLogin"]) self.builder.get_object("contactInviteAlertButton").set_active(self.mxit.settings["contactInviteAlert"]) self.builder.get_object("contactOnlineAlertButton").set_active(self.mxit.settings["contactOnlineAlert"]) self.builder.get_object("messageAlertButton").set_active(self.mxit.settings["newMessageAlert"]) self.builder.get_object("rememberMoodButton").set_active(self.mxit.settings["rememberMood"]) except KeyError: self.builder.get_object("contactInviteAlertButton").set_active(True) self.builder.get_object("contactOnlineAlertButton").set_active(True) self.builder.get_object("messageAlertButton").set_active(True) self.builder.get_object("autoLoginButton").set_active(True) self.builder.get_object("rememberMoodButton").set_active(True) def on_notebook_switch_page(self, notebook, dont_use, page, *args): if page == 0 or self._loadingProfile: return self.mxit["get_profile_callback"] = self.get_profile_callback message = GetProfileMessage() self.mxit.sendMsg(message) def get_profile_callback(self, message): self.builder.get_object("loadingLabel").set_property("visible", False) self.builder.get_object("profileBox").set_property("visible", True) self.genderComboBox.set_active(int(message[0][3])) self.dobEntry.set_text(message[0][2]) self.builder.get_object("nicknameEntry").set_text(message[0][0]) self.builder.get_object("numberEntry").set_text(self.mxit.settings["loginname"]) self.builder.get_object("passwordEntry").set_text(self.mxit.settings["password"]) if message[0][1] == "1": self.builder.get_object("hideNumberButton").set_active(True) self._profileLoaded = True def on_response(self, dialog, response_id, *args): dialog.destroy() self.mxit.settings["contactInviteAlert"] = self.builder.get_object("contactInviteAlertButton").get_active() self.mxit.settings["contactOnlineAlert"] = self.builder.get_object("contactOnlineAlertButton").get_active() self.mxit.settings["newMessageAlert"] = self.builder.get_object("messageAlertButton").get_active() self.mxit.settings["autoLogin"] = self.builder.get_object("autoLoginButton").get_active() self.mxit.settings["rememberMood"] = self.builder.get_object("rememberMoodButton").get_active() if self._profileLoaded: nickname = self.builder.get_object("nicknameEntry").get_text() password = self.builder.get_object("passwordEntry").get_text() dob = self.dobEntry.get_text() hideMobileNumber = self.builder.get_object("hideNumberButton").get_active() if self.genderComboBox.get_active() == 1: gender = "m" else: gender = "f" message = UpdateProfileMessage(password, nickname, hideMobileNumber, dob, gender, self.mxit) self.mxit.sendMsg(message)