double translation searching fixed
authorgadomska_anna <gadomska.anna@gmail.com>
Wed, 21 Feb 2007 08:41:23 +0000 (08:41 +0000)
committergadomska_anna <gadomska.anna@gmail.com>
Wed, 21 Feb 2007 08:41:23 +0000 (08:41 +0000)
git-svn-id: file:///svnroot/mdictionary/trunk@80 5bde0345-f819-0410-ac75-e5045f9217cc

data/locale/es.po
src/gui/src/ws_gui_callbacks.c
src/gui/src/ws_gui_layout.c

index ad22928..b7de39f 100644 (file)
@@ -331,4 +331,4 @@ msgstr "Pegado."
 
 #: ../gui/src/ws_gui_callbacks.c:268
 msgid "ws_ni_bookmarks_unavailable"
-msgstr "Bookmarks could not be loaded. Please install libsqlite package."
\ No newline at end of file
+msgstr "No se han podido cargar los marcadores. Instale el paquete libsqlite."
\ No newline at end of file
index aab0de5..f682d80 100644 (file)
@@ -343,6 +343,7 @@ void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
                           FALSE);
         gtk_list_store_clear(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);
        
@@ -903,7 +904,7 @@ GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data)
         guint i = 0;
         gchar *tmp = g_strdup(g_array_index(words_list, gchar*, i));
 
-        gboolean valid;
+       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);
@@ -924,8 +925,17 @@ GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data)
 
        tmp = g_strdup(g_array_index(words_list, gchar*, 0));
 
-       if (tmp != NULL && ws_gui_app->history_flag == FALSE)
+       if (ws_gui_app->last_word == NULL)
+       {
+               ws_gui_app->last_word = g_strdup("\0");
+       }
+
+       if (tmp != NULL && 
+           ws_gui_app->history_flag == FALSE && 
+           (0 != strcmp(ws_gui_app->last_word, tmp)))
         {
+       
+       
                 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);
@@ -983,6 +993,8 @@ void ws_gui_tree_selection_changed(GtkTreeSelection *selection,
         WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
         gchar *string;
        ws_gui_app->ws_gui_w_list->ws_gui_selection = selection;
+       
+       g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, ":::GUI:: CALLBACK Z SELECTION!!!");
 
         if (gtk_tree_selection_get_selected(selection,
                                        &ws_gui_app->ws_gui_w_list->ws_gui_model,
@@ -994,16 +1006,24 @@ void ws_gui_tree_selection_changed(GtkTreeSelection *selection,
                                    &string,
                                    -1);
 
+               if (ws_gui_app->last_word == NULL)
+               {
+                       ws_gui_app->last_word = g_strdup("\0");
+               }
+
+               if (string != NULL && (0 != strcmp(string, ws_gui_app->last_word)))
+               {
                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);
+                      ws_gui_history_add(string, ws_gui_app);
                }
                 g_free (string);
         }
index ff33791..d7edd89 100644 (file)
@@ -44,6 +44,7 @@ void ws_gui_create_window(gpointer user_data)
        ws_gui_app->raw_translation = g_string_new(" ");
        ws_gui_app->last_searched = NULL;
        ws_gui_app->last_searched_in_book = NULL;
+       ws_gui_app->last_word = NULL;
 
         ws_gui_app->ws_gui_banner_flag = FALSE;
         ws_gui_app->ws_gui_full_screen_flag = FALSE;
@@ -1259,6 +1260,54 @@ void ws_gui_dictionary_loader(GtkMenuItem *menuitem, gpointer user_data)
                                       ws_gui_app->ws_gui_hildon_window),
                                       _("ws_ni_dictionary_added"));
                 }
+               else if (g_str_has_suffix(name, ".bz2"))
+               {
+                       GtkWidget *dialog_optimize;
+                       GtkWidget *dialog_activate;
+                       gboolean optimize;
+                       gboolean activate;
+
+                       dialog_activate = gtk_message_dialog_new(GTK_WINDOW(
+                                              ws_gui_app->ws_gui_hildon_window),
+                                              GTK_DIALOG_DESTROY_WITH_PARENT,
+                                              GTK_MESSAGE_QUESTION,
+                                              GTK_BUTTONS_YES_NO,
+                       _("ws_ni_dictionaries_activation_question"));
+
+                       
+                        if (gtk_dialog_run (GTK_DIALOG (dialog_activate)) 
+                                                            == GTK_RESPONSE_YES)
+                        {
+                               activate = TRUE;
+                               gtk_widget_destroy (dialog_activate);
+                       }
+                       else 
+                       {
+                               activate = FALSE;
+                               gtk_widget_destroy (dialog_activate);
+                       }
+                       
+                       dialog_optimize = gtk_message_dialog_new(GTK_WINDOW(
+                                              ws_gui_app->ws_gui_hildon_window),
+                                              GTK_DIALOG_DESTROY_WITH_PARENT,
+                                              GTK_MESSAGE_QUESTION,
+                                              GTK_BUTTONS_YES_NO,
+                       _("ws_ni_dictionaries_optimalization_question"));
+
+                       
+                        if (gtk_dialog_run (GTK_DIALOG (dialog_optimize)) 
+                                                            == GTK_RESPONSE_YES)
+                        {
+                               optimize = TRUE;
+                               gtk_widget_destroy (dialog_optimize);
+                       }
+                       else 
+                       {
+                               optimize = FALSE;
+                               gtk_widget_destroy (dialog_optimize);
+                       }
+
+               }
                 else
                 {
                         gtk_widget_destroy (dialog2);