[frogr] Allow removing similar descriptions from multiple pictures (#653991)
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Allow removing similar descriptions from multiple pictures (#653991)
- Date: Thu, 7 Jul 2011 15:04:39 +0000 (UTC)
commit 5dce8d3dd2b45202de75896992a7452d8d1caa34
Author: Mario Sanchez Prada <msanchez igalia com>
Date: Thu Jul 7 17:03:07 2011 +0200
Allow removing similar descriptions from multiple pictures (#653991)
https://bugzilla.gnome.org/show_bug.cgi?id=653991
src/frogr-details-dialog.c | 31 +++++++++++++++++++++++++++----
1 files changed, 27 insertions(+), 4 deletions(-)
---
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index 9969aad..ddca39e 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -70,8 +70,8 @@ typedef struct _FrogrDetailsDialogPrivate {
GtkTreeModel *treemodel;
GSList *pictures;
-
gulong picture_button_handler_id;
+ gchar *reference_description;
} FrogrDetailsDialogPrivate;
/* Properties */
@@ -758,12 +758,21 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
}
/* Fill in with data */
+
if (title_val != NULL)
gtk_entry_set_text (GTK_ENTRY (priv->title_entry), title_val);
if (desc_val != NULL)
- gtk_text_buffer_set_text (GTK_TEXT_BUFFER (priv->text_buffer),
- desc_val, -1);
+ {
+ gtk_text_buffer_set_text (GTK_TEXT_BUFFER (priv->text_buffer), desc_val, -1);
+ priv->reference_description = g_strstrip (g_strdup (desc_val));
+ }
+ else
+ {
+ /* We store "" in this case for ease further comparisons. */
+ priv->reference_description = g_strdup ("");
+ }
+
if (tags_val != NULL)
gtk_entry_set_text (GTK_ENTRY (priv->tags_entry), tags_val);
@@ -962,8 +971,10 @@ _save_data (FrogrDetailsDialog *self)
if (!g_str_equal (title, "") || (n_pictures <= 1))
frogr_picture_set_title (picture, title);
- if (!g_str_equal (description, "") || (n_pictures <= 1))
+
+ if (!g_str_equal (description, priv->reference_description))
frogr_picture_set_description (picture, description);
+
if (!g_str_equal (tags, "") || (n_pictures <= 1))
frogr_picture_set_tags (picture, tags);
@@ -1125,6 +1136,16 @@ _frogr_details_dialog_dispose (GObject *object)
}
static void
+_frogr_details_dialog_finalize (GObject *object)
+{
+ FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (object);
+
+ g_free (priv->reference_description);
+
+ G_OBJECT_CLASS(frogr_details_dialog_parent_class)->finalize (object);
+}
+
+static void
frogr_details_dialog_class_init (FrogrDetailsDialogClass *klass)
{
GObjectClass *obj_class = (GObjectClass *)klass;
@@ -1134,6 +1155,7 @@ frogr_details_dialog_class_init (FrogrDetailsDialogClass *klass)
obj_class->set_property = _frogr_details_dialog_set_property;
obj_class->get_property = _frogr_details_dialog_get_property;
obj_class->dispose = _frogr_details_dialog_dispose;
+ obj_class->finalize = _frogr_details_dialog_finalize;
/* Install properties */
pspec = g_param_spec_pointer ("pictures",
@@ -1156,6 +1178,7 @@ frogr_details_dialog_init (FrogrDetailsDialog *self)
priv->treemodel = NULL;
priv->pictures = NULL;
priv->picture_button_handler_id = 0;
+ priv->reference_description = NULL;
_create_widgets (self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]