gtk_widget_set_sensitive(
GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
FALSE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
+ FALSE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view),
+ FALSE);
break;
}
case WS_DBUS_INFO_CACHING_FINISHED:
{
- gtk_widget_destroy(
- GTK_WIDGET(ws_gui_app->ws_gui_banner_caching));
- ws_gui_app->caching_flag = FALSE;
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
- TRUE);
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
- TRUE);
+ gtk_widget_destroy(
+ GTK_WIDGET(ws_gui_app->ws_gui_banner_caching));
+ ws_gui_app->caching_flag = FALSE;
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
+ TRUE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
+ TRUE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
+ TRUE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view),
+ TRUE);
- break;
+ break;
}
case WS_DBUS_ERROR_DICTIONARY_NOT_LOAD:
_("ws_ni_bookmark_not_added"));
break;
}
-
+
case WS_DBUS_BOOKMARKS_REMOVED_FAIL:
{
gtk_infoprint(GTK_WINDOW(
break;
}
+ case WS_DBUS_EXTRACT_FILE:
+ {
+ ws_gui_app->ws_gui_banner_extracting =
+ hildon_banner_show_animation(
+ GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
+ NULL,
+ _("ws_pb_extracting"));
+
+ ws_gui_app->caching_flag = TRUE;
+
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
+ FALSE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
+ FALSE);
+
+ break;
+ }
+
+ case WS_DBUS_EXTRACT_FILE_FINISHED:
+ {
+ gtk_widget_destroy(
+ GTK_WIDGET(ws_gui_app->ws_gui_banner_extracting));
+
+ ws_gui_app->caching_flag = FALSE;
+
+ gtk_infoprint(GTK_WINDOW(
+ ws_gui_app->ws_gui_hildon_window),
+ _("ws_ni_dictionary_added"));
+
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
+ TRUE);
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
+ TRUE);
+
+ break;
+ }
+
+ case WS_DBUS_WORDS_LIST_FULL:
+ {
+ gtk_widget_show(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));
+ break;
+ }
+
+ case WS_DBUS_WORDS_LIST_FILLED_NOT_FULL:
+ {
+ gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));
+ break;
+ }
+
+ case WS_DBUS_WORDS_LIST_FINISHED:
+ {
+ gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
+ break;
+ }
+
+ case WS_DBUS_TRANSLATION_FINISHED:
+ {
+ gtk_widget_hide(ws_gui_app->ws_gui_banner_translation_loading);
+ break;
+ }
+
+ case WS_DBUS_WORDS_LIST_STARTED:
+ {
+ gtk_widget_show(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
+ break;
+ }
+
+ case WS_DBUS_TRANSLATION_STARTED:
+ {
+ gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
+ break;
+ }
+
}
}
+
+
+/* added by Dariusz Wiechecki - HISA */
+void ws_gui_search_home_handler(GError *error, GArray *word, gpointer user_data)
+{
+ g_debug("->%s", __FUNCTION__);
+ WSGuiApp *data = (WSGuiApp*) user_data;
+ osso_rpc_t* osso_data = NULL;
+
+ //get the word passed by dbus
+ osso_data = &g_array_index (word, osso_rpc_t, 0);
+
+ //free memory used by last searched word
+ gchar* tmp = NULL;
+ tmp = g_strdup(osso_data->value.s + 11);
+
+ g_object_set(G_OBJECT(data->ws_gui_hildon_find_toolbar),
+ "prefix",
+ tmp,
+ NULL);
+ ws_gui_search(NULL, data);
+}
+
/** this function handles signals from dbus; it is called when progress bar
status has been changed
*
}
}
+/** this function clean GtkListStore row by row
+ *
+ * @param list - GtkListStore to be remoeved
+ * @return
+ */
+void ws_gui_clear_list (GtkListStore* list, gpointer user_data)
+{
+ //WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+ GtkTreeIter iter;
+ gboolean tmp;
+
+ //g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "\n\nws_gui_clear_list\n\n");
+ tmp = gtk_tree_model_get_iter_first(
+ GTK_TREE_MODEL(list),
+ &iter);
+
+ while (tmp == TRUE)
+ {
+ // g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "\n\nws_gui_clear_list2\n\n");
+ tmp = gtk_list_store_remove(list, &iter);
+
+ }
+}
+
+
/** this function handles signal from dbus and transfer recived
(found in a dictionary) words to the words list
*
osso_rpc_t data;
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+ ws_gui_app->no_words_found = FALSE;
+ g_signal_handlers_block_by_func(G_OBJECT
+ (ws_gui_app->ws_gui_w_list->ws_gui_view),
+ G_CALLBACK (ws_gui_view_cursor_changed),
+ ws_gui_app);
+
+
GArray *tmp;
tmp = g_array_new(TRUE, TRUE, sizeof(gchar*));
gchar *tmp_word;
for (i=0;i<words->len;++i)
{
data = g_array_index (words, osso_rpc_t, i);
- tmp_word = g_strconcat(data.value.s,NULL);
+ tmp_word = g_strdup(data.value.s);
g_array_append_val(tmp, tmp_word);
}
- g_assert(ws_gui_app->ws_gui_banner);
- gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner));
- //g_signal_handler_unblock(G_OBJECT(ws_gui_app->ws_gui_w_list->ws_gui_selection), 263);
-
- ws_gui_app->ws_gui_banner_flag = FALSE;
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
- FALSE);
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_stop),
- FALSE);
- gtk_list_store_clear(ws_gui_app->ws_gui_w_list->ws_gui_store);
+ //g_assert(ws_gui_app->ws_gui_banner_list_searching);
+ //gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
+
+ ws_gui_app->loading = FALSE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
+
+ //ws_gui_app->ws_gui_banner_flag = FALSE;
+
+ //ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store);
+
ws_gui_app->ws_gui_w_list->ws_gui_model =
create_and_fill_model(tmp, ws_gui_app);
if (ws_gui_app->history_flag == TRUE)
{
- gtk_tree_model_get_iter_from_string
- (GTK_TREE_MODEL(
- ws_gui_app->ws_gui_w_list->ws_gui_model),
- &ws_gui_app->ws_gui_w_list->ws_gui_iter,
- g_array_index(ws_gui_app->ws_gui_history_iter,
- gchar*,
- ws_gui_app->ws_gui_history_cur_pos));
-
- gtk_tree_selection_select_iter(
+
+ GValue value = { 0, };
+ GtkTreeIter tmp_iter;
+ gchar *pattern;
+ gboolean keep_searching = TRUE;
+
+ if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(
+ ws_gui_app->ws_gui_w_list->ws_gui_model), &tmp_iter) == TRUE)
+ {
+
+ pattern = strdup(g_array_index(ws_gui_app->ws_gui_history,
+ gchar*,
+ ws_gui_app->ws_gui_history_cur_pos));
+
+ gtk_tree_model_get_value(GTK_TREE_MODEL(
+ ws_gui_app->ws_gui_w_list->ws_gui_model),
+ &tmp_iter,
+ COL_WORD,
+ &value);
+
+ if ((g_value_get_string (&value) != NULL) &&
+ (strcmp(((gchar *)g_value_get_string (&value)),
+ pattern) == 0))
+ {
+ gtk_tree_selection_select_iter(
ws_gui_app->ws_gui_w_list->ws_gui_selection,
- &ws_gui_app->ws_gui_w_list->ws_gui_iter);
-
+ &tmp_iter);
+
+ }
+ else
+ {
+ while (gtk_tree_model_iter_next(GTK_TREE_MODEL
+ (ws_gui_app->ws_gui_w_list->ws_gui_model),
+ &tmp_iter) == TRUE && keep_searching == TRUE)
+ {
+ gtk_tree_model_get_value(GTK_TREE_MODEL(
+ ws_gui_app->ws_gui_w_list->ws_gui_model),
+ &tmp_iter,
+ COL_WORD,
+ &value);
+
+ if ((g_value_get_string (&value) != NULL) &&
+ (strcmp(((gchar *)g_value_get_string (&value)),
+ pattern) == 0))
+ {
+ gtk_tree_model_get_iter_from_string (
+ GTK_TREE_MODEL(
+ ws_gui_app->ws_gui_w_list->ws_gui_model),
+ &tmp_iter,
+ g_array_index(
+ ws_gui_app->ws_gui_history_iter,
+ gchar*,
+ ws_gui_app->ws_gui_history_cur_pos));
+
+ gtk_tree_selection_select_iter(
+ ws_gui_app->ws_gui_w_list->ws_gui_selection,
+ &tmp_iter);
+
+ keep_searching = FALSE;
+ }
+ }
+ }
+ }
+ g_free(pattern);
+
ws_gui_app->history_flag = FALSE;
- ws_gui_fill_html(format_html(data.value.s, ws_gui_app), ws_gui_app);
+ ws_dbus_client_find_translation(ws_gui_app->dbus_data,
+ g_array_index(ws_gui_app->ws_gui_history,
+ gchar*,
+ ws_gui_app->ws_gui_history_cur_pos));
+
ws_gui_app->html_flag = TRUE;
+ g_value_unset (&value);
}
- if (tmp->len == 0)
+
+/* g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Dlugosc tempa to: %d", tmp->len);
+ g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "w tempie mamy: %s", tmp_word);*/
+ //if (&& ws_gui_app->stop_clicked != TRUE )
+
+ if ((tmp->len == 0 || tmp_word == NULL) && ws_gui_app->stop_clicked != TRUE )
{
gtk_infoprint(GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
_("ws_ni_no_words_found"));
- ws_gui_app->history_mode = 0;
-
- ws_gui_fill_html(" ", ws_gui_app);
- ws_gui_app->html_flag = FALSE;
+ //ws_gui_fill_html(" ", ws_gui_app);
+ //ws_gui_app->html_flag = FALSE;
g_free(ws_gui_app->last_word);
ws_gui_app->last_word = NULL;
+ ws_gui_app->no_words_found = TRUE;
}
+ g_signal_handlers_unblock_by_func(G_OBJECT(
+ ws_gui_app->ws_gui_w_list->ws_gui_view),
+ G_CALLBACK (ws_gui_view_cursor_changed),
+ ws_gui_app);
+ for (i=0;i<tmp->len;++i)
+ {
+ g_free(g_array_index(tmp, gchar* , i));
+ }
+ g_array_free(tmp, TRUE);
+
timer(TIMER_STOP, (gchar*)__FUNCTION__);
}
GArray *words,
gpointer user_data)
{
- //timer(TIMER_START, (gchar*)__FUNCTION__);
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
+ gchar *html_content = NULL;
osso_rpc_t data;
data = g_array_index (words, osso_rpc_t, 0);
- //gtk_html_zoom_reset(GTK_HTML(ws_gui_app->ws_gui_html));
- ws_gui_fill_html(format_html(data.value.s, ws_gui_app), ws_gui_app);
+
+ html_content = format_html(data.value.s, ws_gui_app);
+ ws_gui_fill_html(html_content, ws_gui_app);
+ g_free(html_content);
ws_gui_app->html_flag = TRUE;
- //timer(TIMER_STOP, (gchar*)__FUNCTION__);
+
+ //gtk_widget_hide(ws_gui_app->ws_gui_banner_translation_loading);
+ ws_gui_app->loading = FALSE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
+
+}
+
+/** this function handles signal from dbus and send recived data to
+the translation area
+ *
+ * @param error - error message recived from DBUS
+ * @param words - array with recived data structure
+ * @param user_data - pointer to data structure
+ * @return
+ */
+void ws_dbus_server_return_extracted_bzip(GError *error,
+ GArray *words,
+ gpointer user_data)
+{
+ WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+
+ osso_rpc_t data;
+
+ data = g_array_index (words, osso_rpc_t, 0);
+ if (data.value.s[0] == '\0')
+ {
+ gtk_infoprint(GTK_WINDOW(
+ ws_gui_app->ws_gui_hildon_window),
+ _("ws_ni_dictionary_not_added"));
+ }
+ else
+ {
+ if (ws_gui_load_dict(data.value.s, ws_gui_app) == TRUE)
+ {
+
+ }
+ }
}
/**
void ws_gui_free_memory(gpointer user_data)
{
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+ guint i = 0;
+ for (i = 0; i<ws_gui_app->ws_gui_history->len; ++i)
+ {
+ g_free(g_array_index(ws_gui_app->ws_gui_history, gchar *, i));
+ }
g_array_free(ws_gui_app->ws_gui_history, TRUE);
+
+ for (i = 0; i<ws_gui_app->ws_gui_history_list->len; ++i)
+ {
+ g_free(g_array_index(ws_gui_app->ws_gui_history_list, gchar *, i));
+ }
+ g_array_free(ws_gui_app->ws_gui_history_list, TRUE);
+
+ for (i = 0; i<ws_gui_app->ws_gui_history_iter->len; ++i)
+ {
+ g_free(g_array_index(ws_gui_app->ws_gui_history_iter, gchar *, i));
+ }
+ g_array_free(ws_gui_app->ws_gui_history_iter, TRUE);
+
+
pango_font_description_free(ws_gui_app->p);
+
+ g_free(ws_gui_app->welcome_note);
+ ws_gui_app->welcome_note = NULL;
+
+ g_string_free(ws_gui_app->raw_translation, TRUE);
g_free(ws_gui_app->last_word);
g_free(ws_gui_app->ws_gui_w_list);
g_free(ws_gui_app->ws_gui_menu);
GTK_ADJUSTMENT(ws_gui_app->ws_gui_vadj),
ws_gui_app->v_new_value);
}
- /*if (gtk_tree_model_iter_next(
- ws_gui_app->ws_gui_w_list->ws_gui_model, &ws_gui_app->ws_gui_w_list->ws_gui_iter) == TRUE)
- {
- gtk_tree_selection_select_iter(
- ws_gui_app->ws_gui_w_list->ws_gui_selection,
- &ws_gui_app->ws_gui_w_list->ws_gui_iter);
- }*/
break;
}
if (gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list)))
{
- gtk_widget_hide(ws_gui_app->ws_gui_scrolledwindow_left);
+ gtk_widget_hide(ws_gui_app->ws_gui_list_vbox);
gtk_toggle_tool_button_set_active(
GTK_TOGGLE_TOOL_BUTTON(ws_gui_app->ws_gui_toobar_button_hide),
TRUE);
}
else
{
- gtk_widget_show(ws_gui_app->ws_gui_scrolledwindow_left);
+ gtk_widget_show(ws_gui_app->ws_gui_list_vbox);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
ws_gui_app->ws_gui_toobar_button_hide),
FALSE);
if (gtk_toggle_tool_button_get_active(
GTK_TOGGLE_TOOL_BUTTON(ws_gui_app->ws_gui_toobar_button_hide)))
{
- gtk_widget_hide(ws_gui_app->ws_gui_scrolledwindow_left);
+ gtk_widget_hide(ws_gui_app->ws_gui_list_vbox);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
ws_gui_app->ws_gui_toobar_button_hide),
TRUE);
}
else
{
- gtk_widget_show(ws_gui_app->ws_gui_scrolledwindow_left);
+ gtk_widget_show(ws_gui_app->ws_gui_list_vbox);
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
ws_gui_app->ws_gui_toobar_button_hide),
FALSE);
{
WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
- if (ws_gui_app->history_mode == 0)
+ if (ws_gui_app->history_flag != TRUE)
{
guint i;
gchar *tmp = g_array_index(ws_gui_app->ws_gui_history,
gchar*,
i);
- tmp_iter = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_model), &ws_gui_app->ws_gui_w_list->ws_gui_iter);
+ //tmp_iter = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_model), &ws_gui_app->ws_gui_w_list->ws_gui_iter);
- if (previous_word != NULL && strcmp(previous_word, new_word) != 0)
+ if (previous_word != NULL &&
+ strcmp(previous_word, new_word) != 0)
{
while (tmp != NULL)
{
i = 0;
ws_gui_app->ws_gui_history_cur_pos ++;
-
if (ws_gui_app->bookmark_mode == FALSE)
{
- tmp_last_searched = g_strdup(ws_gui_app->last_searched);
+ tmp_last_searched = g_strdup(ws_gui_app->last_searched);
}
else
{
tmp_last_searched = g_strdup(ws_gui_app->last_searched_in_book);
}
+
g_array_append_val(ws_gui_app->ws_gui_history_list,
tmp_last_searched);
}
i = 0;
+
tmp = g_array_index(ws_gui_app->ws_gui_history, gchar*, i);
}
}
+
ws_gui_check_history(ws_gui_app);
}
ws_gui_app->history_flag = TRUE;
- if (ws_gui_app->ws_gui_history_cur_pos > 0)
+ if (ws_gui_app->ws_gui_history_cur_pos > -1)
{
ws_gui_app->ws_gui_history_cur_pos =
ws_gui_app->ws_gui_history_cur_pos - 1;
- g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
+
+ g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
"prefix",
(g_array_index(ws_gui_app->ws_gui_history_list,
gchar*,
ws_gui_app->ws_gui_history_cur_pos)),
NULL);
-
ws_dbus_client_find_word (ws_gui_app->dbus_data,
- g_array_index(ws_gui_app->ws_gui_history_list,
+ g_strstrip(g_array_index(ws_gui_app->ws_gui_history_list,
gchar*,
- ws_gui_app->ws_gui_history_cur_pos)
+ ws_gui_app->ws_gui_history_cur_pos))
);
-
+ //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+ //gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
+ ws_gui_app->loading = TRUE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
}
else
{
- gtk_widget_set_sensitive (
- GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_back),
- FALSE);
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev),
- FALSE);
+ ws_gui_app->loading = FALSE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
}
ws_gui_check_history(ws_gui_app);
-
}
/** display choosen word, next in the history array (if avaible),
ws_gui_app->ws_gui_history_cur_pos =
ws_gui_app->ws_gui_history_cur_pos + 1;
+
g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
"prefix",
(g_array_index(ws_gui_app->ws_gui_history_list,
ws_gui_app->ws_gui_history_cur_pos)),
NULL);
+
ws_dbus_client_find_word(ws_gui_app->dbus_data,
- g_array_index(ws_gui_app->ws_gui_history_list,
+ g_strstrip(g_array_index(ws_gui_app->ws_gui_history_list,
gchar*,
- ws_gui_app->ws_gui_history_cur_pos)
+ ws_gui_app->ws_gui_history_cur_pos))
);
+
+ //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+ //gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
+ ws_gui_app->loading = TRUE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
}
else
{
GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data)
{
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+
+ g_signal_handlers_block_by_func(G_OBJECT (ws_gui_app->ws_gui_w_list->ws_gui_view),
+ G_CALLBACK (ws_gui_view_cursor_changed),
+ ws_gui_app);
+
guint i = 0;
gchar *tmp = g_strdup(g_array_index(words_list, gchar*, i));
- gboolean valid;
+ if (tmp != NULL)
+ {
+ ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
+ }
+
+ gboolean valid;
valid = gtk_tree_model_get_iter_first(
GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store),
&ws_gui_app->ws_gui_w_list->ws_gui_iter);
COL_WORD, tmp,
-1);
i=i+1;
+ g_free(tmp);
+ tmp = NULL;
tmp = g_strdup(g_array_index(words_list, gchar*, i));
};
+ g_free(tmp);
+ tmp = NULL;
tmp = g_strdup(g_array_index(words_list, gchar*, 0));
- if (tmp != NULL && ws_gui_app->history_flag == FALSE)
- {
- ws_dbus_client_find_translation(ws_gui_app->dbus_data, tmp);
- ws_gui_history_add(tmp, ws_gui_app);
+
+ if (ws_gui_app->history_flag == FALSE && tmp != NULL)
+ {
+ //gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
+ ws_dbus_client_find_translation(ws_gui_app->dbus_data, tmp);
+ ws_gui_history_add(tmp, ws_gui_app);
+
g_free(ws_gui_app->last_word);
ws_gui_app->last_word = NULL;
ws_gui_app->last_word = g_strdup (tmp);
- }
-
+ ws_gui_app->history_flag = FALSE;
+ }
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(
+ ws_gui_app->ws_gui_w_list->ws_gui_view),
+ G_CALLBACK (ws_gui_view_cursor_changed),
+ ws_gui_app);
+
+ g_free(tmp);
return GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store);
+
}
/** create TreeView and TreeModel using create_and_fill_model() function;
return ws_gui_app->ws_gui_w_list->ws_gui_view;
}
-/** handle signal from words list, get selected word and calls
-'find translation' function
- *
- * @param selection - the object which received the signal
- * @param user_data - user data set when the signal handler was connected
- * @return
- */
-void ws_gui_tree_selection_changed(GtkTreeSelection *selection,
- gpointer user_data)
-{
- WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
- gchar *string;
- ws_gui_app->ws_gui_w_list->ws_gui_selection = selection;
-
- if (gtk_tree_selection_get_selected(selection,
- &ws_gui_app->ws_gui_w_list->ws_gui_model,
- &ws_gui_app->ws_gui_w_list->ws_gui_iter))
- {
- gtk_tree_model_get(ws_gui_app->ws_gui_w_list->ws_gui_model,
- &ws_gui_app->ws_gui_w_list->ws_gui_iter,
- COL_WORD,
- &string,
- -1);
-
- ws_dbus_client_find_translation(ws_gui_app->dbus_data, string);
-
- g_free(ws_gui_app->last_word);
- ws_gui_app->last_word = NULL;
- ws_gui_app->last_word = g_strdup (string);
-
-
- if (string != NULL && ws_gui_app->history_flag == FALSE)
- {
- ws_gui_history_add(string, ws_gui_app);
- }
- g_free (string);
- }
-}
-
/** switch application between fun screen and normal mode
*
* @param menuitem - object which recived the signal
temp,
NULL);
ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
- }
+ //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+ }
else
{
hildon_banner_show_information(
void ws_gui_search(GtkWidget * widget, gpointer user_data)
{
WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
+
+ ws_gui_app->stop_clicked = FALSE;
- if (ws_gui_app->ws_gui_banner_flag == FALSE)
- {
+ // if (ws_gui_app->ws_gui_banner_flag == FALSE)
+ //{
gchar* ws_gui_text = NULL;
g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
"prefix",
if (ws_gui_app->bookmark_mode == FALSE)
{
+ if (ws_gui_app->first_run == TRUE)
+ {
+ ws_gui_app->first_run = FALSE;
+ }
+
g_free(ws_gui_app->last_searched);
ws_gui_app->last_searched = NULL;
ws_gui_app->last_searched = g_strdup(ws_gui_text);
g_strstrip(ws_gui_text);
if (strlen(ws_gui_text) != 0)
{
- gtk_widget_show(ws_gui_app->ws_gui_banner);
+ //gtk_widget_show(ws_gui_app->ws_gui_banner_list_searching);
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
- TRUE);
- gtk_widget_set_sensitive(
- GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_stop),
- TRUE);
+ ws_gui_app->loading = TRUE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
- ws_gui_app->ws_gui_banner_flag = TRUE;
- ws_gui_fill_html(" ", ws_gui_app);
- ws_gui_app->html_flag = FALSE;
+ //ws_gui_app->ws_gui_banner_flag = TRUE;
+ //ws_gui_fill_html(" ", ws_gui_app);
+ //ws_gui_app->html_flag = FALSE;
ws_dbus_client_find_word (ws_gui_app->dbus_data, ws_gui_text);
-
+ //gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));
+
+ g_free(ws_gui_text);
}
else
{
}
g_free(ws_gui_app->last_word);
ws_gui_app->last_word=NULL;
- }
+ //}
}
/** stop search process
void ws_gui_search_stop(GtkButton *button, gpointer user_data)
{
WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
- if (ws_gui_app->ws_gui_banner_flag == TRUE)
+ ws_gui_app->stop_clicked = TRUE;
+ // if (ws_gui_app->ws_gui_banner_flag == TRUE || ws_gui_app->loading == TRUE)
+ if (ws_gui_app->loading == TRUE)
{
- gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner));
- ws_gui_app->ws_gui_banner_flag = FALSE;
+ //gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
+
+ ws_gui_app->loading = FALSE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
+
+ //ws_gui_app->ws_gui_banner_flag = FALSE;
+
ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_INFO_STOP_SEARCH);
- gtk_infoprint(
- GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
+ gtk_infoprint(GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
_("ws_ni_search_aborted"));
}
}
void ws_gui_fill_html(char *html_context, gpointer user_data)
{
WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
- gtk_html_set_editable (GTK_HTML(ws_gui_app->ws_gui_html), FALSE);
-
+
+ gtk_html_set_editable (GTK_HTML(ws_gui_app->ws_gui_html), FALSE);
+ if (ws_gui_app->first_run == TRUE && ws_gui_app->bookmark_mode==FALSE)
+ {
+ gtk_html_load_from_string(GTK_HTML(ws_gui_app->ws_gui_html),
+ ws_gui_app->welcome_note,
+ -1);
+ g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
+ "prefix",
+ "",
+ NULL);
+ }
+ else
+ {
gtk_html_load_from_string(GTK_HTML(ws_gui_app->ws_gui_html),
html_context,
-1);
+ }
}
/** read adjustment of left scrollwindow, which is necessary to navigate with
str_tmp = g_string_new(received_string);
gchar * tmp;
gchar * tmp2;
+ gchar * returned_value;
ws_gui_app->raw_translation=g_string_erase(ws_gui_app->raw_translation,
0,
14);
str_final = g_string_insert(str_final,
(long)(tmp - str_final->str),
- "<html><head></head><body><center><table width=\"400px\"><tr>"
+ "<html><head></head><body><center><table width=\"95%\"><tr>"
"<td><table border=1 width=100%><tr>"
"<th background=\"file:/usr/share/pixmaps/ws_top.png\">"
"<img align=left src=\"file:/usr/share/pixmaps/"
0,
str_tmp->str);
- return str_final->str;
+ returned_value = g_strdup(str_final->str);
+ g_string_free(str_final, TRUE);
+ g_string_free(str_tmp, TRUE);
+ return returned_value;
}
/** open bookmarks database
ws_gui_read_active_dictionaries(ws_gui_app);
+ /*list has to be cleared if we're gonna use a completely different dict*/
+ ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
g_free(ws_gui_app->last_word);
ws_gui_app->last_word = NULL;
if(ws_gui_app->ws_gui_history->len >= 0)
{
- ws_gui_app->ws_gui_history = g_array_remove_range(
- ws_gui_app->ws_gui_history,
- 0,
- ws_gui_app->ws_gui_history->len);
- ws_gui_app->ws_gui_history_list = g_array_remove_range(
- ws_gui_app->ws_gui_history_list,
- 0,
- ws_gui_app->ws_gui_history_list->len);
- ws_gui_app->ws_gui_history_iter = g_array_remove_range(
- ws_gui_app->ws_gui_history_iter,
- 0,
- ws_gui_app->ws_gui_history_iter->len);
-
+ ws_gui_clear_array(ws_gui_app->ws_gui_history);
+ ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
+ ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
ws_gui_app->ws_gui_history_cur_pos = -1;
}
-
ws_gui_check_history(ws_gui_app);
-
ws_gui_fill_html(" ", ws_gui_app);
ws_gui_app->html_flag = FALSE;
- //ws_dbus_client_find_word(ws_gui_app->dbus_data, "*");
- ws_gui_search(NULL, ws_gui_app);
+ ws_dbus_client_find_word(ws_gui_app->dbus_data, "*");
+ gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+ ws_gui_search(NULL, ws_gui_app);
}
/** closes bookmarks database
if(ws_gui_app->ws_gui_history->len >= 0)
{
- ws_gui_app->ws_gui_history = g_array_remove_range(
- ws_gui_app->ws_gui_history, 0, ws_gui_app->ws_gui_history->len);
- ws_gui_app->ws_gui_history_list = g_array_remove_range(
- ws_gui_app->ws_gui_history_list,
- 0,
- ws_gui_app->ws_gui_history_list->len);
- ws_gui_app->ws_gui_history_iter = g_array_remove_range(
- ws_gui_app->ws_gui_history_iter,
- 0,
- ws_gui_app->ws_gui_history_iter->len);
-
+ ws_gui_clear_array(ws_gui_app->ws_gui_history);
+ ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
+ ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
ws_gui_app->ws_gui_history_cur_pos = -1;
}
ws_gui_check_history(ws_gui_app);
ws_gui_fill_html(" ", ws_gui_app);
- ws_gui_app->html_flag = FALSE;
- g_strstrip(ws_gui_app->last_searched);
- if (ws_gui_app->last_searched != NULL)
+ ws_gui_app->html_flag = TRUE;
+ //g_strstrip(ws_gui_app->last_searched);
+ if (g_strstrip(ws_gui_app->last_searched) != NULL && ws_gui_app->first_run == FALSE)
{
g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
"prefix",
}
else
{
+ gtk_list_store_clear(ws_gui_app->ws_gui_w_list->ws_gui_store);
+ }
+/* else if (ws_gui_app->first_run == FALSE)
+ {
g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
- "prefix",
+ "prefix",
"\0",
NULL);
GArray *tmp;
ws_gui_app->ws_gui_w_list->ws_gui_model =
create_and_fill_model(tmp, ws_gui_app);
- //ws_dbus_client_find_word(ws_gui_app->dbus_data, ws_gui_app->last_searched);
+ ws_dbus_client_find_word(ws_gui_app->dbus_data, ws_gui_app->last_searched);
+ gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
ws_gui_search(NULL, ws_gui_app);
- }
+ }*/
}
/** adds bookmark to bookmarks database
if (ws_gui_app->last_word != NULL)
{
ws_gui_add_bookmark_dialog(ws_gui_app);
- }
+ }
else
{
gtk_infoprint(
{
ws_gui_remove_bookmark_dialog(ws_gui_app);
+ ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
gchar *temp;
g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
"prefix",
&temp,
NULL);
ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
+ //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
}
else
string = (gchar*)g_slist_nth_data(ws_gui_app->directories_last,
i);
- //string = g_strconcat(string, "/active", NULL);
if (string != NULL)
{
gconf_client_set_bool(ws_gui_app->client,
gtk_widget_set_sensitive(
GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries),
TRUE);
+
+ g_free(bookmarks_path);
}
+
}
/** sets sensitivity of menu items due to user selection made
FALSE);
}
- if (ws_gui_app->last_word == NULL || ws_gui_app->bookmark_mode == TRUE)
+ if (ws_gui_app->last_word == NULL ||
+ (ws_gui_app->last_word[0] == '\0') ||
+ ws_gui_app->bookmark_mode == TRUE)
{
gtk_widget_set_sensitive(
GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
GCONF_PATH,
NULL);
}
+
+void ws_gui_clear_array(GArray *history)
+{
+ if(history->len >= 0)
+ {
+ history = g_array_remove_range(history, 0, history->len);
+ }
+}
+
+void ws_gui_view_cursor_changed(GtkTreeView *treeview, gpointer user_data)
+{
+ WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+ gchar *string;
+ if (gtk_tree_selection_get_selected(ws_gui_app->ws_gui_w_list->ws_gui_selection,
+ &ws_gui_app->ws_gui_w_list->ws_gui_model,
+ &ws_gui_app->ws_gui_w_list->ws_gui_iter))
+ {
+ gtk_tree_model_get(ws_gui_app->ws_gui_w_list->ws_gui_model,
+ &ws_gui_app->ws_gui_w_list->ws_gui_iter,
+ COL_WORD,
+ &string,
+ -1);
+ if (string != NULL)
+ {
+ //gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
+ ws_gui_app->loading = TRUE;
+ ws_gui_set_toolbar_avail(ws_gui_app);
+
+ ws_dbus_client_find_translation(ws_gui_app->dbus_data, string);
+
+
+ g_free(ws_gui_app->last_word);
+ ws_gui_app->last_word = NULL;
+ ws_gui_app->last_word = g_strdup (string);
+
+ if (ws_gui_app->history_flag == FALSE)
+ {
+ ws_gui_history_add(string, ws_gui_app);
+
+ }
+ g_free (string);
+ }
+
+ }
+
+
+}
+
+void ws_gui_set_toolbar_avail(gpointer user_data) {
+
+ WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+
+ if (ws_gui_app->loading == TRUE)
+ {
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
+ TRUE);
+
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
+ FALSE);
+
+ }
+ else
+ {
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
+ FALSE);
+
+ gtk_widget_set_sensitive(
+ GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
+ TRUE);
+ }
+}
+
+void ws_refresh_search_results(gpointer user_data) {
+
+ WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
+
+ //refreshing the words list and translation pane
+ gchar *temp;
+ g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
+ "prefix",
+ &temp,
+ NULL);
+
+ if (ws_gui_app->first_run == FALSE)
+ {
+ ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
+ }
+ //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+ //-----------------------------------------------
+}