From 99b9434bf3dee660cff5a0603eade5800f108803 Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 21:25:12 +0000 Subject: [PATCH] Updated python-purple initial parameters. FIXES: - Updated python-purple initial parameters. Signed-off-by: Bruno Abinader Acked-by: Ricardo Guimaraes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1458 596f6dd7-e928-0410-a184-9e12fd12cf7e --- purple.pyx | 75 ++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/purple.pyx b/purple.pyx index 3686593..0005f73 100644 --- a/purple.pyx +++ b/purple.pyx @@ -24,9 +24,14 @@ cdef extern from "c_purple.h": import ecore -__DEFAULT_PATH__ = "/tmp" -__APP_NAME__ = "carman-purple-python" -__APP_VERSION__ = "0.1" +cdef glib.GHashTable *c_ui_info + +c_ui_info = NULL + +cdef char *c_ui_name +cdef char *c_ui_version +cdef char *c_ui_website +cdef char *c_ui_dev_website cdef account.PurpleAccountUiOps c_account_ui_ops cdef blist.PurpleBlistUiOps c_blist_ui_ops @@ -40,10 +45,6 @@ cdef notify.PurpleNotifyUiOps c_notify_ui_ops cdef request.PurpleRequestUiOps c_request_ui_ops #cdef roomlist.PurpleRoomlistUiOps c_rlist_ui_ops -cdef glib.GHashTable *c_ui_info - -c_ui_info = NULL - include "account_cbs.pxd" include "blist_cbs.pxd" include "connection_cbs.pxd" @@ -60,32 +61,40 @@ include "util.pxd" cdef class Purple: """ Purple class. - @parm debug_enabled: Toggle debug messages. - @parm app_name: Set application name. - @parm default_path: Full path for libpurple user files. + @param debug_enabled: Toggle debug messages. + @param default_path: Full path for libpurple user files. """ - def __init__(self, debug_enabled=True, app_name=__APP_NAME__, default_path=__DEFAULT_PATH__): - if app_name is not __APP_NAME__: - __APP_NAME__ = app_name + def __init__(self, ui_name, ui_version, ui_website, ui_dev_website, \ + debug_enabled=None, default_path=None): + + global c_ui_name + global c_ui_version + global c_ui_website + global c_ui_dev_website - if default_path is not __DEFAULT_PATH__: - __DEFAULT_PATH__ = default_path + c_ui_name = ui_name + c_ui_version = ui_version + c_ui_website = ui_website + c_ui_dev_website = ui_dev_website - debug.purple_debug_set_enabled(debug_enabled) - util.purple_util_set_user_dir(default_path) - plugin.purple_plugins_add_search_path(default_path) + if debug_enabled: + debug.purple_debug_set_enabled(debug_enabled) + + if default_path: + util.purple_util_set_user_dir(default_path) # adds glib iteration inside ecore main loop ecore.timer_add(0.001, self.__glib_iteration_when_idle) - def __get_ui_name(self): - return __APP_NAME__ - ui_name = property(__get_ui_name) - def destroy(self): core.purple_core_quit() + def __get_ui_name(self): + global c_ui_name + return str(c_ui_name) + ui_name = property(__get_ui_name) + cdef void __core_ui_ops_ui_prefs_init(self): debug.purple_debug_info("core_ui_ops", "%s", "ui_prefs_init\n") prefs.purple_prefs_load() @@ -112,8 +121,6 @@ cdef class Purple: cdef void __core_ui_ops_quit(self): debug.purple_debug_info("core_ui_ops", "%s", "quit\n") - global c_ui_info - account.purple_accounts_set_ui_ops(NULL) connection.purple_connections_set_ui_ops(NULL) blist.purple_blist_set_ui_ops(NULL) @@ -124,17 +131,24 @@ cdef class Purple: #ft.purple_xfers_set_ui_ops(NULL) #roomlist.purple_roomlist_set_ui_ops(NULL) - if c_ui_info: - glib.g_hash_table_destroy(c_ui_info) + if self.c_ui_info: + glib.g_hash_table_destroy( self.c_ui_info) cdef glib.GHashTable *__core_ui_ops_get_ui_info(self): global c_ui_info + global c_ui_name + global c_ui_version + global c_ui_website + global c_ui_dev_website if c_ui_info == NULL: - c_ui_info = glib.g_hash_table_new(glib.g_str_hash, glib.g_str_equal) + c_ui_info = glib.g_hash_table_new(glib.g_str_hash, \ + glib.g_str_equal) - glib.g_hash_table_insert(c_ui_info, "name", __APP_NAME__) - glib.g_hash_table_insert(c_ui_info, "version", __APP_VERSION__) + glib.g_hash_table_insert(c_ui_info, "name", c_ui_name) + glib.g_hash_table_insert(c_ui_info, "version", c_ui_version) + glib.g_hash_table_insert(c_ui_info, "website", c_ui_website) + glib.g_hash_table_insert(c_ui_info, "dev_website", c_ui_dev_website) return c_ui_info def __glib_iteration_when_idle(self): @@ -143,6 +157,7 @@ cdef class Purple: def purple_init(self): """ Initializes libpurple """ + global c_ui_name c_account_ui_ops.notify_added = notify_added c_account_ui_ops.status_changed = status_changed @@ -221,7 +236,7 @@ cdef class Purple: eventloop.purple_eventloop_set_ui_ops(&c_eventloop_ui_ops) # initialize purple core - ret = core.purple_core_init(__APP_NAME__) + ret = core.purple_core_init(c_ui_name) if ret is False: debug.purple_debug_fatal("main", "%s", "libpurple " \ "initialization failed.\n") -- 1.7.9.5