[gthumb] Avoid useless read of tags/comments, bug 583833



commit 957519f269b1a023e1557b6a66ad2b97f2ce0ec1
Author: Marc Pavot <marc pavot gmail com>
Date:   Tue May 26 08:49:41 2009 -0400

    Avoid useless read of tags/comments, bug 583833
---
 libgthumb/file-data.c       |    5 +++--
 libgthumb/file-data.h       |    4 ++--
 libgthumb/gth-filter.c      |    8 ++++----
 libgthumb/print-callbacks.c |    3 +--
 src/catalog-png-exporter.c  |    3 +--
 src/catalog-web-exporter.c  |    3 +--
 src/dlg-change-date.c       |    3 +--
 src/dlg-image-prop.c        |    3 +--
 src/gth-browser.c           |    3 +--
 src/gth-fullscreen.c        |    3 +--
 src/gth-viewer.c            |    5 ++---
 11 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/libgthumb/file-data.c b/libgthumb/file-data.c
index f26b988..a51e821 100644
--- a/libgthumb/file-data.c
+++ b/libgthumb/file-data.c
@@ -395,12 +395,13 @@ file_data_has_local_path (FileData  *fd,
 }
 
 CommentData *
-file_data_get_comment (FileData *fd)
+file_data_get_comment (FileData *fd,
+                       gboolean  try_embedded)
 {
 	g_return_val_if_fail (fd != NULL, NULL);
 
 	if (!fd->comment_data)
-                fd->comment_data = comments_load_comment (fd->path, FALSE);
+                fd->comment_data = comments_load_comment (fd->path, try_embedded);
 
         return fd->comment_data;
 }
