def set_account_data_from_widget(self, account_name, widget, account=None):
        username = self.builder.get_object("username_entry").get_text()
        password = self.builder.get_object("password_entry").get_text()
        if not account:
            props = {"name" : account_name, "provider_name" : self.get_name(),
                     "labels" : self.__get_labels()}
            account = AccountCacheMails(props, self)
            account.notifications = {}
        else:
            account["labels"] = self.__get_labels()

        credentials = Credentials(username, password)
        account.set_credentials(credentials)

        return account
Exemple #2
0
class TwitterPrefs:
    def __init__(self, account, provider):
        self.account = account
        self.provider = provider

    def load(self):
        self.builder = Gtk.Builder()
        self.builder.set_translation_domain("cloudsn")
        self.builder.add_from_file(
            config.add_data_prefix("twitter-account.ui"))
        self.box = self.builder.get_object("container")
        self.permission_button = self.builder.get_object("permission_button")
        self.pin_entry = self.builder.get_object("pin_entry")

        self.auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth_url = self.auth.get_authorization_url()
        self.permission_button.set_uri(auth_url)

        self.builder.connect_signals(self)
        if self.account:
            #Do not support editting
            pass
        return self.box

    def set_account_data(self, account_name):
        pin = self.pin_entry.get_text()
        if pin == '':
            raise Exception(
                _("The PIN is mandatory to set the Twitter account"))

        self.auth.get_access_token(pin)
        access_key = self.auth.access_token.key
        access_secret = self.auth.access_token.secret
        if not self.account:
            props = {
                "name": account_name,
                "provider_name": self.provider.get_name()
            }
            self.account = AccountCacheMails(props, self.provider)
            self.account.notifications = {}

        credentials = Credentials(access_key, access_secret)
        self.account.set_credentials(credentials)

        return self.account
Exemple #3
0
    def set_account_data_from_widget(self, account_name, widget, account=None):
        username = self.builder.get_object("username_entry").get_text()
        password = self.builder.get_object("password_entry").get_text()
        if not account:
            props = {
                "name": account_name,
                "provider_name": self.get_name(),
                "labels": self.__get_labels()
            }
            account = AccountCacheMails(props, self)
            account.notifications = {}
        else:
            account["labels"] = self.__get_labels()

        credentials = Credentials(username, password)
        account.set_credentials(credentials)

        return account
class TwitterPrefs:

    def __init__(self, account, provider):
        self.account = account
        self.provider = provider

    def load(self):
        self.builder=Gtk.Builder()
        self.builder.set_translation_domain("cloudsn")
        self.builder.add_from_file(config.add_data_prefix("twitter-account.ui"))
        self.box = self.builder.get_object("container")
        self.permission_button = self.builder.get_object("permission_button")
        self.pin_entry = self.builder.get_object("pin_entry")

        self.auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth_url = self.auth.get_authorization_url()
        self.permission_button.set_uri(auth_url)

        self.builder.connect_signals(self)
        if self.account:
            #Do not support editting
            pass
        return self.box

    def set_account_data (self, account_name):
        pin = self.pin_entry.get_text()
        if pin=='':
            raise Exception(_("The PIN is mandatory to set the Twitter account"))

        self.auth.get_access_token(pin)
        access_key = self.auth.access_token.key
        access_secret = self.auth.access_token.secret
        if not self.account:
            props = {"name" : account_name, "provider_name" : self.provider.get_name()}
            self.account = AccountCacheMails(props, self.provider)
            self.account.notifications = {}

        credentials = Credentials(access_key, access_secret)
        self.account.set_credentials(credentials)

        return self.account
