From bed53a95ba817ed9b478a4d3fafd7688a880ac08 Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:52:36 +0000 Subject: [PATCH 1/1] Adding function __get_protocol_options Adding function __get_protocol_options to return the config's options to account's protocol Signed-off-by: Ragner Magalhaes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1364 596f6dd7-e928-0410-a184-9e12fd12cf7e --- account.pyx | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/account.pyx b/account.pyx index 7dd484f..b81947a 100644 --- a/account.pyx +++ b/account.pyx @@ -113,6 +113,73 @@ cdef class Account: account.c_purple_account_set_remember_password(self.c_account, value) remember_password = property(__get_remember_password, __set_remember_password) + def _get_protocol_options(self): + cdef glib.GList *iter + cdef accountopt.PurpleAccountOption *option + cdef prefs.PurplePrefType type + cdef const_char *label_name + cdef const_char *str_value + cdef const_char *setting + cdef int int_value + cdef glib.gboolean bool_value + + if self.c_account == NULL: + return None + + po = {} + + iter = self.c_prpl_info.protocol_options + + while iter: + + option = iter.data + type = accountopt.c_purple_account_option_get_type(option) + label_name = accountopt.c_purple_account_option_get_text(option) + setting = accountopt.c_purple_account_option_get_setting(option) + + sett = str( setting) + + if type == prefs.PURPLE_PREF_STRING: + + str_value = accountopt.c_purple_account_option_get_default_string(option) + + # Google Talk default domain hackery! + if str_value == NULL and str( label_name) == "Connect server": + str_value = "talk.google.com" + str_value = account.c_purple_account_get_string(self.c_account, setting, str_value) + + val = str( str_value) + + elif type == prefs.PURPLE_PREF_INT: + + int_value = accountopt.c_purple_account_option_get_default_int(option) + int_value = account.c_purple_account_get_int(self.c_account, setting, int_value) + + val = int(int_value) + + elif type == prefs.PURPLE_PREF_BOOLEAN: + + bool_value = accountopt.c_purple_account_option_get_default_bool(option) + bool_value = account.c_purple_account_get_bool(self.c_account, setting, bool_value) + + val = bool(bool_value) + + elif type == prefs.PURPLE_PREF_STRING_LIST: + + str_value = accountopt.c_purple_account_option_get_default_list_value(option) + str_value = account.c_purple_account_get_string(self.c_account, setting, str_value) + + val = str( str_value) + + iter = iter.next + + po[sett] = val + + return po + + protocol_options = property(_get_protocol_options) + + def get_protocol_name(self): if self.c_account: return account.c_purple_account_get_protocol_name(self.c_account) -- 1.7.9.5