evolution-data-server r9792 - trunk/libedataserverui



Author: mcrha
Date: Wed Dec  3 11:36:22 2008
New Revision: 9792
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9792&view=rev

Log:
2008-12-03  Milan Crha  <mcrha redhat com>

	** Fix for bug #357948

	* e-categories-dialog.c: (update_preview), (load_properties_dialog):
	Show preview of the selected image file when choosing new icon.



Modified:
   trunk/libedataserverui/ChangeLog
   trunk/libedataserverui/e-categories-dialog.c

Modified: trunk/libedataserverui/e-categories-dialog.c
==============================================================================
--- trunk/libedataserverui/e-categories-dialog.c	(original)
+++ trunk/libedataserverui/e-categories-dialog.c	Wed Dec  3 11:36:22 2008
@@ -60,6 +60,25 @@
 	GtkWidget *category_icon;
 } CategoryPropertiesDialog;
 
+static void
+update_preview (GtkFileChooser *chooser, gpointer user_data)
+{
+	GtkImage *image;
+	char *filename;
+
+	g_return_if_fail (chooser != NULL);
+
+	image = GTK_IMAGE (gtk_file_chooser_get_preview_widget (chooser));
+	g_return_if_fail (image != NULL);
+
+	filename = gtk_file_chooser_get_preview_filename (chooser);
+
+	gtk_image_set_from_file (image, filename);
+	gtk_file_chooser_set_preview_widget_active (chooser, filename != NULL);
+
+	g_free (filename);
+}
+
 static CategoryPropertiesDialog *
 load_properties_dialog (ECategoriesDialog *parent)
 {
@@ -87,6 +106,21 @@
 	prop_dialog->category_name = glade_xml_get_widget (prop_dialog->gui, "category-name");
 	prop_dialog->category_icon = glade_xml_get_widget (prop_dialog->gui, "category-icon");
 
+	if (prop_dialog->category_icon) {
+		GtkFileChooser *chooser = GTK_FILE_CHOOSER (prop_dialog->category_icon);
+
+		if (chooser) {
+			GtkWidget *image = gtk_image_new ();
+
+			gtk_widget_show (image);
+
+			gtk_file_chooser_set_preview_widget (chooser, image);
+			gtk_file_chooser_set_preview_widget_active (chooser, TRUE);
+
+			g_signal_connect (G_OBJECT (chooser), "update-preview", (GCallback) update_preview, NULL);
+		}
+	}
+
 	return prop_dialog;
 }
 



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