class ImapPrefs:

    def __init__(self, account, provider):
        self.account = account
        self.provider = provider

    def load(self):
        self.builder=Gtk.Builder()
        self.builder.set_translation_domain("cloudsn")
        self.builder.add_from_file(config.add_data_prefix("imap-account.ui"))
        self.box = self.builder.get_object("container")
        self.labels_store = self.builder.get_object("labels_store")
        self.labels_treeview = self.builder.get_object("labels_treeview")
        self.builder.connect_signals(self)
        if self.account:
            credentials = self.account.get_credentials_save()
            self.builder.get_object("host_entry").set_text(self.account["host"])
            self.builder.get_object("username_entry").set_text(credentials.username)
            self.builder.get_object("password_entry").set_text(credentials.password)
            self.builder.get_object("port_entry").set_text(str(self.account["port"]))
            self.builder.get_object("ssl_check").set_active(utils.get_boolean(self.account["ssl"]))
            if 'labels' in self.account.get_properties():
                labels = [l.strip() for l in self.account["labels"].split(",")]
                for label in labels:
                    if label != '':
                        siter = self.labels_store.append()
                        self.labels_store.set_value(siter, 0, label)
        return self.box

    def set_account_data (self, account_name):
        host = self.builder.get_object("host_entry").get_text()
        port = self.builder.get_object("port_entry").get_text()
        username = self.builder.get_object("username_entry").get_text()
        password = self.builder.get_object("password_entry").get_text()
        ssl = self.builder.get_object("ssl_check").get_active()
        if host=='' or username=='' or password=='':
            raise Exception(_("The host, user name and the password are mandatory"))

        if not self.account:
            props = {"name" : account_name, "provider_name" : self.provider.get_name(),
                "host": host, "port": port, "ssl": ssl,
                "labels" : self.__get_labels()}
            self.account = AccountCacheMails(props, self.provider)
            self.account.notifications = {}
        else:
            self.account["host"] = host
            self.account["port"] = port
            self.account["ssl"] = ssl
            self.account["labels"] = self.__get_labels()

        credentials = Credentials(username, password)
        self.account.set_credentials(credentials)

        return self.account

    def __get_labels(self):
        labels = []
        def add(model, path, siter, labels):
            label = model.get_value(siter, 0)
            labels.append(label)
        self.labels_store.foreach(add, labels)
        labels_string = ""
        for label in labels:
            labels_string += label + ","
        return labels_string[:len(labels_string)-1]

    def add_label_button_clicked_cb (self, widget, data=None):
        siter = self.labels_store.append()
        self.labels_store.set_value(siter, 0, _("Type the label name here"))
        selection = self.labels_treeview.get_selection()
        selection.select_iter(siter)
        model, path_list = selection.get_selected_rows()
        path = path_list[0]
        self.labels_treeview.grab_focus()
        self.labels_treeview.set_cursor(path,self.labels_treeview.get_column(0), True)


    def del_label_button_clicked_cb (self, widget, data=None):
        selection = self.labels_treeview.get_selection()
        model, path_list = selection.get_selected_rows()
        if path_list:
            path = path_list[0]
            siter = model.get_iter(path)
            self.labels_store.remove(siter)

    def label_cell_edited_cb(self, cell, path, new_text):
        siter = self.labels_store.get_iter((int(path), ))
        self.labels_store.set_value(siter, 0, new_text)
Exemple #6
0
class ImapPrefs:
    def __init__(self, account, provider):
        self.account = account
        self.provider = provider

    def load(self):
        self.builder = Gtk.Builder()
        self.builder.set_translation_domain("cloudsn")
        self.builder.add_from_file(config.add_data_prefix("imap-account.ui"))
        self.box = self.builder.get_object("container")
        self.labels_store = self.builder.get_object("labels_store")
        self.labels_treeview = self.builder.get_object("labels_treeview")
        self.builder.connect_signals(self)
        if self.account:
            credentials = self.account.get_credentials_save()
            self.builder.get_object("host_entry").set_text(
                self.account["host"])
            self.builder.get_object("username_entry").set_text(
                credentials.username)
            self.builder.get_object("password_entry").set_text(
                credentials.password)
            self.builder.get_object("port_entry").set_text(
                str(self.account["port"]))
            self.builder.get_object("ssl_check").set_active(
                utils.get_boolean(self.account["ssl"]))
            if 'labels' in self.account.get_properties():
                labels = [l.strip() for l in self.account["labels"].split(",")]
                for label in labels:
                    if label != '':
                        siter = self.labels_store.append()
                        self.labels_store.set_value(siter, 0, label)
        return self.box

    def set_account_data(self, account_name):
        host = self.builder.get_object("host_entry").get_text()
        port = self.builder.get_object("port_entry").get_text()
        username = self.builder.get_object("username_entry").get_text()
        password = self.builder.get_object("password_entry").get_text()
        ssl = self.builder.get_object("ssl_check").get_active()
        if host == '' or username == '' or password == '':
            raise Exception(
                _("The host, user name and the password are mandatory"))

        if not self.account:
            props = {
                "name": account_name,
                "provider_name": self.provider.get_name(),
                "host": host,
                "port": port,
                "ssl": ssl,
                "labels": self.__get_labels()
            }
            self.account = AccountCacheMails(props, self.provider)
            self.account.notifications = {}
        else:
            self.account["host"] = host
            self.account["port"] = port
            self.account["ssl"] = ssl
            self.account["labels"] = self.__get_labels()

        credentials = Credentials(username, password)
        self.account.set_credentials(credentials)

        return self.account

    def __get_labels(self):
        labels = []

        def add(model, path, siter, labels):
            label = model.get_value(siter, 0)
            labels.append(label)

        self.labels_store.foreach(add, labels)
        labels_string = ""
        for label in labels:
            labels_string += label + ","
        return labels_string[:len(labels_string) - 1]

    def add_label_button_clicked_cb(self, widget, data=None):
        siter = self.labels_store.append()
        self.labels_store.set_value(siter, 0, _("Type the label name here"))
        selection = self.labels_treeview.get_selection()
        selection.select_iter(siter)
        model, path_list = selection.get_selected_rows()
        path = path_list[0]
        self.labels_treeview.grab_focus()
        self.labels_treeview.set_cursor(path,
                                        self.labels_treeview.get_column(0),
                                        True)

    def del_label_button_clicked_cb(self, widget, data=None):
        selection = self.labels_treeview.get_selection()
        model, path_list = selection.get_selected_rows()
        if path_list:
            path = path_list[0]
            siter = model.get_iter(path)
            self.labels_store.remove(siter)

    def label_cell_edited_cb(self, cell, path, new_text):
        siter = self.labels_store.get_iter((int(path), ))
        self.labels_store.set_value(siter, 0, new_text)