Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
    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,
            )
Exemplo n.º 5
0
 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))
Exemplo n.º 6
0
 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()
Exemplo n.º 7
0
    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))
Exemplo n.º 8
0
    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))
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
    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
Exemplo n.º 11
0
 def process_sms_eb(error):
     title = _("Error reading SMS %d") % index
     show_error_dialog(title, get_error_msg(error))
Exemplo n.º 12
0
 def property_net_error_value_change(self, model, old, new):
     title = _("Error while registering to home network")
     show_error_dialog(title, new)
Exemplo n.º 13
0
 def property_sim_error_value_change(self, model, old, details):
     title = _('Unknown error while initting device')
     show_error_dialog(title, details)
Exemplo n.º 14
0
 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))
Exemplo n.º 15
0
 def on_contact_added_eb(self, error):
     title = _("Error adding contact")
     dialogs.show_error_dialog(title, get_error_msg(error))