[Goodies-commits] r6530 - in ristretto/branches/ristretto-gio: . src

Stephan Arts stephan at xfce.org
Fri Jan 23 17:30:03 CET 2009


Author: stephan
Date: 2009-01-23 16:30:03 +0000 (Fri, 23 Jan 2009)
New Revision: 6530

Modified:
   ristretto/branches/ristretto-gio/configure.in.in
   ristretto/branches/ristretto-gio/src/Makefile.am
   ristretto/branches/ristretto-gio/src/image.c
   ristretto/branches/ristretto-gio/src/image.h
   ristretto/branches/ristretto-gio/src/image_cache.h
   ristretto/branches/ristretto-gio/src/image_transformation.h
   ristretto/branches/ristretto-gio/src/main.c
   ristretto/branches/ristretto-gio/src/main_window.c
   ristretto/branches/ristretto-gio/src/main_window.h
   ristretto/branches/ristretto-gio/src/navigator.c
   ristretto/branches/ristretto-gio/src/picture_viewer.c
   ristretto/branches/ristretto-gio/src/settings.c
   ristretto/branches/ristretto-gio/src/settings.h
Log:
- Update .po files
- Implement xfconf configuration backend



Modified: ristretto/branches/ristretto-gio/configure.in.in
===================================================================
--- ristretto/branches/ristretto-gio/configure.in.in	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/configure.in.in	2009-01-23 16:30:03 UTC (rev 6530)
@@ -60,7 +60,7 @@
 XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.4.0])
 XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
 
-XDT_CHECK_OPTIONAL_PACKAGE ([XFCONF], [xfconf-0], [4.5.93], [xfconf], [xfconf configuration backend])
+XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.5.93])
 
 
 dnl check for debugging support

Modified: ristretto/branches/ristretto-gio/src/Makefile.am
===================================================================
--- ristretto/branches/ristretto-gio/src/Makefile.am	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/Makefile.am	2009-01-23 16:30:03 UTC (rev 6530)
@@ -21,6 +21,7 @@
 	$(GTHREAD_CFLAGS) \
 	$(GIO_CFLAGS) \
 	$(LIBEXIF_CFLAGS) \
+	$(XFCONF_CFLAGS) \
 	$(LIBXFCE4UTIL_CFLAGS) \
 	$(LIBXFCEGUI4_CFLAGS) \
 	-DDATADIR=\"$(datadir)\" \
@@ -33,6 +34,7 @@
 	$(GTHREAD_LIBS) \
 	$(GIO_LIBS) \
 	$(LIBEXIF_LIBS) \
+	$(XFCONF_LIBS) \
 	$(LIBXFCE4UTIL_LIBS) \
 	$(LIBXFCEGUI4_LIBS)
 

Modified: ristretto/branches/ristretto-gio/src/image.c
===================================================================
--- ristretto/branches/ristretto-gio/src/image.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/image.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -395,6 +395,7 @@
     {
         rstto_image_cache_push_image (cache, image);
     }
+    return TRUE;
 }
 
 
@@ -433,9 +434,9 @@
 GFile *
 rstto_image_get_file (RsttoImage *image)
 {
-    g_return_if_fail (image != NULL);
-    g_return_if_fail (image->priv != NULL);
-    g_return_if_fail (image->priv->file != NULL);
+    g_return_val_if_fail (image != NULL, NULL);
+    g_return_val_if_fail (image->priv != NULL, NULL);
+    g_return_val_if_fail (image->priv->file != NULL, NULL);
 
     return image->priv->file;
 }
