[frogr] Enable opening multiple pictures from details dialog



commit 8b8c728364d6ea48e9a1fc2a60de8aa5fa769af3
Author: Mario Sanchez Prada <msanchez igalia com>
Date:   Fri Jul 8 16:20:27 2011 +0200

    Enable opening multiple pictures from details dialog

 src/frogr-details-dialog.c |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)
---
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index ddca39e..3d1bfd0 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -831,8 +831,6 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
 					     frogr_util_get_app_data_dir ());
       pixbuf = gdk_pixbuf_new_from_file (mpictures_full_path, NULL);
       gtk_image_set_from_pixbuf (GTK_IMAGE (priv->picture_img), pixbuf);
-      gtk_container_add (GTK_CONTAINER (priv->picture_container),
-                         priv->picture_img);
       g_object_unref (pixbuf);
       g_free (mpictures_full_path);
 
@@ -847,17 +845,18 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
       GdkPixbuf *pixbuf = frogr_picture_get_pixbuf (picture);
       GdkPixbuf *s_pixbuf = _get_scaled_pixbuf (pixbuf);
       gtk_image_set_from_pixbuf (GTK_IMAGE (priv->picture_img), s_pixbuf);
-      gtk_button_set_image (GTK_BUTTON (priv->picture_button),
-                            priv->picture_img);
-      gtk_container_add (GTK_CONTAINER (priv->picture_container),
-                         priv->picture_button);
-      priv->picture_button_handler_id =
-        g_signal_connect (G_OBJECT (priv->picture_button), "clicked",
-                          G_CALLBACK (_on_picture_button_clicked),
-                          (gpointer) frogr_picture_get_fileuri (picture));
       g_object_unref (s_pixbuf);
     }
 
+  gtk_button_set_image (GTK_BUTTON (priv->picture_button),
+                        priv->picture_img);
+
+  gtk_container_add (GTK_CONTAINER (priv->picture_container),
+                     priv->picture_button);
+  priv->picture_button_handler_id =
+    g_signal_connect (G_OBJECT (priv->picture_button), "clicked",
+                      G_CALLBACK (_on_picture_button_clicked),
+                      self);
   /* Update UI */
   _update_ui (self);
 
@@ -1053,12 +1052,20 @@ _on_toggle_button_toggled (GtkToggleButton *tbutton, gpointer data)
 static void
 _on_picture_button_clicked (GtkButton *button, gpointer data)
 {
-  const gchar *image_file = (gchar *) data;
+  FrogrDetailsDialog *self = FROGR_DETAILS_DIALOG (data);
+  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
+  GSList *current_pic = NULL;
+  GList *uris_list = NULL;
 
-  if (image_file == NULL)
-    return;
+  for (current_pic = priv->pictures; current_pic; current_pic = g_slist_next (current_pic))
+    {
+      FrogrPicture *picture = FROGR_PICTURE (current_pic->data);
+      uris_list = g_list_append (uris_list, (gchar*) frogr_picture_get_fileuri (picture));
+    }
+
+  frogr_util_open_images_in_viewer (uris_list);
 
-  frogr_util_open_uri (image_file);
+  g_list_free (uris_list);
 }
 
 static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data)



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