[gthumb] save and restore the "fit window to image" option



commit 6a5db65c3176099e3ca60c039a6c409534a1c288
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sat Aug 7 12:08:42 2010 +0200

    save and restore the "fit window to image" option

 .../data/gthumb-image-viewer.schemas.in            |   13 +++++++++
 extensions/image_viewer/gth-image-viewer-page.c    |   29 +++++++++++++++++--
 extensions/image_viewer/preferences.h              |    1 +
 3 files changed, 40 insertions(+), 3 deletions(-)
---
diff --git a/extensions/image_viewer/data/gthumb-image-viewer.schemas.in b/extensions/image_viewer/data/gthumb-image-viewer.schemas.in
index 4f7fd33..30d2222 100644
--- a/extensions/image_viewer/data/gthumb-image-viewer.schemas.in
+++ b/extensions/image_viewer/data/gthumb-image-viewer.schemas.in
@@ -93,5 +93,18 @@
 	</locale>
       </schema>
 
+      <schema>
+	<key>/schemas/apps/gthumb/viewer/shrink_wrap</key>
+	<applyto>/apps/gthumb/viewer/shrink_wrap</applyto>
+	<owner>gthumb</owner>
+	<type>bool</type>
+	<default>false</default>
+	<locale name="C">
+	  <short></short>
+	  <long> Whether to resize the window to fit the size of the image
+	  </long>
+	</locale>
+      </schema>
+
     </schemalist>
 </gconfschemafile>
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index 9b4c38f..6feb1ef 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -25,10 +25,10 @@
 #include <gdk/gdkkeysyms.h>
 #include <gthumb.h>
 #include "gth-image-viewer-page.h"
-
+#include "preferences.h"
 
 #define GTH_IMAGE_VIEWER_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTH_TYPE_IMAGE_VIEWER_PAGE, GthImageViewerPagePrivate))
-#define GCONF_NOTIFICATIONS 7
+#define GCONF_NOTIFICATIONS 8
 
 
 struct _GthImageViewerPagePrivate {
@@ -152,7 +152,7 @@ static void
 image_viewer_activate_action_view_shrink_wrap (GtkAction          *action,
 					       GthImageViewerPage *self)
 {
-	gth_image_viewer_page_shrink_wrap (self, gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
+	eel_gconf_set_boolean (PREF_VIEWER_SHRINK_WRAP, gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
 }
 
 
@@ -404,10 +404,23 @@ pref_reset_scrollbars_changed (GConfClient *client,
 
 
 static void
+pref_viewer_shrink_wrap_changed (GConfClient *client,
+				 guint        cnxn_id,
+				 GConfEntry  *entry,
+				 gpointer     user_data)
+{
+	GthImageViewerPage *self = user_data;
+
+	gth_image_viewer_page_shrink_wrap (self, eel_gconf_get_boolean (PREF_VIEWER_SHRINK_WRAP, FALSE));
+}
+
+
+static void
 gth_image_viewer_page_real_activate (GthViewerPage *base,
 				     GthBrowser    *browser)
 {
 	GthImageViewerPage *self;
+	GtkAction          *action;
 	int                 i;
 
 	self = (GthImageViewerPage*) base;
@@ -441,6 +454,11 @@ gth_image_viewer_page_real_activate (GthViewerPage *base,
 	gth_image_viewer_set_black_background (GTH_IMAGE_VIEWER (self->priv->viewer), eel_gconf_get_boolean (PREF_BLACK_BACKGROUND, FALSE));
 	gth_image_viewer_set_reset_scrollbars (GTH_IMAGE_VIEWER (self->priv->viewer), eel_gconf_get_boolean (PREF_RESET_SCROLLBARS, TRUE));
 
+	self->priv->shrink_wrap = eel_gconf_get_boolean (PREF_VIEWER_SHRINK_WRAP, FALSE);
+	action = gtk_action_group_get_action (self->priv->actions, "ImageViewer_View_ShrinkWrap");
+	if (action != NULL)
+		g_object_set (action, "active", self->priv->shrink_wrap, NULL);
+
 	gtk_widget_show (self->priv->viewer);
 
 	g_signal_connect (G_OBJECT (self->priv->viewer),
@@ -518,6 +536,11 @@ gth_image_viewer_page_real_activate (GthViewerPage *base,
 					   PREF_RESET_SCROLLBARS,
 					   pref_reset_scrollbars_changed,
 					   self);
+
+	self->priv->cnxn_id[i++] = eel_gconf_notification_add (
+					   PREF_VIEWER_SHRINK_WRAP,
+					   pref_viewer_shrink_wrap_changed,
+					   self);
 }
 
 
diff --git a/extensions/image_viewer/preferences.h b/extensions/image_viewer/preferences.h
index c9d878d..d9f3c1f 100644
--- a/extensions/image_viewer/preferences.h
+++ b/extensions/image_viewer/preferences.h
@@ -32,6 +32,7 @@
 #define  PREF_VIEWER_CHECK_TYPE             "/apps/gthumb/viewer/check_type"
 #define  PREF_VIEWER_CHECK_SIZE             "/apps/gthumb/viewer/check_size"
 #define  PREF_VIEWER_BLACK_BACKGROUND       "/apps/gthumb/viewer/black_background"
+#define  PREF_VIEWER_SHRINK_WRAP            "/apps/gthumb/viewer/shrink_wrap"
 
 void image_viewer__dlg_preferences_construct_cb (GtkWidget  *dialog,
 						 GthBrowser *browser,



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