problem with cleaning wors list after bookmarks closing fixed;
[mdictionary] / src / gui / src / ws_gui_callbacks.c
index 7553827..5f417d8 100644 (file)
@@ -334,11 +334,16 @@ void ws_gui_signal_hander (GError *error, GArray *words, gpointer user_data)
 
                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));
@@ -415,17 +420,20 @@ void ws_dbus_progress_bar(GError *error, GArray *words, gpointer user_data)
  * @param list - GtkListStore to be remoeved
  * @return
  */
-void ws_gui_clear_list (GtkListStore* list) 
+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);
-       
+                        &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);
                
        }
@@ -447,6 +455,7 @@ void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
         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),
@@ -465,7 +474,7 @@ void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
                 g_array_append_val(tmp, tmp_word);
         }
        
-       g_assert(ws_gui_app->ws_gui_banner_list_searching);
+       //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;
@@ -557,8 +566,8 @@ void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
        }
        
        
-       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);
+/*     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 )
@@ -570,6 +579,7 @@ void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
                //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(
@@ -678,6 +688,9 @@ void ws_gui_free_memory(gpointer user_data)
 
         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);
@@ -1016,7 +1029,7 @@ void ws_gui_history_back(GtkButton *button, gpointer user_data)
                                                gchar*, 
                                        ws_gui_app->ws_gui_history_cur_pos))
                                        );
-               gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+               //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);
@@ -1068,7 +1081,7 @@ void ws_gui_history_next(GtkButton *button, gpointer user_data)
                                                ws_gui_app->ws_gui_history_cur_pos))
                                        );
                
-               gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+               //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);
@@ -1163,7 +1176,7 @@ GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data)
 
        if (tmp != NULL)
        {
-               ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store);
+               ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
        }
 
        gboolean valid;
@@ -1306,8 +1319,8 @@ void ws_gui_popup_search(GtkMenuItem *menuitem, gpointer user_data)
                                       temp,
                                       NULL);
                 ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
-               gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
-        }
+               //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
+       }
         else
         {
                 hildon_banner_show_information(
@@ -1466,6 +1479,11 @@ void ws_gui_search(GtkWidget * widget, gpointer user_data)
 
        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);
@@ -1485,11 +1503,12 @@ void ws_gui_search(GtkWidget * widget, gpointer user_data)
                 ws_gui_app->loading = TRUE;
                ws_gui_set_toolbar_avail(ws_gui_app);
 
-              //  ws_gui_app->ws_gui_banner_flag = TRUE;
+               //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));
+               //gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));
+               
                g_free(ws_gui_text);
                }
                else 
@@ -1579,11 +1598,24 @@ void ws_gui_menu_quit(GtkMenuItem *menuitem, gpointer user_data)
 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 
@@ -1919,7 +1951,7 @@ void ws_gui_dictionary_open_bookmark(GtkMenuItem *menuitem, gpointer user_data)
        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_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;
 
@@ -1939,13 +1971,12 @@ void ws_gui_dictionary_open_bookmark(GtkMenuItem *menuitem, gpointer user_data)
        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, "*");
        gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
-       ws_gui_search(NULL, ws_gui_app);
        
+       ws_gui_search(NULL, ws_gui_app);
 }
 
 /** closes bookmarks database 
@@ -1977,9 +2008,9 @@ void ws_gui_dictionary_close_bookmark(GtkMenuItem *menuitem, gpointer user_data)
        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",
@@ -1990,6 +2021,10 @@ void ws_gui_dictionary_close_bookmark(GtkMenuItem *menuitem, gpointer user_data)
        }
        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",
                                       "\0",
@@ -2003,7 +2038,7 @@ void ws_gui_dictionary_close_bookmark(GtkMenuItem *menuitem, gpointer user_data)
                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 
@@ -2043,13 +2078,14 @@ void ws_gui_dictionary_remove_bookmark(GtkMenuItem *menuitem,
        {
                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);
+               //gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
                
        }
        else
@@ -2350,3 +2386,22 @@ void ws_gui_set_toolbar_avail(gpointer user_data) {
                        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);
+       //-----------------------------------------------
+}