[gthumb/ext: 10/15] added the name property to the catalogs



commit 1068e256ceae1d2af81f53b81c06f44617acfeb7
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Mon Dec 14 20:03:49 2009 +0100

    added the name property to the catalogs
    
    new logic for the standard::display-name attribute

 extensions/catalogs/callbacks.c                   |   15 --
 extensions/catalogs/data/ui/catalog-properties.ui |    3 +
 extensions/catalogs/dlg-catalog-properties.c      |   47 +++--
 extensions/catalogs/dlg-organize-files.c          |    2 -
 extensions/catalogs/gth-catalog.c                 |  228 +++++++++++++++++----
 extensions/catalogs/gth-catalog.h                 |   36 ++--
 extensions/catalogs/gth-file-source-catalogs.c    |   16 +--
 gthumb/gth-folder-tree.c                          |    8 +-
 gthumb/gth-time.c                                 |    4 +-
 9 files changed, 256 insertions(+), 103 deletions(-)
---
diff --git a/extensions/catalogs/callbacks.c b/extensions/catalogs/callbacks.c
index 5702f30..f17d038 100644
--- a/extensions/catalogs/callbacks.c
+++ b/extensions/catalogs/callbacks.c
@@ -633,24 +633,9 @@ catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser)
 	    && ! _g_content_type_is_a (g_file_info_get_content_type (location_data->info), "gthumb/library"))
 	{
 		GtkWidget *extra_widget;
-		GString   *name;
-		GObject   *metadata;
 
 		extra_widget = gth_browser_get_list_extra_widget (browser);
 
-		name = g_string_new ("");
-		if (g_file_info_get_display_name (location_data->info) != NULL)
-			g_string_append (name, g_file_info_get_display_name (location_data->info));
-		metadata = g_file_info_get_attribute_object (location_data->info, "general::event-date");
-		if (metadata != NULL) {
-			if (g_strcmp0 (name->str, "") != 0)
-				g_string_append (name, " - ");
-			g_string_append (name, gth_metadata_get_formatted (GTH_METADATA (metadata)));
-		}
-		gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (extra_widget), name->str);
-
-		g_string_free (name, TRUE);
-
 		if (data->properties_button == NULL) {
 			data->properties_button = gtk_button_new ();
 			gtk_container_add (GTK_CONTAINER (data->properties_button), gtk_image_new_from_stock (GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_BUTTON));
diff --git a/extensions/catalogs/data/ui/catalog-properties.ui b/extensions/catalogs/data/ui/catalog-properties.ui
index 405ba56..1f56876 100644
--- a/extensions/catalogs/data/ui/catalog-properties.ui
+++ b/extensions/catalogs/data/ui/catalog-properties.ui
@@ -78,6 +78,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="invisible_char">&#x25CF;</property>
+                            <property name="activates_default">True</property>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
@@ -142,6 +143,8 @@
                 <property name="label">gtk-save</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_stock">True</property>
               </object>
diff --git a/extensions/catalogs/dlg-catalog-properties.c b/extensions/catalogs/dlg-catalog-properties.c
index 05df866..67a976f 100644
--- a/extensions/catalogs/dlg-catalog-properties.c
+++ b/extensions/catalogs/dlg-catalog-properties.c
@@ -85,30 +85,45 @@ catalog_saved_cb (void     *buffer,
 }
 
 
+static char *
+clear_name_for_file (const char *display_name)
+{
+	return _g_utf8_replace (display_name, "/", "_");
+}
+
+
 static void
 save_button_clicked_cb (GtkButton  *button,
 			DialogData *data)
 {
-	GFile       *parent;
-	char        *uri;
-	char        *display_name;
-	GFile       *new_file;
 	GthDateTime *date_time;
 	GFile       *gio_file;
 	char        *buffer;
 	gsize        buffer_size;
 
-	parent = g_file_get_parent (data->original_file);
-	uri = g_file_get_uri (data->original_file);
-	display_name = g_strconcat (gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("name_entry"))), _g_uri_get_file_extension (uri), NULL);
-	new_file = g_file_get_child_for_display_name (parent, display_name, NULL);
-	if ((new_file != NULL) && ! g_file_equal (new_file, data->original_file))
-		gth_file_data_set_file (data->file_data, new_file);
+	if (strcmp (gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("name_entry"))), "") != 0) {
+		GFile *parent;
+		char  *uri;
+		char  *clean_name;
+		char  *display_name;
+		GFile *new_file;
+
+		parent = g_file_get_parent (data->original_file);
+		uri = g_file_get_uri (data->original_file);
+		clean_name = clear_name_for_file (gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("name_entry"))));
+		display_name = g_strconcat (clean_name, _g_uri_get_file_extension (uri), NULL);
+		new_file = g_file_get_child_for_display_name (parent, display_name, NULL);
+		if ((new_file != NULL) && ! g_file_equal (new_file, data->original_file))
+			gth_file_data_set_file (data->file_data, new_file);
+
+		_g_object_unref (new_file);
+		g_free (display_name);
+		g_free (clean_name);
+		g_free (uri);
+		g_object_unref (parent);
+	}
 
