[frogr] Disable tags autocompletion in dialogs even if tags already fetched.



commit ed29aa8064454c07a819649a74b8e38422f6f2d6
Author: Mario Sanchez Prada <msanchez igalia com>
Date:   Fri Feb 25 02:17:09 2011 +0100

    Disable tags autocompletion in dialogs even if tags already fetched.
    
    This way, enabling/disabling this feature through the settings dialog
    will have inmediate effect on the tags being autocompleted or not in the
    'add tags' and the 'edit details' dialogs.

 src/frogr-add-tags-dialog.c |   35 +++++++++++++++++++++--------------
 src/frogr-details-dialog.c  |   37 ++++++++++++++++++++++---------------
 2 files changed, 43 insertions(+), 29 deletions(-)
---
diff --git a/src/frogr-add-tags-dialog.c b/src/frogr-add-tags-dialog.c
index 51c1555..8a2f846 100644
--- a/src/frogr-add-tags-dialog.c
+++ b/src/frogr-add-tags-dialog.c
@@ -22,6 +22,7 @@
 
 #include "frogr-add-tags-dialog.h"
 
+#include "frogr-config.h"
 #include "frogr-global-defs.h"
 #include "frogr-picture.h"
 
@@ -321,10 +322,10 @@ static void
 frogr_add_tags_dialog_init (FrogrAddTagsDialog *self)
 {
   FrogrAddTagsDialogPrivate *priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (self);
+  FrogrConfig *config = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *align = NULL;
   GtkWidget *label = NULL;
-  GtkEntryCompletion *completion = NULL;
   GtkTreeModel *model = NULL;
 
   /* Create widgets */
@@ -344,26 +345,32 @@ frogr_add_tags_dialog_init (FrogrAddTagsDialog *self)
   gtk_container_add (GTK_CONTAINER (align), label);
   gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 6);
 
-  completion = gtk_entry_completion_new ();
-  gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (completion), TEXT_COL);
-  gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (completion), TRUE);
-  gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (completion),
-                                       _tag_list_completion_func,
-                                       self, NULL);
-
   model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
-  gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (completion), model);
   priv->treemodel = model;
-
   priv->entry = gtk_entry_new ();
-  gtk_entry_set_completion (GTK_ENTRY (priv->entry), completion);
+
+  config = frogr_config_get_instance ();
+  if (config && frogr_config_get_tags_autocompletion (config))
+    {
+      GtkEntryCompletion *completion = NULL;
+      completion = gtk_entry_completion_new ();
+      gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (completion), TEXT_COL);
+      gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (completion), TRUE);
+      gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (completion),
+                                           _tag_list_completion_func,
+                                           self, NULL);
+
+      gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (completion), model);
+
+      gtk_entry_set_completion (GTK_ENTRY (priv->entry), completion);
+
+      g_signal_connect (G_OBJECT (completion), "match-selected",
+                        G_CALLBACK (_completion_match_selected_cb), self);
+    }
 
   gtk_box_pack_start (GTK_BOX (vbox), priv->entry, TRUE, FALSE, 6);
   gtk_widget_set_size_request (GTK_WIDGET (self), 300, -1);
 
-  g_signal_connect (G_OBJECT (completion), "match-selected",
-                    G_CALLBACK (_completion_match_selected_cb), self);
-
   g_signal_connect (G_OBJECT (self), "response",
                     G_CALLBACK (_dialog_response_cb), NULL);
 
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index 001d8ed..ee6fc52 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -22,6 +22,7 @@
 
 #include "frogr-details-dialog.h"
 
+#include "frogr-config.h"
 #include "frogr-controller.h"
 #include "frogr-picture.h"
 #include "frogr-util.h"
@@ -114,6 +115,7 @@ static void
 _create_widgets (FrogrDetailsDialog *self)
 {
   FrogrDetailsDialogPrivate *priv = NULL;
+  FrogrConfig *config = NULL;
   GtkWidget *main_vbox = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *hbox = NULL;
@@ -129,7 +131,6 @@ _create_widgets (FrogrDetailsDialog *self)
   GtkWidget *widget = NULL;
   GtkWidget *table = NULL;
   GtkWidget *scroller = NULL;
-  GtkEntryCompletion *completion = NULL;
   GtkTreeModel *model = NULL;
   gchar *markup = NULL;
 
@@ -322,20 +323,29 @@ _create_widgets (FrogrDetailsDialog *self)
 
   gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 6);
 
-
-  /* Prepare auto completion for tags */
-  completion = gtk_entry_completion_new ();
-  gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (completion), TEXT_COL);
-  gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (completion), TRUE);
-  gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (completion),
-                                       _tag_list_completion_func,
-                                       self, NULL);
-  gtk_entry_set_completion (GTK_ENTRY (priv->tags_entry), completion);
-
   model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
-  gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (completion), model);
   priv->treemodel = model;
 
+  config = frogr_config_get_instance ();
+  if (config && frogr_config_get_tags_autocompletion (config))
+    {
+      GtkEntryCompletion *completion = NULL;
+
+      /* Prepare auto completion for tags */
+      completion = gtk_entry_completion_new ();
+      gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (completion), TEXT_COL);
+      gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (completion), TRUE);
+      gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (completion),
+                                           _tag_list_completion_func,
+                                           self, NULL);
+      gtk_entry_set_completion (GTK_ENTRY (priv->tags_entry), completion);
+
+      gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (completion), model);
+
+      g_signal_connect (G_OBJECT (completion), "match-selected",
+                        G_CALLBACK (_completion_match_selected_cb), self);
+    }
+
   /* Connect signals */
   g_signal_connect (G_OBJECT (priv->public_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
@@ -370,9 +380,6 @@ _create_widgets (FrogrDetailsDialog *self)
   g_signal_connect (G_OBJECT (priv->restricted_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (completion), "match-selected",
-                    G_CALLBACK (_completion_match_selected_cb), self);
-
   /* Show widgets */
   gtk_widget_show_all (main_vbox);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]