diff --git a/libgthumb/file-data.h b/libgthumb/file-data.h
index 254a3f2..87d72e1 100644
--- a/libgthumb/file-data.h
+++ b/libgthumb/file-data.h
@@ -78,8 +78,8 @@ void         file_data_update_mime_type    (FileData         *fd,
 void         file_data_update_all          (FileData         *fd,
 					    gboolean          fast_mime_type);				    
 void         file_data_update_comment      (FileData         *fd);
-CommentData* file_data_get_comment         (FileData         *fd);
-
+CommentData* file_data_get_comment         (FileData         *fd,
+                                            gboolean          try_embedded);
 GList*       file_data_list_from_uri_list  (GList            *list);
 GList*       uri_list_from_file_data_list  (GList            *list);
 GList*       file_data_list_dup            (GList            *list);
diff --git a/libgthumb/gth-filter.c b/libgthumb/gth-filter.c
index 7f3e5e1..861ad59 100644
--- a/libgthumb/gth-filter.c
+++ b/libgthumb/gth-filter.c
@@ -318,7 +318,7 @@ gth_test_match (GthTest  *test,
 		break;
 
 	case GTH_TEST_SCOPE_COMMENT:
-                cdata = file_data_get_comment (fdata);
+                cdata = file_data_get_comment (fdata, FALSE);
 		if (cdata)
 			result = test_string (test, cdata->comment);
 		else
@@ -326,13 +326,13 @@ gth_test_match (GthTest  *test,
 		break;
 
 	case GTH_TEST_SCOPE_PLACE:
-                cdata = file_data_get_comment (fdata);
+                cdata = file_data_get_comment (fdata, FALSE);
 		if (cdata != NULL)
 			result = test_string (test, cdata->place);
 		break;
 
 	case GTH_TEST_SCOPE_ALL:
-                cdata = file_data_get_comment (fdata);
+                cdata = file_data_get_comment (fdata, FALSE);
 		if (cdata != NULL) {
 			result = (test_string (test, fdata->utf8_name)
 		        	  || test_string (test, cdata->comment)
@@ -348,7 +348,7 @@ gth_test_match (GthTest  *test,
 		break;
 
 	case GTH_TEST_SCOPE_KEYWORDS:
-                cdata = file_data_get_comment (fdata);
+                cdata = file_data_get_comment (fdata, FALSE);
 		if (cdata != NULL)
 			result = test_keywords (test, cdata->keywords);
 		else
diff --git a/libgthumb/print-callbacks.c b/libgthumb/print-callbacks.c
index 569d9c6..aa0a8ce 100644
--- a/libgthumb/print-callbacks.c
+++ b/libgthumb/print-callbacks.c
@@ -2332,10 +2332,9 @@ image_loader_done_cb (ImageLoader            *il,
 		}
 	}
 
-	cdata = comments_load_comment (image->file->path, TRUE);
+	cdata = file_data_get_comment (image->file, TRUE);
 	if (cdata != NULL) {
 		image->comment = comments_get_comment_as_string (cdata, "\n", " - ");
-		comment_data_free (cdata);
 	}
 
 	data->current_image++;
diff --git a/src/catalog-png-exporter.c b/src/catalog-png-exporter.c
index 12b3818..ae81304 100644
--- a/src/catalog-png-exporter.c
+++ b/src/catalog-png-exporter.c
@@ -154,10 +154,9 @@ image_data_new (FileData *file)
 	idata = g_new0 (ImageData, 1);
 
 	idata->file = file_data_ref (file);
-	cdata = comments_load_comment (file->path, TRUE);
+	cdata = file_data_get_comment (file, TRUE);
 	if (cdata != NULL) {
 		idata->comment = comments_get_comment_as_string (cdata, "\n", "\n");
-		comment_data_free (cdata);
 	}
 	idata->thumb = NULL;
 	idata->image_width = 0;
diff --git a/src/catalog-web-exporter.c b/src/catalog-web-exporter.c
index 77ab1c5..ee0f262 100644
--- a/src/catalog-web-exporter.c
+++ b/src/catalog-web-exporter.c
@@ -146,7 +146,7 @@ image_data_new (FileData *file)
 
 	idata = g_new0 (ImageData, 1);
 
-	cdata = comments_load_comment (file->path, TRUE);
+	cdata = file_data_get_comment (file, TRUE);
 	if (cdata != NULL) {
 		idata->comment = g_strdup (cdata->comment);
 		idata->place = g_strdup (cdata->place);
@@ -162,7 +162,6 @@ image_data_new (FileData *file)
 		}
 		else
 			idata->date_time = NULL;
-		comment_data_free (cdata);
 	} 
 	else {
 		idata->comment = NULL;
diff --git a/src/dlg-change-date.c b/src/dlg-change-date.c
index b76a489..602eb5c 100644
--- a/src/dlg-change-date.c
+++ b/src/dlg-change-date.c
@@ -133,10 +133,9 @@ ok_clicked (GtkWidget  *button,
 			tz = (int) gtk_spin_button_get_value (GTK_SPIN_BUTTON (data->cd_timezone_spinbutton)) * (60 * 60);
 			if (is_active (data->cd_comment_checkbutton)) {
 				CommentData *cdata;
-				cdata = comments_load_comment (fdata->path, TRUE);
+				cdata = file_data_get_comment (fdata, TRUE);
 				if (cdata != NULL) {
 					comment_time = cdata->time + tz;
-					comment_data_free (cdata);
 				}
 			}
 			if (is_active (data->cd_last_modified_checkbutton)) 
diff --git a/src/dlg-image-prop.c b/src/dlg-image-prop.c
index dd0ee32..e11e38a 100644
--- a/src/dlg-image-prop.c
+++ b/src/dlg-image-prop.c
@@ -286,7 +286,7 @@ update_comment (DialogData *data)
 	g_return_if_fail (GTK_IS_WIDGET (data->i_tags_label));
 	g_return_if_fail (GTK_IS_TEXT_BUFFER (data->i_comment_textbuffer));
 
-	cdata = comments_load_comment (gth_window_get_image_filename (GTH_WINDOW (data->browser)), TRUE);
+	cdata = file_data_get_comment (gth_window_get_image_data (GTH_WINDOW (data->browser)), TRUE);
 
 	if (cdata == NULL) {
 		GtkTextIter  start_iter, end_iter;
@@ -344,7 +344,6 @@ update_comment (DialogData *data)
 		gtk_label_set_text (GTK_LABEL (data->i_tags_label), "");
 
 	g_free (comment);
-	comment_data_free (cdata);
 }
 
 
diff --git a/src/gth-browser.c b/src/gth-browser.c
index 09730db..5d5c1f8 100644
--- a/src/gth-browser.c
+++ b/src/gth-browser.c
@@ -504,7 +504,7 @@ update_image_comment (GthBrowser *browser)
 		return;
 	}
 
-	cdata = comments_load_comment (priv->image->path, TRUE);
+	cdata = file_data_get_comment (priv->image, TRUE);
 
 	if (comment_text_is_void (cdata)) {
 		GtkTextIter  iter;
@@ -544,7 +544,6 @@ update_image_comment (GthBrowser *browser)
 		gth_file_list_update_comment (priv->file_list, priv->image->path);
 
 	g_free (comment);
-	comment_data_free (cdata);
 }
 
 
diff --git a/src/gth-fullscreen.c b/src/gth-fullscreen.c
index 51e9adf..3c4a116 100644
--- a/src/gth-fullscreen.c
+++ b/src/gth-fullscreen.c
@@ -921,7 +921,7 @@ show_comment_on_image (GthFullscreen *fullscreen)
 	}
 
 	if (gth_window_get_image_filename (window) != NULL)
-		cdata = comments_load_comment (gth_window_get_image_filename (window), TRUE);
+		cdata = file_data_get_comment (gth_window_get_image_data (window), TRUE);
 	else
 		return;
 
@@ -932,7 +932,6 @@ show_comment_on_image (GthFullscreen *fullscreen)
 	if (cdata != NULL) {
 		comment = comments_get_comment_as_string (cdata, "\n", " - ");
 		keywords = comments_get_tags_as_string (cdata, ", ");
-		comment_data_free (cdata);
 	}
 
 	file_info = get_file_info (fullscreen);
diff --git a/src/gth-viewer.c b/src/gth-viewer.c
index 85ea0a6..badcf90 100644
--- a/src/gth-viewer.c
+++ b/src/gth-viewer.c
@@ -624,8 +624,8 @@ update_image_comment (GthViewer *viewer)
                 return;
 	}
 
-	cdata = comments_load_comment (priv->image->path, TRUE);
-
+	cdata = file_data_get_comment (priv->image, TRUE);
+        
 	if (cdata == NULL) {
 		GtkTextIter  iter;
 		const char  *click_here = _("[Press 'c' to add a comment]");
@@ -660,7 +660,6 @@ update_image_comment (GthViewer *viewer)
 	}
 
 	g_free (comment);
-	comment_data_free (cdata);
 }
 
 



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