-	g_free (display_name);
-	g_free (uri);
-	_g_object_unref (new_file);
-	g_object_unref (parent);
+	gth_catalog_set_name (data->catalog, gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("name_entry"))));
 
 	date_time = gth_datetime_new ();
 	gth_time_selector_get_value (GTH_TIME_SELECTOR (data->time_selector), date_time);
@@ -155,7 +170,9 @@ catalog_ready_cb (GObject  *object,
 	}
 
 	data->catalog = g_object_ref (object);
-	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET ("name_entry")), gth_catalog_get_display_name (data->file_data->file));
+
+	if (gth_catalog_get_name (data->catalog) != NULL)
+		gtk_entry_set_text (GTK_ENTRY (GET_WIDGET ("name_entry")), gth_catalog_get_name (data->catalog));
 	gth_time_selector_set_value (GTH_TIME_SELECTOR (data->time_selector), gth_catalog_get_date (data->catalog));
 	gth_hook_invoke ("dlg-catalog-properties", data->builder, data->file_data, data->catalog);
 	gtk_widget_show (data->dialog);
diff --git a/extensions/catalogs/dlg-organize-files.c b/extensions/catalogs/dlg-organize-files.c
index 5b72d6d..69e0509 100644
--- a/extensions/catalogs/dlg-organize-files.c
+++ b/extensions/catalogs/dlg-organize-files.c
@@ -110,8 +110,6 @@ dlg_organize_files (GthBrowser *browser,
 	data->builder = _gtk_builder_new_from_file ("organize-files.ui", "catalogs");
 	data->dialog = GET_WIDGET ("organize_files_dialog");
 
-	/*gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (GET_WIDGET ("start_at_filechooserbutton")), data->folder, NULL); FIXME */
-
 	/* Set the signals handlers. */
 
 	g_signal_connect (G_OBJECT (data->dialog),
diff --git a/extensions/catalogs/gth-catalog.c b/extensions/catalogs/gth-catalog.c
index 91bf1c3..b2f31f1 100644
--- a/extensions/catalogs/gth-catalog.c
+++ b/extensions/catalogs/gth-catalog.c
@@ -35,6 +35,7 @@ struct _GthCatalogPrivate {
 	GthCatalogType  type;
 	GFile          *file;
 	GList          *file_list;
+	char           *name;
 	GthDateTime    *date_time;
 	gboolean        active;
 	char           *order;
@@ -54,6 +55,7 @@ gth_catalog_finalize (GObject *object)
 	if (catalog->priv != NULL) {
 		if (catalog->priv->file != NULL)
 			g_object_unref (catalog->priv->file);
+		g_free (catalog->priv->name);
 		_g_object_list_unref (catalog->priv->file_list);
 		gth_datetime_free (catalog->priv->date_time);
 		g_free (catalog->priv->order);
@@ -100,7 +102,9 @@ base_read_from_doc (GthCatalog  *catalog,
 					       dom_element_get_attribute (child, "type"),
 					       g_strcmp0 (dom_element_get_attribute (child, "inverse"), "1") == 0);
 		if (g_strcmp0 (child->tag_name, "date") == 0)
-			gth_datetime_from_exif_date (catalog->priv->date_time, dom_element_get_attribute (child, "value"));
+			gth_datetime_from_exif_date (catalog->priv->date_time, dom_element_get_inner_text (child));
+		if (g_strcmp0 (child->tag_name, "name") == 0)
+			gth_catalog_set_name (catalog, dom_element_get_inner_text (child));
 	}
 	catalog->priv->file_list = g_list_reverse (catalog->priv->file_list);
 }
@@ -176,22 +180,23 @@ base_write_to_doc (GthCatalog  *catalog,
 		   DomDocument *doc,
 		   DomElement  *root)
 {
-	if (catalog->priv->order != NULL)
-		dom_element_append_child (root, dom_document_create_element (doc, "order",
-									     "type", catalog->priv->order,
-									     "inverse", (catalog->priv->order_inverse ? "1" : "0"),
-									     NULL));
+	if (catalog->priv->name != NULL)
+		dom_element_append_child (root, dom_document_create_element_with_text (doc, catalog->priv->name, "name", NULL));
 
 	if (gth_datetime_valid (catalog->priv->date_time)) {
 		char *s;
 
 		s = gth_datetime_to_exif_date (catalog->priv->date_time);
-		dom_element_append_child (root, dom_document_create_element (doc, "date",
-									     "value", s,
-									     NULL));
+		dom_element_append_child (root, dom_document_create_element_with_text (doc, s, "date", NULL));
 		g_free (s);
 	}
 
+	if (catalog->priv->order != NULL)
+		dom_element_append_child (root, dom_document_create_element (doc, "order",
+									     "type", catalog->priv->order,
+									     "inverse", (catalog->priv->order_inverse ? "1" : "0"),
+									     NULL));
+
 	if (catalog->priv->file_list != NULL) {
 		DomElement *node;
 		GList      *scan;
@@ -295,6 +300,46 @@ gth_catalog_get_file (GthCatalog *catalog)
 
 
 void
+gth_catalog_set_name (GthCatalog *catalog,
+		      const char *name)
+{
+	g_free (catalog->priv->name);
+	catalog->priv->name = NULL;
+	if ((name != NULL) && (strcmp (name, "") != 0))
+		catalog->priv->name = g_strdup (name);;
+}
+
+
+const char *
+gth_catalog_get_name (GthCatalog *catalog)
+{
+	return catalog->priv->name;
+}
+
+
+void
+gth_catalog_set_date (GthCatalog  *catalog,
+		      GthDateTime *date_time)
+{
+	if (gth_datetime_valid (date_time))
+		g_date_set_dmy (catalog->priv->date_time->date,
+				g_date_get_day (date_time->date),
+				g_date_get_month (date_time->date),
+				g_date_get_year (date_time->date));
+	else
+		g_date_clear (catalog->priv->date_time->date, 1);
+	gth_time_set_hms (catalog->priv->date_time->time, 0, 0, 0, 0);
+}
+
+
+GthDateTime *
+gth_catalog_get_date (GthCatalog *catalog)
+{
+	return catalog->priv->date_time;
+}
+
+
+void
 gth_catalog_set_order (GthCatalog *catalog,
 		       const char *order,
 		       gboolean    inverse)
@@ -424,28 +469,6 @@ gth_catalog_remove_file (GthCatalog *catalog,
 }
 
 
-void
-gth_catalog_set_date (GthCatalog  *catalog,
-		      GthDateTime *date_time)
-{
-	if (gth_datetime_valid (date_time))
-		g_date_set_dmy (catalog->priv->date_time->date,
-				g_date_get_day (date_time->date),
-				g_date_get_month (date_time->date),
-				g_date_get_year (date_time->date));
-	else
-		g_date_clear (catalog->priv->date_time->date, 1);
-	gth_time_set_hms (catalog->priv->date_time->time, 0, 0, 0, 0);
-}
-
-
-GthDateTime *
-gth_catalog_get_date (GthCatalog *catalog)
-{
-	return catalog->priv->date_time;
-}
-
-
 /* -- gth_catalog_list_async --  */
 
 
@@ -745,25 +768,138 @@ gth_catalog_get_icon (GFile *file)
 }
 
 
-char *
-gth_catalog_get_display_name (GFile *file)
+static char *
+get_tag_value (const char *buffer,
+	       const char *tag_start,
+	       const char *tag_end)
+{
+	char *begin_tag;
+	char *end_tag;
+	char *value;
+
+	value = NULL;
+	begin_tag = strstr (buffer, tag_start);
+	if (begin_tag != NULL) {
+		begin_tag += strlen (tag_start);
+		end_tag = strstr (begin_tag, tag_end);
+		value = g_strndup (begin_tag, end_tag - begin_tag);
+	}
+
+	return value;
+}
+
+
+static char *
+get_display_name (GFile       *file,
+		  const char  *name,
+		  GthDateTime *date_time)
+{
+	GString *display_name;
+	char    *basename;
+
+	display_name = g_string_new ("");
+	basename = g_file_get_basename (file);
+	if ((basename == NULL) || (strcmp (basename, "/") == 0)) {
+		 g_string_append (display_name, _("Catalogs"));
+	}
+	else {
+		if ((name == NULL) && ! gth_datetime_valid (date_time)) {
+			char *name;
+			char *utf8_name;
+
+			name = _g_uri_remove_extension (basename);
+			utf8_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL);
+			g_string_append (display_name, utf8_name);
+
+			g_free (utf8_name);
+			g_free (name);
+		}
+		else {
+			if (name != NULL)
+				g_string_append (display_name, name);
+
+			if (gth_datetime_valid (date_time)) {
+				char *formatted;
+
+				if (name != NULL)
+					g_string_append (display_name, " (");
+				formatted = gth_datetime_strftime (date_time, "%x");
+				g_string_append (display_name, formatted);
+				if (name != NULL)
+					g_string_append (display_name, ")");
+
+				g_free (formatted);
+			}
+		}
+	}
+
+	return g_string_free (display_name, FALSE);
+}
+
+
+void
+gth_catalog_update_standard_attributes (GFile     *file,
+				        GFileInfo *info)
 {
 	char *display_name = NULL;
 	char *basename;
 
 	basename = g_file_get_basename (file);
 	if ((basename != NULL) && (strcmp (basename, "/") != 0)) {
-		char *name;
+		char        *name;
+		GthDateTime *date_time;
+
+		name = NULL;
+		date_time = gth_datetime_new ();
+		{
+			GFile            *gio_file;
+			GFileInputStream *istream;
+			const int         buffer_size = 256;
+			char              buffer[buffer_size];
+
+			gio_file = gth_catalog_file_to_gio_file (file);
+			istream = g_file_read (gio_file, NULL, NULL);
+			if (istream != NULL) {
+				gssize n;
+
+				n = g_input_stream_read (G_INPUT_STREAM (istream), buffer, buffer_size - 1, NULL, NULL);
+				if (n > 0) {
+					char *exif_date;
+
+					buffer[n] = '\0';
+					name = get_tag_value (buffer, "<name>", "</name>");
+					exif_date = get_tag_value (buffer, "<date>", "</date>");
+					if (exif_date != NULL)
+						gth_datetime_from_exif_date (date_time, exif_date);
+
+					g_free (exif_date);
+				}
+				g_object_unref (istream);
+			}
+			g_object_unref (gio_file);
+		}
+		display_name = get_display_name (file, name, date_time);
 
-		name = _g_uri_remove_extension (basename);
-		display_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL);
+		if (gth_datetime_valid (date_time)) {
+			char *sort_order_s;
+			int   sort_order;
 
+			sort_order_s = gth_datetime_strftime (date_time, "%Y%m%d");
+			sort_order = atoi (sort_order_s);
+			g_file_info_set_sort_order (info, sort_order);
+		}
+
+		gth_datetime_free (date_time);
 		g_free (name);
 	}
 	else
 		display_name = g_strdup (_("Catalogs"));
 
-	return display_name;
+	if (display_name != NULL)
+		g_file_info_set_display_name (info, display_name);
+
+	g_free (display_name);
+	g_free (basename);
 }
 
 
@@ -828,16 +964,26 @@ gth_catalog_update_metadata (GthCatalog  *catalog,
 	const char *sort_type;
 	gboolean    sort_inverse;
 
+	/* sort::type,sort::inverse */
+
 	sort_type = gth_catalog_get_order (catalog, &sort_inverse);
 	if (sort_type != NULL) {
 		g_file_info_set_attribute_string (file_data->info, "sort::type", sort_type);
 		g_file_info_set_attribute_boolean (file_data->info, "sort::inverse", sort_inverse);
 	}
+	else {
+		g_file_info_remove_attribute (file_data->info, "sort::type");
+		g_file_info_remove_attribute (file_data->info, "sort::inverse");
+	}
+
+	/* general::event-date */
 
 	if (gth_datetime_valid (gth_catalog_get_date (catalog))) {
 		GObject *metadata;
 		char    *raw;
 		char    *formatted;
+		char    *sort_order_s;
+		int      sort_order;
 
 		metadata = (GObject *) gth_metadata_new ();
 		raw = gth_datetime_to_exif_date (gth_catalog_get_date (catalog));
@@ -849,10 +995,18 @@ gth_catalog_update_metadata (GthCatalog  *catalog,
 			      NULL);
 		g_file_info_set_attribute_object (file_data->info, "general::event-date", metadata);
 
+		sort_order_s = gth_datetime_strftime (gth_catalog_get_date (catalog), "%Y%m%d");
+		sort_order = atoi (sort_order_s);
+		g_file_info_set_sort_order (file_data->info, sort_order);
+
 		g_free (formatted);
 		g_free (raw);
 		g_object_unref (metadata);
 	}
 	else
 		g_file_info_remove_attribute (file_data->info, "general::event-date");
+
+	/* standard::display-name,standard::sort-order */
+
+	gth_catalog_update_standard_attributes (file_data->file, file_data->info);
 }
diff --git a/extensions/catalogs/gth-catalog.h b/extensions/catalogs/gth-catalog.h
index 170985c..3d16ce6 100644
--- a/extensions/catalogs/gth-catalog.h
+++ b/extensions/catalogs/gth-catalog.h
@@ -76,6 +76,12 @@ GthCatalog *  gth_catalog_new             (void);
 void          gth_catalog_set_file        (GthCatalog           *catalog,
 					   GFile                *file);
 GFile *       gth_catalog_get_file        (GthCatalog           *catalog);
+void          gth_catalog_set_name        (GthCatalog           *catalog,
+					   const char           *name);
+const char *  gth_catalog_get_name        (GthCatalog           *catalog);
+void          gth_catalog_set_date        (GthCatalog           *catalog,
+					   GthDateTime          *date_time);
+GthDateTime * gth_catalog_get_date        (GthCatalog           *catalog);
 void          gth_catalog_set_order       (GthCatalog           *catalog,
 					   const char           *order,
 					   gboolean              inverse);
@@ -97,9 +103,6 @@ void          gth_catalog_append_file     (GthCatalog           *catalog,
 					   GFile                *file);
 int           gth_catalog_remove_file     (GthCatalog           *catalog,
 					   GFile                *file);
-void          gth_catalog_set_date        (GthCatalog           *catalog,
-					   GthDateTime          *date_time);
-GthDateTime * gth_catalog_get_date        (GthCatalog           *catalog);
 void          gth_catalog_list_async      (GthCatalog           *catalog,
 					   const char           *attributes,
 					   GCancellable         *cancellable,
@@ -111,18 +114,19 @@ void          gth_catalog_update_metadata (GthCatalog           *catalog,
 
 /* utils */
 
-GFile *        gth_catalog_get_base                (void);
-GFile *        gth_catalog_file_to_gio_file        (GFile         *file);
-GFile *        gth_catalog_file_from_gio_file      (GFile         *file,
-						    GFile         *catalog);
-GFile *        gth_catalog_file_from_relative_path (const char    *name,
-						    const char    *file_extension);
-char *         gth_catalog_get_relative_path       (GFile         *file);
-GIcon *        gth_catalog_get_icon                (GFile         *file);
-char *         gth_catalog_get_display_name        (GFile         *file);
-void           gth_catalog_load_from_file          (GFile         *file,
-						    GCancellable  *cancellable,
-						    ReadyCallback  ready_func,
-						    gpointer       user_data);
+GFile *        gth_catalog_get_base                   (void);
+GFile *        gth_catalog_file_to_gio_file           (GFile         *file);
+GFile *        gth_catalog_file_from_gio_file         (GFile         *file,
+						       GFile         *catalog);
+GFile *        gth_catalog_file_from_relative_path    (const char    *name,
+						       const char    *file_extension);
+char *         gth_catalog_get_relative_path          (GFile         *file);
+GIcon *        gth_catalog_get_icon                   (GFile         *file);
+void           gth_catalog_update_standard_attributes (GFile         *file,
+						       GFileInfo     *info);
+void           gth_catalog_load_from_file             (GFile         *file,
+						       GCancellable  *cancellable,
+						       ReadyCallback  ready_func,
+						       gpointer       user_data);
 
 #endif /*GTH_CATALOG_H*/
diff --git a/extensions/catalogs/gth-file-source-catalogs.c b/extensions/catalogs/gth-file-source-catalogs.c
index 7599425..5107c37 100644
--- a/extensions/catalogs/gth-file-source-catalogs.c
+++ b/extensions/catalogs/gth-file-source-catalogs.c
@@ -73,7 +73,6 @@ update_file_info (GthFileSource *file_source,
 		  GFileInfo     *info)
 {
 	char *uri;
-	char *name;
 
 	uri = g_file_get_uri (catalog_file);
 
@@ -83,10 +82,7 @@ update_file_info (GthFileSource *file_source,
 		g_file_info_set_icon (info, g_themed_icon_new ("image-catalog"));
 		g_file_info_set_sort_order (info, 1);
 		g_file_info_set_attribute_boolean (info, "gthumb::no-child", TRUE);
-
-		name = gth_catalog_get_display_name (catalog_file);
-		g_file_info_set_display_name (info, name);
-		g_free (name);
+		gth_catalog_update_standard_attributes (catalog_file, info);
 	}
 	else if (g_str_has_suffix (uri, ".search")) {
 		g_file_info_set_file_type (info, G_FILE_TYPE_DIRECTORY);
@@ -94,10 +90,7 @@ update_file_info (GthFileSource *file_source,
 		g_file_info_set_icon (info, g_themed_icon_new ("image-search"));
 		g_file_info_set_sort_order (info, 1);
 		g_file_info_set_attribute_boolean (info, "gthumb::no-child", TRUE);
-
-		name = gth_catalog_get_display_name (catalog_file);
-		g_file_info_set_display_name (info, name);
-		g_free (name);
+		gth_catalog_update_standard_attributes (catalog_file, info);
 	}
 	else {
 		g_file_info_set_file_type (info, G_FILE_TYPE_DIRECTORY);
@@ -105,10 +98,7 @@ update_file_info (GthFileSource *file_source,
 		g_file_info_set_icon (info, g_themed_icon_new ("image-library"));
 		g_file_info_set_sort_order (info, 0);
 		g_file_info_set_attribute_boolean (info, "gthumb::no-child", FALSE);
-
-		name = gth_catalog_get_display_name (catalog_file);
-		g_file_info_set_display_name (info, name);
-		g_free (name);
+		gth_catalog_update_standard_attributes (catalog_file, info);
 	}
 
 	g_free (uri);
diff --git a/gthumb/gth-folder-tree.c b/gthumb/gth-folder-tree.c
index ce609c0..410ce34 100644
--- a/gthumb/gth-folder-tree.c
+++ b/gthumb/gth-folder-tree.c
@@ -764,10 +764,10 @@ _gth_folder_tree_set_file_data (GthFolderTree *folder_tree,
 				GtkTreeIter   *iter,
 				GthFileData   *file_data)
 {
-	GIcon       *icon;
-	GdkPixbuf   *pixbuf;
-	const char  *name;
-	char        *sort_key;
+	GIcon      *icon;
+	GdkPixbuf  *pixbuf;
+	const char *name;
+	char       *sort_key;
 
 	icon = g_file_info_get_icon (file_data->info);
 	pixbuf = gth_icon_cache_get_pixbuf (folder_tree->priv->icon_cache, icon);
diff --git a/gthumb/gth-time.c b/gthumb/gth-time.c
index bca1bf8..0a7ee13 100644
--- a/gthumb/gth-time.c
+++ b/gthumb/gth-time.c
@@ -128,7 +128,9 @@ gth_datetime_from_exif_date (GthDateTime *dt,
 	GDateDay    day;
 	long        val;
 
-	g_return_val_if_fail (exif_date != NULL, FALSE);
+	if (exif_date == NULL)
+		return FALSE;
+
 	g_return_val_if_fail (dt != NULL, FALSE);
 
 	while (g_ascii_isspace (*exif_date))



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