From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:24:28 +0000 (+0000) Subject: Add get/set proxyinfo methods to Account class X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=commitdiff_plain;h=7cb45fa563b2f0d0e9352373ab0e853188592dcf Add get/set proxyinfo methods to Account class Signed-off-by: Ragner Magalhaes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1300 596f6dd7-e928-0410-a184-9e12fd12cf7e --- diff --git a/account.pyx b/account.pyx index 421f1ec..5a9ecf7 100644 --- a/account.pyx +++ b/account.pyx @@ -18,6 +18,7 @@ # cimport purple +cimport proxy cdef class Account: """ Account class """ @@ -58,3 +59,16 @@ cdef class Account: buddies += [buddy.name] iter = iter.next return buddies + + def get_proxyinfo(self): + cdef proxy.PurpleProxyInfo *c_proxyinfo + c_proxyinfo = account.c_purple_account_get_proxy_info(self.__account) + if c_proxyinfo == NULL: + return None + cdef ProxyInfo proxyinfo + proxyinfo = proxy.ProxyInfo() + proxyinfo.c_proxyinfo = c_proxyinfo + return proxyinfo + + def set_proxyinfo(self, ProxyInfo proxyinf): + account.c_purple_account_set_proxy_info(self.__account, proxyinf.c_proxyinfo) diff --git a/libpurple/account.pxd b/libpurple/account.pxd index 0cfd6f7..ed38b92 100644 --- a/libpurple/account.pxd +++ b/libpurple/account.pxd @@ -18,6 +18,7 @@ # cimport glib +cimport proxy cdef extern from "libpurple/account.h": ctypedef struct PurpleAccount: @@ -32,11 +33,24 @@ cdef extern from "libpurple/account.h": ctypedef struct PurpleAccountUiOps: pass - PurpleAccount *c_purple_account_new "purple_account_new" (char *username, char *protocol_id) - void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, char *password) - char *c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account) - void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, char *ui, glib.gboolean value) - char *c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account) - glib.GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" () - void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" (PurpleAccountUiOps *ops) - glib.gboolean c_purple_account_is_connected "purple_account_is_connected" (PurpleAccount *account) + PurpleAccount *c_purple_account_new "purple_account_new" \ + (char *username, char *protocol_id) + void c_purple_account_set_password "purple_account_set_password" \ + (PurpleAccount *account, char *password) + char *c_purple_account_get_password "purple_account_get_password" \ + (PurpleAccount *account) + void c_purple_account_set_enabled "purple_account_set_enabled" \ + (PurpleAccount *account, char *ui, glib.gboolean value) + char *c_purple_account_get_username "purple_account_get_username" \ + (PurpleAccount *account) + glib.GList *c_purple_accounts_get_all_active \ + "purple_accounts_get_all_active" () + void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" \ + (PurpleAccountUiOps *ops) + glib.gboolean c_purple_account_is_connected "purple_account_is_connected" \ + (PurpleAccount *account) + proxy.PurpleProxyInfo *c_purple_account_get_proxy_info \ + "purple_account_get_proxy_info" (PurpleAccount *account) + void c_purple_account_set_proxy_info "purple_account_set_proxy_info" \ + (PurpleAccount *account, proxy.PurpleProxyInfo *info) + diff --git a/proxy.pyx b/proxy.pyx index 6ae7287..b52a0c9 100644 --- a/proxy.pyx +++ b/proxy.pyx @@ -51,20 +51,29 @@ cdef class ProxyInfo: cdef proxy.PurpleProxyInfo *c_proxyinfo def __init__(self): - self.c_proxyinfo = proxy.c_purple_proxy_info_new() + self.c_proxyinfo = NULL + + def cnew(self): + if self.c_proxyinfo == NULL: + self.c_proxyinfo = proxy.c_purple_proxy_info_new() def set_type(self, ProxyInfoType type): - proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_proxyinfotype) + if self.c_proxyinfo: + proxy.c_purple_proxy_info_set_type(self.c_proxyinfo, type.c_proxyinfotype) def set_host(self, char *host): - proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host) + if self.c_proxyinfo: + proxy.c_purple_proxy_info_set_host(self.c_proxyinfo, host) def set_port(self, int port): - proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port) + if self.c_proxyinfo: + proxy.c_purple_proxy_info_set_port(self.c_proxyinfo, port) def set_username(self, char *username): - proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username) + if self.c_proxyinfo: + proxy.c_purple_proxy_info_set_username(self.c_proxyinfo, username) def set_password(self, char *password): - proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password) + if self.c_proxyinfo: + proxy.c_purple_proxy_info_set_password(self.c_proxyinfo, password)