@@ -450,8 +451,8 @@
 GdkPixbuf *
 rstto_image_get_thumbnail (RsttoImage *image)
 {
-    g_return_if_fail (image != NULL);
-    g_return_if_fail (image->priv != NULL);
+    g_return_val_if_fail (image != NULL, NULL);
+    g_return_val_if_fail (image->priv != NULL, NULL);
 
 
     return image->priv->thumbnail;
@@ -467,8 +468,8 @@
 GdkPixbuf *
 rstto_image_get_pixbuf (RsttoImage *image)
 {
-    g_return_if_fail (image != NULL);
-    g_return_if_fail (image->priv != NULL);
+    g_return_val_if_fail (image != NULL, NULL);
+    g_return_val_if_fail (image->priv != NULL, NULL);
 
 
     return image->priv->pixbuf;

Modified: ristretto/branches/ristretto-gio/src/image.h
===================================================================
--- ristretto/branches/ristretto-gio/src/image.h	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/image.h	2009-01-23 16:30:03 UTC (rev 6530)
@@ -70,6 +70,7 @@
 };
 
 RsttoImage *rstto_image_new (GFile *file);
+GType       rstto_image_get_type ();
 
 GdkPixbuf *rstto_image_get_thumbnail (RsttoImage *image);
 GdkPixbuf *rstto_image_get_pixbuf (RsttoImage *image);

Modified: ristretto/branches/ristretto-gio/src/image_cache.h
===================================================================
--- ristretto/branches/ristretto-gio/src/image_cache.h	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/image_cache.h	2009-01-23 16:30:03 UTC (rev 6530)
@@ -47,6 +47,8 @@
 
 RsttoImageCache *rstto_image_cache_new ();
 
+void rstto_image_cache_push_image (RsttoImageCache *cache, RsttoImage *image);
+
 G_END_DECLS
 
 #endif /* __RISTRETTO_IMAGE_CACHE_H__ */

Modified: ristretto/branches/ristretto-gio/src/image_transformation.h
===================================================================
--- ristretto/branches/ristretto-gio/src/image_transformation.h	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/image_transformation.h	2009-01-23 16:30:03 UTC (rev 6530)
@@ -56,6 +56,9 @@
     GObjectClass parent_class;
 };
 
+GType
+rstto_image_transformation_get_type ();
+
 G_END_DECLS
 
 #endif /* __RISTRETTO_IMAGE_TRANSFORMATION_H__ */

Modified: ristretto/branches/ristretto-gio/src/main.c
===================================================================
--- ristretto/branches/ristretto-gio/src/main.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/main.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -17,12 +17,14 @@
  */
 
 #include <config.h>
+#include <glib.h>
+#include <gio/gio.h>
+
+#include <xfconf/xfconf.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include <string.h>
 
-#include <glib.h>
-#include <gio/gio.h>
 #include <libxfce4util/libxfce4util.h>
 #include <libexif/exif-data.h>
 
@@ -68,7 +70,6 @@
 int
 main(int argc, char **argv)
 {
-    static XfceRc *xfce_rc;
     GError *cli_error = NULL;
 
     #ifdef ENABLE_NLS
@@ -93,9 +94,10 @@
         return 0;
     }
 
+    xfconf_init(NULL);
+
     gtk_window_set_default_icon_name("ristretto");
     RsttoSettings *settings = rstto_settings_new();
-    rstto_settings_load (settings);
 
     RsttoNavigator *navigator = rstto_navigator_new ();
     GtkWidget *window = rstto_main_window_new (navigator, FALSE);
@@ -118,8 +120,9 @@
 
     gtk_main();
 
-    rstto_settings_save (settings);
+    g_object_unref (settings);
 
+    xfconf_shutdown();
 
     return 0;
 }

Modified: ristretto/branches/ristretto-gio/src/main_window.c
===================================================================
--- ristretto/branches/ristretto-gio/src/main_window.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/main_window.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -31,6 +31,7 @@
 #include "image_transformation.h"
 #include "image_transform_orientation.h"
 
+#include "settings.h"
 #include "navigator.h"
 #include "picture_viewer.h"
 #include "main_window.h"
@@ -54,10 +55,13 @@
         gboolean        toolbar_visible;
     } props;
 
+    gint window_save_geometry_timer_id;
+
     RsttoNavigatorIter *iter;
 
     GtkActionGroup *action_group;
-    GtkUIManager *ui_manager;
+    GtkUIManager   *ui_manager;
+    RsttoSettings  *settings_manager;
 
     GtkWidget *menubar;
     GtkWidget *toolbar;
@@ -73,7 +77,7 @@
 };
 
 static void
-rstto_main_window_init(RsttoMainWindow *);
+rstto_main_window_init (RsttoMainWindow *);
 static void
 rstto_main_window_class_init(RsttoMainWindowClass *);
 static void
@@ -90,6 +94,11 @@
                                 GValue     *value,
                                 GParamSpec *pspec);
 
