def setup_view(self, view): self.view['profile_name_entry'].set_text(self.model.name) self.view['username_entry'].set_text(self.model.username) self.view.set_network_mode(self.model.network_type) self.view.set_band(self.model.band) self.view['apn_entry'].set_text(self.model.apn) self.view['static_dns_check'].set_active(self.model.static_dns) if self.model.primary_dns: dns1 = convert_int_to_ip(self.model.primary_dns) self.view['primary_dns_entry'].set_text(dns1) if self.model.secondary_dns: dns2 = convert_int_to_ip(self.model.secondary_dns) self.view['secondary_dns_entry'].set_text(dns2) if self.model.static_dns: self.view.enable_static_dns() if not self.model.password: try: self.model.load_password() except KeyringNoMatchError, e: logger.error("Error while loading connection password: %s" % e) title = _("Error while getting connection password") details = _("NoMatchError: No password was retrieved " "from connection, please set one again") show_error_dialog(title, details) return
def on_keyring_password_required(self, opath, callback=None): from wader.gtk.profiles import manager profile = manager.get_profile_by_object_path(opath) password = None if profile.secrets.manager.is_new(): dialog = NewKeyringDialog(self.view.get_top_widget()) response = dialog.run() elif not profile.secrets.manager.is_open(): dialog = KeyringPasswordDialog(self.view.get_top_widget()) response = dialog.run() if response == gtk.RESPONSE_OK: password = dialog.password_entry.get_text() dialog.destroy() if password is not None: try: profile.secrets.manager.open(password) except KeyringInvalidPassword: title = _("Invalid password") details = _("The supplied password is incorrect") show_error_dialog(title, details) # call ourselves again self.on_keyring_password_required(opath) else: if callback is not None: uuid = profile.get_settings()['connection']['uuid'] callback(profile.secrets.manager.get_secrets(uuid))
def on_ok_button_clicked(self, widget): self.model.name = self.view['profile_name_entry'].get_text() self.model.username = self.view['username_entry'].get_text() self.model.password = self.view['password_entry'].get_text() mode = self.view['connection_combobox'].get_active_text() band = self.view['band_combobox'].get_active_text() if mode: self.model.network_type = MODE_MAP_REV[mode] if band: self.model.band = BAND_MAP_REV[band] self.model.apn = self.view['apn_entry'].get_text() self.model.static_dns = self.view['static_dns_check'].get_active() if self.view['static_dns_check'].get_active(): dns1 = self.view['primary_dns_entry'].get_text() dns2 = self.view['secondary_dns_entry'].get_text() if dns1: self.model.primary_dns = convert_ip_to_int(dns1) if dns2: self.model.secondary_dns = convert_ip_to_int(dns2) try: self.model.save() except RuntimeError, e: show_error_dialog(_("Error creating profile"), get_error_msg(e))
def on_save_toolbutton_clicked(self, widget): numbers = self.view.get_numbers() text = self.view.get_text() if not numbers: title = _("Invalid number") msg = _("You must provide a valid number") dialogs.show_error_dialog(title, msg) self.view["contacts_entry"].grab_focus() return if text == "": title = _("No text to save") msg = _("Are you sure you want to store a blank message?") if not dialogs.show_warning_request_cancel_ok(title, msg): # user cancelled it self.view["text_textview"].grab_focus() return self.messages = [Message(num, text) for num in numbers] for sms in self.messages: self.model.device.Save( sms.to_dict(), dbus_interface=SMS_INTFACE, reply_handler=self.on_sms_saved_cb, error_handler=self.on_sms_saved_eb, )
def on_delete_profile_button_clicked(self, event): _iter = self.view.profiles_treeview.get_selection().get_selected()[1] profile = self.model.profiles_model.get_value(_iter, 1) if profile: try: self.model.profiles_model.remove_profile(profile) except ProfileNotFoundError, e: show_error_dialog(_("Error while removing profile"), get_error_msg(e))
def _init_wader_object(self): try: self.obj = self.bus.get_object(WADER_SERVICE, WADER_OBJPATH) except dbus.DBusException, e: title = _("Error while starting wader") details = _("Check that your installation is correct and your " " OS/distro is supported: %s" % e) show_error_dialog(title, details) raise SystemExit()
def on_contacts_list_eb(self, error): """ Errback for org.freedesktop.ModemManager.Gsm.Contacts.List Show an error message to the user in case something goes bad """ # end of potentially long operation self.view.stop_throbber() title = _("Error while reading contacts list") dialogs.show_error_dialog(title, get_error_msg(error))
def _on_connect_eb(self, e): logger.error("_on_connect_eb: %s" % e) self.view.set_disconnected() if self.apb: self.apb.close() self.apb = None if 'NoReply' in get_error_msg(e) and self._ignore_no_reply: # do not show NoReply exception as we were expecting it self._ignore_no_reply = False elif 'TypeError' in get_error_msg(e) and self._ignore_no_reply: # do not show TypeError exception as we were expecting it # as ActivateConnection returns None instead of an object # path. self._ignore_no_reply = False else: title = _('Failed connection attempt') show_error_dialog(title, get_error_msg(e))
def on_add_button_clicked(self, widget): name = self.view["name_entry"].get_text() number = self.view["number_entry"].get_text() if name == "" or number == "": title = _("Name or number not specified") msg = _("You must provide a valid name and number") dialogs.show_error_dialog(title, msg) widget = (name == "") and "name_entry" or "number_entry" self.view[widget].grab_focus() return self.model.device.Add( name, number, dbus_interface=CTS_INTFACE, reply_handler=self.on_contact_added_cb, error_handler=logger.error ) # save contact till we receive its index, and then we will add # it to the treeview model self.contact = Contact(name, number)
def on_send_toolbutton_clicked(self, widget): numbers = self.view.get_numbers() text = self.view.get_text() if not numbers: title = _("Invalid number") msg = _("You must provide a valid number") dialogs.show_error_dialog(title, msg) self.view["contacts_entry"].grab_focus() return if text == "": title = _("No text to send") msg = _("Are you sure you want to send a blank message?") if not dialogs.show_warning_request_cancel_ok(title, msg): # user cancelled it self.view["text_textview"].grab_focus() return if self.mode == STORAGE and not self.has_changed: # sending from storage sms = self.selected["objs"][0] self.model.device.SendFromStorage( sms.index, dbus_interface=SMS_INTFACE, reply_handler=self.on_sms_sent_cb, error_handler=self.on_sms_sent_eb, ) else: self.state = SENDING for number in numbers: self.model.device.Send( dict(number=number, text=text), dbus_interface=SMS_INTFACE, reply_handler=self.on_sms_sent_cb, error_handler=self.on_sms_sent_eb, ) self.state = IDLE
def process_sms_eb(error): title = _("Error reading SMS %d") % index show_error_dialog(title, get_error_msg(error))
def property_net_error_value_change(self, model, old, new): title = _("Error while registering to home network") show_error_dialog(title, new)
def property_sim_error_value_change(self, model, old, details): title = _('Unknown error while initting device') show_error_dialog(title, details)
def on_sms_saved_eb(self, error): """ Executed when an error has occurred saving a SMS """ title = _("Error while saving SMS") dialogs.show_error_dialog(title, get_error_msg(error))
def on_contact_added_eb(self, error): title = _("Error adding contact") dialogs.show_error_dialog(title, get_error_msg(error))