gimp r26030 - in branches/soc-2008-tagging: . app/widgets



Author: aurisj
Date: Tue Jul  1 17:43:11 2008
New Revision: 26030
URL: http://svn.gnome.org/viewvc/gimp?rev=26030&view=rev

Log:
2008-07-01  Aurimas JuÅka  <aurisj svn gnome org>

	* app/widgets/gimptagentry.c (gimp_tag_entry_set_selected_items),
	(gimp_tag_entry_load_selection): display tags assigned to selected
	item.



Modified:
   branches/soc-2008-tagging/ChangeLog
   branches/soc-2008-tagging/app/widgets/gimptagentry.c

Modified: branches/soc-2008-tagging/app/widgets/gimptagentry.c
==============================================================================
--- branches/soc-2008-tagging/app/widgets/gimptagentry.c	(original)
+++ branches/soc-2008-tagging/app/widgets/gimptagentry.c	Tue Jul  1 17:43:11 2008
@@ -46,6 +46,8 @@
 static void     gimp_tag_entry_item_set_tags   (GimpTagged        *entry,
                                                 GList             *tags);
 
+static void     gimp_tag_entry_load_selection  (GimpTagEntry      *tag_entry);
+
 static gchar ** gimp_tag_entry_parse_tags      (GimpTagEntry      *entry);
 
 G_DEFINE_TYPE (GimpTagEntry, gimp_tag_entry, GTK_TYPE_ENTRY);
@@ -238,5 +240,39 @@
     }
 
   entry->selected_items = g_list_copy (items);
+
+  gimp_tag_entry_load_selection (entry);
+}
+
+static void
+gimp_tag_entry_load_selection (GimpTagEntry             *tag_entry)
+{
+  GimpTagged   *selected_item;
+  GList        *tag_iterator;
+  gint          insert_pos;
+  GimpTag       tag;
+  gchar        *text;
+
+  gtk_editable_delete_text (GTK_EDITABLE (tag_entry), 0, -1);
+
+  if (! tag_entry->selected_items)
+    {
+      return;
+    }
+
+  selected_item = GIMP_TAGGED (tag_entry->selected_items->data);
+  insert_pos = 0;
+
+  tag_iterator = gimp_tagged_get_tags (selected_item);
+  while (tag_iterator)
+    {
+      tag = GPOINTER_TO_UINT (tag_iterator->data);
+      text = g_strdup_printf ("%s, ", g_quark_to_string (tag));
+      gtk_editable_insert_text (GTK_EDITABLE (tag_entry), text, strlen (text),
+                                &insert_pos);
+      g_free (text);
+
+      tag_iterator = g_list_next (tag_iterator);
+    }
 }
 



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