+static gboolean
+rstto_window_save_geometry_timer (gpointer user_data);
+static gboolean
+cb_rstto_main_window_configure_event (GtkWidget *widget, GdkEventConfigure *event);
+
 static void
 cb_rstto_main_window_navigator_new_image (RsttoNavigator *navigator, RsttoImage *image, RsttoMainWindow *window);
 static void
@@ -235,9 +244,10 @@
 }
 
 static void
-rstto_main_window_init(RsttoMainWindow *window)
+rstto_main_window_init (RsttoMainWindow *window)
 {
     GtkAccelGroup *accel_group;
+    GValue         show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, };
     GtkWidget     *separator, *back, *forward;
     GtkWidget     *main_vbox = gtk_vbox_new (FALSE, 0);
 
@@ -248,6 +258,8 @@
     window->priv->iter = NULL;
 
     window->priv->ui_manager = gtk_ui_manager_new ();
+    window->priv->settings_manager = rstto_settings_new();
+
     accel_group = gtk_ui_manager_get_accel_group (window->priv->ui_manager);
     gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
 
@@ -288,6 +300,35 @@
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->statusbar, FALSE, FALSE, 0);
 
     rstto_main_window_set_sensitive (window, FALSE);
+    gtk_widget_set_no_show_all (window->priv->toolbar, TRUE);
+
+    g_value_init (&window_width, G_TYPE_UINT);
+    g_value_init (&window_height, G_TYPE_UINT);
+    g_object_get_property (G_OBJECT(window->priv->settings_manager), "window-width", &window_width);
+    g_object_get_property (G_OBJECT(window->priv->settings_manager), "window-height", &window_height);
+
+    gtk_window_set_default_size(GTK_WINDOW(window), g_value_get_uint (&window_width), g_value_get_uint (&window_height));
+
+    g_value_init (&show_toolbar_val, G_TYPE_BOOLEAN);
+    g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-toolbar", &show_toolbar_val);
+    if (g_value_get_boolean (&show_toolbar_val))
+    {
+        gtk_check_menu_item_set_active (
+                GTK_CHECK_MENU_ITEM (
+                        gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-toolbar")),
+                TRUE);
+        gtk_widget_show (window->priv->toolbar);
+    }
+    else
+    {
+        gtk_check_menu_item_set_active (
+                GTK_CHECK_MENU_ITEM (
+                        gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-toolbar")),
+                FALSE);
+        gtk_widget_hide (window->priv->toolbar);
+    }
+
+    g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL);
 }
 
 static void
@@ -319,6 +360,12 @@
 {
     RsttoMainWindow *window = RSTTO_MAIN_WINDOW(object);
     G_OBJECT_CLASS (parent_class)->dispose(object); 
+
+    if (window->priv->settings_manager)
+    {
+        g_object_unref (window->priv->settings_manager);
+        window->priv->settings_manager = NULL;
+    }
 }
 
 /**
@@ -571,7 +618,7 @@
 cb_rstto_main_window_rotate_cw (GtkWidget *widget, RsttoMainWindow *window)
 {
     RsttoImageTransformation *transform;
-    RsttoImage *image;
+    RsttoImage *image = NULL;
 
     if (window->priv->iter)
         image = rstto_navigator_iter_get_image (window->priv->iter);
@@ -595,7 +642,7 @@
 cb_rstto_main_window_rotate_ccw (GtkWidget *widget, RsttoMainWindow *window)
 {
     RsttoImageTransformation *transform;
-    RsttoImage *image;
+    RsttoImage *image = NULL;
 
     if (window->priv->iter)
         image = rstto_navigator_iter_get_image (window->priv->iter);
@@ -879,14 +926,20 @@
 static void
 cb_rstto_main_window_toggle_show_toolbar (GtkWidget *widget, RsttoMainWindow *window)
 {
+    GValue val = {0,};
+    g_value_init (&val, G_TYPE_BOOLEAN);
+
     if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
     {
         gtk_widget_show (window->priv->toolbar);
+        g_value_set_boolean (&val, TRUE);
     }
     else
     {
         gtk_widget_hide (window->priv->toolbar);
+        g_value_set_boolean (&val, FALSE);
     }
+    g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-toolbar", &val);
 }
 
 /**
@@ -918,8 +971,8 @@
 static void
 cb_rstto_main_window_navigator_invalidate_iters (RsttoNavigator *navigator, RsttoMainWindow *window)
 { 
-    RsttoImage *image;
-    gint pos;
+    RsttoImage *image = NULL;
+    gint pos = 0;
 
     /* If we have an iterator, retrieve the image associated to it */
     if (window->priv->iter)
