#include <unistd.h>
#include <glib/gstdio.h>
-//#include <glib.h>
#include <gconf/gconf-client.h>
#include <gconf/gconf.h>
#include <pthread.h>
#include <gmodule.h>
#include <string.h>
-#include "ws_manager.h"
-
+#include <ws_manager.h>
+#include <untar.h>
#define GCONF_KEY "/apps/maemo/WhiteStork/Dictionaries"
#define GCONF_LIB_PATH "/apps/maemo/WhiteStork/Engines"
return NULL;
}
+static void ws_mng_extract_dictionary(GError *error, GArray *word,
+ gpointer user_data);
/**
* Public function, see ws_manager.h
*/
{
g_debug("->%s", __FUNCTION__);
WSMngSearchData *data = (WSMngSearchData *) user_data;
+
+
//decrement returned results count
//data->returned_results--;
data->returned_trans_results--;
+
//if there is returned translation
+ g_printf("\ndla slowa %s\n", pattern);
+ g_printf("ile slownikow %d\n", data->returned_trans_results);
+ g_printf("moje tlmumaczenie %s\n", data->trans);
if (translation != NULL)
{
if (data->trans == NULL)
"<PATTERN_CLOSED><TRANSLATION_OPEN>",
translation,
"<TRANSLATION_CLOSED>",
- NULL);
- }
+ NULL);
+ }
else //if thre was stored trnasloation
{
- if (data->returned_trans_results >= 0)
+ if (data->returned_trans_results > 0)
{
//copy stored trnasloation to temporery variable
gchar* tmp = g_strconcat(data->trans,
{
data->search_in_history = FALSE;
data->is_seraching_trans = FALSE;
- //send translation to gui
- ws_dbus_server_return_translations(data->dbus_data,
+ //send translation to gui
+ ws_dbus_server_return_translations(data->dbus_data,
data->trans);
g_free(data->trans); data->trans = NULL;
}
NULL,
ws_mng_search_word,
data); //create thread and run search
- g_debug("<-%s", __FUNCTION__);
+ g_debug("<-%s", __FUNCTION__);
}
*@param word pattern to serch for translation
*@param user_data data needed to send results to UI
*/
-static void ws_mng_on_search_in_history (GError *error, GArray *word,
+static void ws_mng_on_search_in_history(GError *error, GArray *word,
gpointer user_data)
{
g_debug("->%s", __FUNCTION__);
"remove_bookmark",
ws_mng_remove_bookmark,
data);//set callback for remove bookmarks signal
+ ws_dbus_set_cb(data->dbus_data,
+ "extract_dictionary",
+ ws_mng_extract_dictionary,
+ data);
g_debug("<-%s", __FUNCTION__);
g_debug("<-%s", __FUNCTION__);
}
+static void ws_mng_extract_dictionary(GError *error, GArray* param,
+ gpointer user_data)
+{
+ g_debug("->%s", __FUNCTION__);
+ WSMngSearchData *data = (WSMngSearchData *) user_data;
+ osso_rpc_t *osso_data;
+ //get the data sended by dbus
+ osso_data = &g_array_index (param, osso_rpc_t, 0);
+ //get the path sended by dbus
+ gchar* path = g_strdup(osso_data->value.s);
+ gint result = -1;
+ if (path != NULL)
+ {
+ result = decompress_file(path,"./");
+ }
+ if (result > 0)
+ {
+ ws_dbus_server_return_extracted_dict(data->dbus_data,
+ path);
+ }else
+ {
+ ws_dbus_server_return_extracted_dict(data->dbus_data,
+ NULL);
+ }
+ g_debug("<-%s", __FUNCTION__);
+}
#ifdef __cplusplus
}
#endif