Add get/set proxyinfo methods to Account class
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:24:28 +0000 (20:24 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:10 +0000 (17:11 -0400)
Signed-off-by: Ragner Magalhaes <ragner.magalhaes@indt.org.br>

git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1300 596f6dd7-e928-0410-a184-9e12fd12cf7e

account.pyx
libpurple/account.pxd
proxy.pyx

index 421f1ec..5a9ecf7 100644 (file)
@@ -18,6 +18,7 @@
 #
 
 cimport purple
 #
 
 cimport purple
+cimport proxy
 
 cdef class Account:
     """ Account class """
 
 cdef class Account:
     """ Account class """
@@ -58,3 +59,16 @@ cdef class Account:
                 buddies += [buddy.name]
             iter = iter.next
         return buddies
                 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)
index 0cfd6f7..ed38b92 100644 (file)
@@ -18,6 +18,7 @@
 #
 
 cimport glib
 #
 
 cimport glib
+cimport proxy
 
 cdef extern from "libpurple/account.h":
     ctypedef struct PurpleAccount:
 
 cdef extern from "libpurple/account.h":
     ctypedef struct PurpleAccount:
@@ -32,11 +33,24 @@ cdef extern from "libpurple/account.h":
     ctypedef struct PurpleAccountUiOps:
         pass
 
     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)
+
index 6ae7287..b52a0c9 100644 (file)
--- a/proxy.pyx
+++ b/proxy.pyx
@@ -51,20 +51,29 @@ cdef class ProxyInfo:
     cdef proxy.PurpleProxyInfo *c_proxyinfo
 
     def __init__(self):
     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):
 
     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):
 
     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):
 
     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):
 
     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):
 
     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)