@@ -961,3 +1014,60 @@
 
     rstto_main_window_navigator_iter_changed (window);
 }
+
+static gboolean
+cb_rstto_main_window_configure_event (GtkWidget *widget, GdkEventConfigure *event)
+{
+    RsttoMainWindow *window = RSTTO_MAIN_WINDOW(widget);
+    /* shamelessly copied from thunar, written by benny */
+    /* check if we have a new dimension here */
+    if (widget->allocation.width != event->width || widget->allocation.height != event->height)
+    {
+        /* drop any previous timer source */
+        if (window->priv->window_save_geometry_timer_id > 0)
+        {
+            g_source_remove (window->priv->window_save_geometry_timer_id);
+        }
+        window->priv->window_save_geometry_timer_id = 0;
+
+        /* check if we should schedule another save timer */
+        if (GTK_WIDGET_VISIBLE (widget))
+        {
+            /* save the geometry one second after the last configure event */
+            window->priv->window_save_geometry_timer_id = g_timeout_add (
+                    1000, rstto_window_save_geometry_timer,
+                    widget);
+        }
+    }
+
+    /* let Gtk+ handle the configure event */
+    return FALSE;
+}
+
+static gboolean
+rstto_window_save_geometry_timer (gpointer user_data)
+{
+    GtkWindow *window = GTK_WINDOW(user_data);
+    gint width = 0;
+    gint height = 0;
+    /* check if the window is still visible */
+    if (GTK_WIDGET_VISIBLE (window))
+    {
+        /* determine the current state of the window */
+        gint state = gdk_window_get_state (GTK_WIDGET (window)->window);
+
+        /* don't save geometry for maximized or fullscreen windows */
+        if ((state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)) == 0)
+        {
+            /* determine the current width/height of the window... */
+            gtk_window_get_size (GTK_WINDOW (window), &width, &height);
+
+            /* ...and remember them as default for new windows */
+            g_object_set (G_OBJECT (RSTTO_MAIN_WINDOW(window)->priv->settings_manager), 
+                          "window-width", width,
+                          "window-height", height,
+                          NULL);
+        }
+    }
+    return FALSE;
+}

Modified: ristretto/branches/ristretto-gio/src/main_window.h
===================================================================
--- ristretto/branches/ristretto-gio/src/main_window.h	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/main_window.h	2009-01-23 16:30:03 UTC (rev 6530)
@@ -64,10 +64,7 @@
     RSTTO_DESKTOP_GNOME
 } RsttoDesktop;
 
-static gboolean rstto_has_xfconf_query = FALSE;
-static gboolean rstto_has_gconftool = FALSE;
 
-
 GType      rstto_main_window_get_type();
 
 GtkWidget *rstto_main_window_new (RsttoNavigator *, gboolean);

Modified: ristretto/branches/ristretto-gio/src/navigator.c
===================================================================
--- ristretto/branches/ristretto-gio/src/navigator.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/navigator.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -126,7 +126,7 @@
 static void
 rstto_navigator_dispose(GObject *object)
 {
-    RsttoNavigator *navigator = RSTTO_NAVIGATOR(object);
+    /*RsttoNavigator *navigator = RSTTO_NAVIGATOR(object);*/
 }
 
 RsttoNavigator *
@@ -206,10 +206,12 @@
     if (g_list_next (iter->iter))
     {
         iter->iter = g_list_next (iter->iter);
+        return TRUE;
     }
     else
     {
         iter->iter = g_list_first (iter->list);
+        return FALSE;
     }
 }
 
@@ -219,10 +221,12 @@
     if (g_list_previous (iter->iter))
     {
         iter->iter = g_list_previous (iter->iter);
+        return TRUE;
     }
     else
     {
         iter->iter = g_list_last (iter->list);
+        return FALSE;
     }
 }
 

Modified: ristretto/branches/ristretto-gio/src/picture_viewer.c
===================================================================
--- ristretto/branches/ristretto-gio/src/picture_viewer.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/picture_viewer.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -1230,6 +1230,8 @@
     viewer->priv->zoom_mode = mode;
     switch (viewer->priv->zoom_mode)
     {
+        case RSTTO_ZOOM_MODE_CUSTOM:
+            break;
         case RSTTO_ZOOM_MODE_FIT:
             rstto_picture_viewer_fit_scale (viewer);
             break;
@@ -1259,7 +1261,7 @@
 
     if (viewer->priv->image)
     {
-        rstto_image_load (viewer->priv->image, TRUE, NULL);
+        rstto_image_load (viewer->priv->image, FALSE, NULL);
         g_object_ref (viewer->priv->image);
         g_signal_connect (G_OBJECT (viewer->priv->image), "updated", G_CALLBACK (cb_rstto_picture_viewer_image_updated), viewer);
     }

Modified: ristretto/branches/ristretto-gio/src/settings.c
===================================================================
--- ristretto/branches/ristretto-gio/src/settings.c	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/settings.c	2009-01-23 16:30:03 UTC (rev 6530)
@@ -19,6 +19,8 @@
 #include <config.h>
 
 #include <glib.h>
+#include <gtk/gtk.h>
+#include <xfconf/xfconf.h>
 #include <libxfce4util/libxfce4util.h>
 
 #include "settings.h"
@@ -30,11 +32,32 @@
 
 static void
 rstto_settings_dispose (GObject *object);
+static void
+rstto_settings_finalize (GObject *object);
 
+static void
+rstto_settings_set_property    (GObject      *object,
+                                guint         property_id,
+                                const GValue *value,
+                                GParamSpec   *pspec);
+static void
+rstto_settings_get_property    (GObject    *object,
+                                guint       property_id,
+                                GValue     *value,
+                                GParamSpec *pspec);
+
 static GObjectClass *parent_class = NULL;
 
 static RsttoSettings *settings_object;
 
+enum
+{
+    PROP_0,
+    PROP_SHOW_TOOLBAR,
+    PROP_WINDOW_WIDTH,
+    PROP_WINDOW_HEIGHT,
+};
+
 GType
 rstto_settings_get_type ()
 {
@@ -63,27 +86,86 @@
 
 struct _RsttoSettingsPriv
 {
-    gpointer t;
+    XfconfChannel *channel;
+
+    gboolean show_toolbar;
+    guint    window_width;
+    guint    window_height;
 };
 
 
 static void
 rstto_settings_init (GObject *object)
 {
+    gchar *accelmap_path = NULL;
+
     RsttoSettings *settings = RSTTO_SETTINGS (object);
 
     settings->priv = g_new0 (RsttoSettingsPriv, 1);
+    settings->priv->channel = xfconf_channel_new ("ristretto");
+
+    accelmap_path = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm");
+    if (accelmap_path)
+    {
+        gtk_accel_map_load (accelmap_path);
+        g_free (accelmap_path);
+        accelmap_path = NULL;
+    }
+
+    xfconf_g_property_bind (settings->priv->channel, "/window/width", G_TYPE_UINT, settings, "window-width");
+    xfconf_g_property_bind (settings->priv->channel, "/window/height", G_TYPE_UINT, settings, "window-height");
+    xfconf_g_property_bind (settings->priv->channel, "/window/show-toolbar", G_TYPE_BOOLEAN, settings, "show-toolbar");
 }
 
 
 static void
 rstto_settings_class_init (GObjectClass *object_class)
 {
+    GParamSpec *pspec;
+
     RsttoSettingsClass *settings_class = RSTTO_SETTINGS_CLASS (object_class);
 
     parent_class = g_type_class_peek_parent (settings_class);
 
     object_class->dispose = rstto_settings_dispose;
+    object_class->finalize = rstto_settings_finalize;
+
+    object_class->set_property = rstto_settings_set_property;
+    object_class->get_property = rstto_settings_get_property;
+
+    pspec = g_param_spec_boolean ("show-toolbar",
+                                  "",
+                                  "",
+                                  TRUE,
+                                  G_PARAM_READWRITE);
+
+    g_object_class_install_property (object_class,
+                                     PROP_SHOW_TOOLBAR,
+                                     pspec);
+
+    pspec = g_param_spec_uint    ("window-width",
+                                  "",
+                                  "",
+                                  0,
+                                  G_MAXUINT,
+                                  600,
+                                  G_PARAM_READWRITE);
+
+    g_object_class_install_property (object_class,
+                                     PROP_WINDOW_WIDTH,
+                                     pspec);
+
+    pspec = g_param_spec_uint    ("window-height",
+                                  "",
+                                  "",
+                                  0,
+                                  G_MAXUINT,
+                                  400,
+                                  G_PARAM_READWRITE);
+
+    g_object_class_install_property (object_class,
+                                     PROP_WINDOW_HEIGHT,
+                                     pspec);
 }
 
 /**
@@ -103,9 +185,29 @@
     }
 }
 
+/**
+ * rstto_settings_finalize:
+ * @object:
+ *
+ */
+static void
+rstto_settings_finalize (GObject *object)
+{
+    gchar *accelmap_path = NULL;
+    /*RsttoSettings *settings = RSTTO_SETTINGS (object);*/
 
+    accelmap_path = xfce_resource_save_location (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm", TRUE);
+    if (accelmap_path)
+    {
+        gtk_accel_map_save (accelmap_path);
+        g_free (accelmap_path);
+        accelmap_path = NULL;
+    }
+    
+}
 
 
+
 /**
  * rstto_settings_new:
  *
@@ -128,44 +230,52 @@
 }
 
 
-gboolean 
-rstto_settings_load (RsttoSettings *settings)
+static void
+rstto_settings_set_property    (GObject      *object,
+                                guint         property_id,
+                                const GValue *value,
+                                GParamSpec   *pspec)
 {
-    gchar *accelmap_path = NULL;
+    RsttoSettings *settings = RSTTO_SETTINGS (object);
 
-    accelmap_path = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm");
-    if (accelmap_path)
+    switch (property_id)
     {
-        gtk_accel_map_load (accelmap_path);
-        g_free (accelmap_path);
-        accelmap_path = NULL;
+        case PROP_SHOW_TOOLBAR:
+            settings->priv->show_toolbar = g_value_get_boolean (value);
+            break;
+        case PROP_WINDOW_WIDTH:
+            settings->priv->window_width = g_value_get_uint (value);
+            break;
+        case PROP_WINDOW_HEIGHT:
+            settings->priv->window_height = g_value_get_uint (value);
+            break;
+        default:
+            break;
     }
 
-    return TRUE;
 }
 
-gboolean
-rstto_settings_save (RsttoSettings *settings)
+static void
+rstto_settings_get_property    (GObject    *object,
+                                guint       property_id,
+                                GValue     *value,
+                                GParamSpec *pspec)
 {
-    gchar *accelmap_path = NULL;
-    accelmap_path = xfce_resource_save_location (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm", TRUE);
-    if (accelmap_path)
+    RsttoSettings *settings = RSTTO_SETTINGS (object);
+
+    switch (property_id)
     {
-        gtk_accel_map_save (accelmap_path);
-        g_free (accelmap_path);
-        accelmap_path = NULL;
+        case PROP_SHOW_TOOLBAR:
+            g_value_set_boolean (value, settings->priv->show_toolbar);
+            break;
+        case PROP_WINDOW_WIDTH:
+            g_value_set_uint (value, settings->priv->window_width);
+            break;
+        case PROP_WINDOW_HEIGHT:
+            g_value_set_uint (value, settings->priv->window_height);
+            break;
+        default:
+            break;
+
     }
-    return TRUE;
 }
-
-void
-rstto_settings_read (RsttoSettings *settings, GValue *value)
-{
-
-}
-
-void
-rstto_settings_write (RsttoSettings *settings, GValue *value)
-{
-
-}

Modified: ristretto/branches/ristretto-gio/src/settings.h
===================================================================
--- ristretto/branches/ristretto-gio/src/settings.h	2009-01-23 16:28:10 UTC (rev 6529)
+++ ristretto/branches/ristretto-gio/src/settings.h	2009-01-23 16:30:03 UTC (rev 6530)
@@ -59,12 +59,6 @@
 
 RsttoSettings *rstto_settings_new ();
 
-gboolean rstto_settings_load (RsttoSettings *settings);
-gboolean rstto_settings_save (RsttoSettings *settings);
-
-void rstto_settings_read (RsttoSettings *settings, GValue *value);
-void rstto_settings_write (RsttoSettings *settings, GValue *value);
-
 G_END_DECLS
 
 #endif /* __RISTRETTO_SETTINGS_H__ */




More information about the Goodies-commits mailing list