[Xfce4-commits] <ristretto:master> Cleanup code

Stephan Arts noreply at xfce.org
Thu Apr 19 18:38:02 CEST 2012


Updating branch refs/heads/master
         to f8f0fd57c21a9eb2ac3314249b49a111534ecc90 (commit)
       from 3e2af220cb9c6df83047cb961c119cf6c8fadb23 (commit)

commit f8f0fd57c21a9eb2ac3314249b49a111534ecc90
Author: Stephan Arts <stephan at xfce.org>
Date:   Thu Apr 19 18:35:38 2012 +0200

    Cleanup code

 NEWS                          |    1 +
 TODO                          |    6 -
 src/gnome_wallpaper_manager.c |   59 ++---
 src/gnome_wallpaper_manager.h |    7 +-
 src/image_list.c              |  252 +++++++++++++------
 src/image_list.h              |   76 +++++--
 src/image_viewer.c            |   61 ++++--
 src/image_viewer.h            |    9 +-
 src/main_window.c             |  544 ++++++++++++++++++++++++++++++++---------
 9 files changed, 728 insertions(+), 287 deletions(-)

diff --git a/NEWS b/NEWS
index 766851d..b34bd09 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 x.x.x
 =====
 - Reset adjustment-limits when closing the image (hide scrollbars)
+- Show error-message when deleting an image fails.
 
 0.5.2
 =====
diff --git a/TODO b/TODO
index 19c0325..e69de29 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +0,0 @@
- - Try the possibilities of replacing the thumbnail-bar with an iconview
-   widget.
-
- - Refactor main-window code, it is a mess.
-
- - ... whatever pops up on http://bugs.xfce.org/
diff --git a/src/gnome_wallpaper_manager.c b/src/gnome_wallpaper_manager.c
index 3054059..68fc47f 100644
--- a/src/gnome_wallpaper_manager.c
+++ b/src/gnome_wallpaper_manager.c
@@ -83,7 +83,7 @@ cb_style_combo_changed (
 
 static void
 configure_monitor_chooser_pixbuf (
-        RsttoGnomeWallpaperManager *manager );
+    RsttoGnomeWallpaperManager *manager );
 
 static GObjectClass *parent_class = NULL;
 
@@ -91,17 +91,17 @@ static RsttoWallpaperManager *gnome_wallpaper_manager_object = NULL;
 
 struct _RsttoGnomeWallpaperManagerPriv
 {
-    gint               screen;
-    gint               monitor;
-    enum MonitorStyle  style;
+    gint screen;
+    gint    monitor;
+    enum MonitorStyle style;
 
-    RsttoFile         *file;
-    GdkPixbuf         *pixbuf;
+    RsttoFile *file;
+    GdkPixbuf *pixbuf;
 	
-    GtkWidget         *monitor_chooser;
-    GtkWidget         *style_combo;
+    GtkWidget *monitor_chooser;
+    GtkWidget *style_combo;
 
-    GtkWidget         *dialog;
+    GtkWidget *dialog;
 };
 
 
@@ -133,10 +133,7 @@ rstto_gnome_wallpaper_manager_configure_dialog_run (
     configure_monitor_chooser_pixbuf (manager);
 
     response = gtk_dialog_run (GTK_DIALOG (manager->priv->dialog));
-
-    /* First, hide the dialog */
     gtk_widget_hide (manager->priv->dialog);
-
     if ((response == GTK_RESPONSE_OK) || (response == GTK_RESPONSE_APPLY))
     {
         manager->priv->style = gtk_combo_box_get_active (
@@ -148,15 +145,6 @@ rstto_gnome_wallpaper_manager_configure_dialog_run (
     return response;
 }
 
-/**
- * rstto_gnome_wallpaper_manager_check_running:
- * @self:
- *
- * Returns: TRUE
- *
- * This function does not really check if the
- * gnome-wallpaper-manager is running.
- */
 static gboolean
 rstto_gnome_wallpaper_manager_check_running (
         RsttoWallpaperManager *self)
@@ -230,19 +218,10 @@ rstto_gnome_wallpaper_manager_get_type (void)
             NULL
         };
 
-        rstto_gnome_wallpaper_manager_type = g_type_register_static (
-                G_TYPE_OBJECT,
-                "RsttoGnomeWallpaperManager",
-                &rstto_gnome_wallpaper_manager_info,
-                0);
-
-        g_type_add_interface_static (
-                rstto_gnome_wallpaper_manager_type,
-                RSTTO_WALLPAPER_MANAGER_TYPE,
-                &wallpaper_manager_iface_info);
+        rstto_gnome_wallpaper_manager_type = g_type_register_static (G_TYPE_OBJECT, "RsttoGnomeWallpaperManager", &rstto_gnome_wallpaper_manager_info, 0);
+        g_type_add_interface_static (rstto_gnome_wallpaper_manager_type, RSTTO_WALLPAPER_MANAGER_TYPE,  &wallpaper_manager_iface_info);
 
     }
-
     return rstto_gnome_wallpaper_manager_type;
 }
 
@@ -443,6 +422,7 @@ configure_monitor_chooser_pixbuf (
 {
     cairo_surface_t *image_surface = NULL;
     cairo_t *ctx;
+    //GdkColor bg_color;
 
     GdkPixbuf *tmp_pixbuf = NULL;
 
@@ -461,7 +441,6 @@ configure_monitor_chooser_pixbuf (
     if (manager->priv->pixbuf)
     {
         tmp_pixbuf = gdk_pixbuf_copy (manager->priv->pixbuf);
-
         if ( NULL != tmp_pixbuf )
         {
 
@@ -480,6 +459,7 @@ configure_monitor_chooser_pixbuf (
                     surface_height);
             ctx = cairo_create ( image_surface );
 
+            //gdk_cairo_set_source_color ( ctx, bg_color );
             cairo_set_source_rgb (ctx, 0, 0, 0);
             cairo_paint (ctx);
 
@@ -531,25 +511,22 @@ configure_monitor_chooser_pixbuf (
                     break;
                 default:
                     gdk_pixbuf_saturate_and_pixelate (
-                            tmp_pixbuf,
-                            tmp_pixbuf,
-                            0.0,
-                            TRUE);
+                        tmp_pixbuf,
+                        tmp_pixbuf,
+                        0.0,
+                        TRUE);
                     break;
             }
-
             cairo_scale (ctx, x_scale, y_scale);
-
             gdk_cairo_set_source_pixbuf (
                     ctx,
                     tmp_pixbuf,
                     dest_x/x_scale,
                     dest_y/y_scale);
-
             cairo_paint (ctx);
-
             cairo_destroy (ctx);
 
+
             g_object_unref (tmp_pixbuf);
         }
     }
diff --git a/src/gnome_wallpaper_manager.h b/src/gnome_wallpaper_manager.h
index 80ff0e9..9c228a3 100644
--- a/src/gnome_wallpaper_manager.h
+++ b/src/gnome_wallpaper_manager.h
@@ -59,11 +59,8 @@ struct _RsttoGnomeWallpaperManagerClass
     GObjectClass parent_class;
 };
 
-GType
-rstto_gnome_wallpaper_manager_get_type (void);
-
-RsttoWallpaperManager *
-rstto_gnome_wallpaper_manager_new (void);
+RsttoWallpaperManager *rstto_gnome_wallpaper_manager_new (void);
+GType          rstto_gnome_wallpaper_manager_get_type (void);
 
 G_END_DECLS
 
diff --git a/src/image_list.c b/src/image_list.c
index 92344e5..1660a0a 100644
--- a/src/image_list.c
+++ b/src/image_list.c
@@ -197,7 +197,7 @@ enum
 struct _RsttoImageListIterPriv
 {
     RsttoImageList *image_list;
-    RsttoFile      *file;
+    RsttoFile      *r_file;
     
     /* This is set if the iter-position is chosen by the user */
     gboolean        sticky; 
@@ -420,40 +420,43 @@ rstto_image_list_new (void)
 gboolean
 rstto_image_list_add_file (
         RsttoImageList *image_list,
-        RsttoFile *file,
+        RsttoFile *r_file,
         GError **error )
 {
     GtkFileFilterInfo filter_info;
-    GList *image_iter = g_list_find (image_list->priv->images, file);
+    GList *image_iter = g_list_find (image_list->priv->images, r_file);
     GSList *iter = image_list->priv->iterators;
     gint i = 0;
     GtkTreePath *path = NULL;
     GtkTreeIter t_iter;
     GFileMonitor *monitor = NULL;
 
-    g_return_val_if_fail ( NULL != file , FALSE);
-    g_return_val_if_fail ( RSTTO_IS_FILE (file) , FALSE);
+    g_return_val_if_fail ( NULL != r_file , FALSE);
+    g_return_val_if_fail ( RSTTO_IS_FILE (r_file) , FALSE);
 
     if (!image_iter)
     {
-        if (file)
+        if (r_file)
         {
             filter_info.contains =  GTK_FILE_FILTER_MIME_TYPE | GTK_FILE_FILTER_URI;
-            filter_info.uri = rstto_file_get_uri (file);
-            filter_info.mime_type = rstto_file_get_content_type (file);
+            filter_info.uri = rstto_file_get_uri (r_file);
+            filter_info.mime_type = rstto_file_get_content_type (r_file);
 
             if ( TRUE == gtk_file_filter_filter (image_list->priv->filter, &filter_info))
             {
-                g_object_ref (G_OBJECT (file));
+                g_object_ref (G_OBJECT (r_file));
 
-                image_list->priv->images = g_list_insert_sorted (image_list->priv->images, file, rstto_image_list_get_compare_func (image_list));
+                image_list->priv->images = g_list_insert_sorted (
+                        image_list->priv->images,
+                        r_file,
+                        rstto_image_list_get_compare_func (image_list));
 
                 image_list->priv->n_images++;
 
                 if (image_list->priv->dir_monitor == NULL)
                 {
                     monitor = g_file_monitor_file (
-                            rstto_file_get_file (file),
+                            rstto_file_get_file (r_file),
                             G_FILE_MONITOR_NONE,
                             NULL,
                             NULL);
@@ -466,22 +469,25 @@ rstto_image_list_add_file (
                             image_list->priv->image_monitors, 
                             monitor);
                 }
-                i = g_list_index (image_list->priv->images, file);
+                i = g_list_index (image_list->priv->images, r_file);
 
                 path = gtk_tree_path_new();
                 gtk_tree_path_append_index (path, i);
                 t_iter.stamp = image_list->priv->stamp;
-                t_iter.user_data = file;
+                t_iter.user_data = r_file;
                 t_iter.user_data3 = GINT_TO_POINTER(i);
 
-                gtk_tree_model_row_inserted(GTK_TREE_MODEL(image_list), path, &t_iter);
+                gtk_tree_model_row_inserted (
+                        GTK_TREE_MODEL(image_list),
+                        path,
+                        &t_iter);
 
                 /** TODO: update all iterators */
                 while (iter)
                 {
                     if (FALSE == RSTTO_IMAGE_LIST_ITER(iter->data)->priv->sticky)
                     {
-                        rstto_image_list_iter_find_file (iter->data, file);
+                        rstto_image_list_iter_find_file (iter->data, r_file);
                     }
                     iter = g_slist_next (iter);
                 }
@@ -516,12 +522,15 @@ rstto_image_list_get_n_images (RsttoImageList *image_list)
 RsttoImageListIter *
 rstto_image_list_get_iter (RsttoImageList *image_list)
 {
-    RsttoFile *file = NULL;
+    RsttoFile *r_file = NULL;
     RsttoImageListIter *iter = NULL;
+
     if (image_list->priv->images)
-        file = image_list->priv->images->data;
+    {
+        r_file = image_list->priv->images->data;
+    }
 
-    iter = rstto_image_list_iter_new (image_list, file);
+    iter = rstto_image_list_iter_new (image_list, r_file);
 
     image_list->priv->iterators = g_slist_prepend (image_list->priv->iterators, iter);
 
@@ -530,12 +539,15 @@ rstto_image_list_get_iter (RsttoImageList *image_list)
 
 
 void
-rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file)
+rstto_image_list_remove_file (
+        RsttoImageList *image_list,
+        RsttoFile *r_file)
 {
     GSList *iter = NULL;
-    RsttoFile *afile = NULL;
+    RsttoFile *r_file_a = NULL;
     GtkTreePath *path_ = NULL;
-    gint index_ = g_list_index (image_list->priv->images, file);
+    gint index_ = g_list_index (image_list->priv->images, r_file);
+    gint n_images = rstto_image_list_get_n_images (image_list);
 
     if (index_ != -1)
     {
@@ -543,10 +555,10 @@ rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file)
         iter = image_list->priv->iterators;
         while (iter)
         {
-            if (rstto_file_equal(rstto_image_list_iter_get_file (iter->data), file))
+            if (rstto_file_equal(rstto_image_list_iter_get_file (iter->data), r_file))
             {
                 
-                if (rstto_image_list_iter_get_position (iter->data) == rstto_image_list_get_n_images (image_list)-1)
+                if (rstto_image_list_iter_get_position (iter->data) == n_images -1)
                 {
                     iter_previous (iter->data, FALSE);
                 }
@@ -558,10 +570,16 @@ rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file)
                  * it's a single item list,
                  * and we should force the image in this iter to NULL
                  */
-                if (rstto_file_equal(rstto_image_list_iter_get_file (iter->data), file))
+                if (rstto_file_equal (
+                        rstto_image_list_iter_get_file (iter->data),
+                        r_file ) )
                 {
-                    ((RsttoImageListIter *)(iter->data))->priv->file = NULL;
-                    g_signal_emit (G_OBJECT (iter->data), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+                    ((RsttoImageListIter *)(iter->data))->priv->r_file = NULL;
+                    g_signal_emit (
+                            G_OBJECT (iter->data),
+                            rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+                            0,
+                            NULL);
                 }
             }
             iter = g_slist_next (iter);
@@ -572,14 +590,14 @@ rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file)
 
         gtk_tree_model_row_deleted(GTK_TREE_MODEL(image_list), path_);
 
-        image_list->priv->images = g_list_remove (image_list->priv->images, file);
+        image_list->priv->images = g_list_remove (image_list->priv->images, r_file);
         iter = image_list->priv->iterators;
         while (iter)
         {
-            afile = rstto_image_list_iter_get_file(iter->data);
-            if (NULL != afile)
+            r_file_a = rstto_image_list_iter_get_file(iter->data);
+            if (NULL != r_file_a)
             {
-                if (rstto_file_equal(afile, file))
+                if (rstto_file_equal(r_file_a, r_file))
                 {
                     iter_next (iter->data, FALSE);
                 }
@@ -587,8 +605,13 @@ rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file)
             iter = g_slist_next (iter);
         }
 
-        g_signal_emit (G_OBJECT (image_list), rstto_image_list_signals[RSTTO_IMAGE_LIST_SIGNAL_REMOVE_IMAGE], 0, file, NULL);
-        g_object_unref(file);
+        g_signal_emit (
+                G_OBJECT (image_list),
+                rstto_image_list_signals[RSTTO_IMAGE_LIST_SIGNAL_REMOVE_IMAGE],
+                0,
+                r_file,
+                NULL);
+        g_object_unref (r_file);
     }
 }
 
@@ -754,6 +777,13 @@ cb_rstto_read_file ( gpointer user_data )
                 loader->image_list,
                 loader->dir );
 
+        /* This is a hack, use a closure */
+        if (loader->image_list->priv->directory_loader != 0)
+        {
+            g_source_remove (loader->image_list->priv->directory_loader);
+            loader->image_list->priv->directory_loader = 0;
+        }
+
         iter = loader->image_list->priv->iterators;
         while (iter)
         {
@@ -761,12 +791,6 @@ cb_rstto_read_file ( gpointer user_data )
             iter = g_slist_next (iter);
         }
 
-        /* This is a hack, use a closure */
-        if (loader->image_list->priv->directory_loader != 0)
-        {
-            g_source_remove (loader->image_list->priv->directory_loader);
-            loader->image_list->priv->directory_loader = 0;
-        }
         return FALSE;
     }
     return TRUE;
@@ -949,9 +973,9 @@ static void
 rstto_image_list_iter_dispose (GObject *object)
 {
     RsttoImageListIter *iter = RSTTO_IMAGE_LIST_ITER(object);
-    if (iter->priv->file)
+    if (iter->priv->r_file)
     {
-        iter->priv->file = NULL;
+        iter->priv->r_file = NULL;
     }
 
     if (iter->priv->image_list)
@@ -962,33 +986,46 @@ rstto_image_list_iter_dispose (GObject *object)
 }
 
 static RsttoImageListIter *
-rstto_image_list_iter_new (RsttoImageList *nav, RsttoFile *file)
+rstto_image_list_iter_new (
+        RsttoImageList *nav,
+        RsttoFile *r_file)
 {
     RsttoImageListIter *iter;
 
     iter = g_object_new(RSTTO_TYPE_IMAGE_LIST_ITER, NULL);
-    iter->priv->file = file;
+    iter->priv->r_file = r_file;
     iter->priv->image_list = nav;
 
     return iter;
 }
 
 gboolean
-rstto_image_list_iter_find_file (RsttoImageListIter *iter, RsttoFile *file)
+rstto_image_list_iter_find_file (
+        RsttoImageListIter *iter,
+        RsttoFile *r_file)
 {
-    gint pos = g_list_index (iter->priv->image_list->priv->images, file);
+    gint pos = g_list_index (iter->priv->image_list->priv->images, r_file);
+
     if (pos > -1)
     {
-        g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE], 0, NULL);
+        g_signal_emit (
+                G_OBJECT (iter),
+                rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE],
+                0,
+                NULL);
 
-        if (iter->priv->file)
+        if (iter->priv->r_file)
         {
-            iter->priv->file = NULL;
+            iter->priv->r_file = NULL;
         }
-        iter->priv->file = file;
+        iter->priv->r_file = r_file;
         iter->priv->sticky = TRUE;
 
-        g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+        g_signal_emit (
+                G_OBJECT (iter),
+                rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+                0,
+                NULL);
 
         return TRUE;
     }
@@ -998,17 +1035,17 @@ rstto_image_list_iter_find_file (RsttoImageListIter *iter, RsttoFile *file)
 gint
 rstto_image_list_iter_get_position (RsttoImageListIter *iter)
 {
-    if ( NULL == iter->priv->file )
+    if ( NULL == iter->priv->r_file )
     {
         return -1;
     }
-    return g_list_index (iter->priv->image_list->priv->images, iter->priv->file);
+    return g_list_index (iter->priv->image_list->priv->images, iter->priv->r_file);
 }
 
 RsttoFile *
 rstto_image_list_iter_get_file (RsttoImageListIter *iter)
 {
-    return iter->priv->file;
+    return iter->priv->r_file;
 }
 
 static void
@@ -1017,23 +1054,33 @@ iter_set_position (
         gint pos,
         gboolean sticky )
 {
-    g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE], 0, NULL);
+    g_signal_emit (
+            G_OBJECT (iter),
+            rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE],
+            0,
+            NULL);
 
-    if (iter->priv->file)
+    if (iter->priv->r_file)
     {
-        iter->priv->file = NULL;
+        iter->priv->r_file = NULL;
     }
 
     if (pos >= 0)
     {
-        iter->priv->file = g_list_nth_data (iter->priv->image_list->priv->images, pos); 
+        iter->priv->r_file = g_list_nth_data (iter->priv->image_list->priv->images, pos); 
     }
 
-    g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+    g_signal_emit (
+            G_OBJECT (iter),
+            rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+            0,
+            NULL);
 }
 
 void
-rstto_image_list_iter_set_position (RsttoImageListIter *iter, gint pos)
+rstto_image_list_iter_set_position (
+        RsttoImageListIter *iter,
+        gint pos)
 {
     iter_set_position ( iter, pos, TRUE );
 }
@@ -1045,15 +1092,19 @@ iter_next (
 {
     GList *position = NULL;
     RsttoImageList *image_list = iter->priv->image_list;
-    RsttoFile *file = iter->priv->file;
+    RsttoFile *r_file = iter->priv->r_file;
     gboolean ret_val = FALSE;
 
-    g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE], 0, NULL);
+    g_signal_emit (
+            G_OBJECT (iter),
+            rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE],
+            0,
+            NULL);
 
-    if (iter->priv->file)
+    if (r_file)
     {
-        position = g_list_find (iter->priv->image_list->priv->images, iter->priv->file);
-        iter->priv->file = NULL;
+        position = g_list_find (iter->priv->image_list->priv->images, r_file);
+        iter->priv->r_file = NULL;
     }
 
     iter->priv->sticky = sticky;
@@ -1061,7 +1112,7 @@ iter_next (
     position = g_list_next (position);
     if (position)
     {
-        iter->priv->file = position->data; 
+        iter->priv->r_file = position->data; 
 
         /* We could move forward, set ret_val to TRUE */
         ret_val = TRUE;
@@ -1079,17 +1130,27 @@ iter_next (
             ret_val = TRUE;
         }
         else
+        {
             position = g_list_last (iter->priv->image_list->priv->images);
+        }
 
         if (position)
-            iter->priv->file = position->data; 
+        {
+            iter->priv->r_file = position->data; 
+        }
         else
-            iter->priv->file = NULL;
+        {
+            iter->priv->r_file = NULL;
+        }
     }
 
-    if (file != iter->priv->file)
+    if (r_file != iter->priv->r_file)
     {
-        g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+        g_signal_emit (
+                G_OBJECT (iter),
+                rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+                0,
+                NULL);
     }
 
     return ret_val;
@@ -1131,15 +1192,19 @@ iter_previous (
 {
     GList *position = NULL;
     RsttoImageList *image_list = iter->priv->image_list;
-    RsttoFile *file = iter->priv->file;
+    RsttoFile *r_file = iter->priv->r_file;
     gboolean ret_val = FALSE;
 
-    g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE], 0, NULL);
+    g_signal_emit (
+            G_OBJECT (iter),
+            rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_PREPARE_CHANGE],
+            0,
+            NULL);
 
-    if (iter->priv->file)
+    if (iter->priv->r_file)
     {
-        position = g_list_find (iter->priv->image_list->priv->images, iter->priv->file);
-        iter->priv->file = NULL;
+        position = g_list_find (iter->priv->image_list->priv->images, iter->priv->r_file);
+        iter->priv->r_file = NULL;
     }
 
     iter->priv->sticky = sticky;
@@ -1147,7 +1212,7 @@ iter_previous (
     position = g_list_previous (position);
     if (position)
     {
-        iter->priv->file = position->data; 
+        iter->priv->r_file = position->data; 
     }
     else
     {
@@ -1162,17 +1227,21 @@ iter_previous (
 
         if (position)
         {
-            iter->priv->file = position->data; 
+            iter->priv->r_file = position->data; 
         }
         else
         {
-            iter->priv->file = NULL;
+            iter->priv->r_file = NULL;
         }
     }
 
-    if (file != iter->priv->file)
+    if (r_file != iter->priv->r_file)
     {
-        g_signal_emit (G_OBJECT (iter), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+        g_signal_emit (
+                G_OBJECT (iter),
+                rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+                0,
+                NULL);
     }
 
     return ret_val;
@@ -1211,8 +1280,13 @@ rstto_image_list_iter_has_previous (RsttoImageListIter *iter)
 RsttoImageListIter *
 rstto_image_list_iter_clone (RsttoImageListIter *iter)
 {
-    RsttoImageListIter *new_iter = rstto_image_list_iter_new (iter->priv->image_list, iter->priv->file);
-    rstto_image_list_iter_set_position (new_iter, rstto_image_list_iter_get_position(iter));
+    RsttoImageListIter *new_iter = rstto_image_list_iter_new (
+            iter->priv->image_list,
+            iter->priv->r_file);
+
+    rstto_image_list_iter_set_position (
+            new_iter,
+            rstto_image_list_iter_get_position ( iter ) );
 
     return new_iter;
 }
@@ -1232,7 +1306,11 @@ rstto_image_list_set_compare_func (RsttoImageList *image_list, GCompareFunc func
 
     for (iter = image_list->priv->iterators; iter != NULL; iter = g_slist_next (iter))
     {
-        g_signal_emit (G_OBJECT (iter->data), rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED], 0, NULL);
+        g_signal_emit (
+                G_OBJECT (iter->data),
+                rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
+                0,
+                NULL);
     }
 }
 
@@ -1635,3 +1713,15 @@ cb_rstto_thumbnailer_ready(
         gtk_tree_model_row_changed (GTK_TREE_MODEL(image_list), path_, &iter);
     }
 }
+
+gboolean
+rstto_image_list_is_busy (
+        RsttoImageList *list )
+{
+    if (list->priv->directory_loader == 0)
+    {
+        return FALSE;
+    }
+
+    return TRUE;
+}
diff --git a/src/image_list.h b/src/image_list.h
index 4abb367..4abaaf1 100644
--- a/src/image_list.h
+++ b/src/image_list.h
@@ -92,11 +92,21 @@ struct _RsttoImageListIterClass
 };
 
 
-GType           rstto_image_list_get_type ();
-RsttoImageList *rstto_image_list_new ();
+GType
+rstto_image_list_get_type (void);
+
+RsttoImageList *
+rstto_image_list_new (void);
+
+gint
+rstto_image_list_get_n_images (
+        RsttoImageList *image_list);
 
-gint     rstto_image_list_get_n_images (RsttoImageList *image_list);
-gboolean rstto_image_list_add_file (RsttoImageList *image_list, RsttoFile *file, GError **);
+gboolean
+rstto_image_list_add_file (
+        RsttoImageList *image_list,
+        RsttoFile *file,
+        GError **);
 
 gboolean
 rstto_image_list_set_directory (
@@ -104,15 +114,27 @@ rstto_image_list_set_directory (
         GFile *dir,
         GError **);
 
+gboolean
+rstto_image_list_is_busy (
+        RsttoImageList *list );
+
 
-GCompareFunc rstto_image_list_get_compare_func (RsttoImageList *image_list);
-void         rstto_image_list_set_compare_func (RsttoImageList *image_list, GCompareFunc func);
+GCompareFunc
+rstto_image_list_get_compare_func (
+        RsttoImageList *image_list);
+void
+rstto_image_list_set_compare_func (
+        RsttoImageList *image_list,
+        GCompareFunc func);
 
 /** Built-in Sorting Functions */
 void
-rstto_image_list_set_sort_by_name (RsttoImageList *image_list);
+rstto_image_list_set_sort_by_name (
+        RsttoImageList *image_list);
+
 void
-rstto_image_list_set_sort_by_date (RsttoImageList *image_list);
+rstto_image_list_set_sort_by_date (
+        RsttoImageList *image_list);
 
 RsttoImageListIter *
 rstto_image_list_get_iter (RsttoImageList *image_list);
@@ -122,29 +144,47 @@ GType
 rstto_image_list_iter_get_type ();
 
 RsttoFile *
-rstto_image_list_iter_get_file ( RsttoImageListIter *iter );
+rstto_image_list_iter_get_file (
+        RsttoImageListIter *iter );
 
 gboolean
-rstto_image_list_iter_previous (RsttoImageListIter *iter);
+rstto_image_list_iter_previous (
+        RsttoImageListIter *iter);
+
 gboolean
-rstto_image_list_iter_next (RsttoImageListIter *iter);
+rstto_image_list_iter_next (
+        RsttoImageListIter *iter);
 
 gboolean
-rstto_image_list_iter_has_previous (RsttoImageListIter *iter);
+rstto_image_list_iter_has_previous (
+        RsttoImageListIter *iter);
+
 gboolean
-rstto_image_list_iter_has_next (RsttoImageListIter *iter);
+rstto_image_list_iter_has_next (
+        RsttoImageListIter *iter);
 
 gint
-rstto_image_list_iter_get_position (RsttoImageListIter *iter);
+rstto_image_list_iter_get_position (
+        RsttoImageListIter *iter);
+
 void
-rstto_image_list_iter_set_position (RsttoImageListIter *iter, gint pos);
+rstto_image_list_iter_set_position (
+        RsttoImageListIter *iter,
+        gint pos);
 
 void
-rstto_image_list_remove_file (RsttoImageList *image_list, RsttoFile *file);
+rstto_image_list_remove_file (
+        RsttoImageList *image_list,
+        RsttoFile *file);
+
 gboolean
-rstto_image_list_iter_find_file (RsttoImageListIter *iter, RsttoFile *file);
+rstto_image_list_iter_find_file (
+        RsttoImageListIter *iter,
+        RsttoFile *file);
 
-RsttoImageListIter *rstto_image_list_iter_clone (RsttoImageListIter *iter);
+RsttoImageListIter *
+rstto_image_list_iter_clone (
+        RsttoImageListIter *iter);
 
 gboolean
 rstto_image_list_iter_get_sticky (
diff --git a/src/image_viewer.c b/src/image_viewer.c
index fcc7a9a..b199ddc 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -1663,11 +1663,13 @@ rstto_image_viewer_load_image (
     }
 
     transaction->loader = gdk_pixbuf_loader_new_with_mime_type (rstto_file_get_content_type (file), NULL);
+
     /* HACK HACK HACK */
     if (transaction->loader == NULL)
     {
         transaction->loader = gdk_pixbuf_loader_new();
     }
+
     transaction->cancellable = g_cancellable_new();
     transaction->buffer = g_new0 (guchar, RSTTO_IMAGE_VIEWER_BUFFER_SIZE);
     transaction->file = file;
@@ -1709,7 +1711,9 @@ rstto_image_viewer_transaction_free (RsttoImageViewerTransaction *tr)
 }
 
 void
-rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale)
+rstto_image_viewer_set_scale (
+        RsttoImageViewer *viewer,
+        gdouble scale)
 {
     GtkWidget *widget = GTK_WIDGET (viewer);
 
@@ -1787,7 +1791,9 @@ rstto_image_viewer_get_scale (RsttoImageViewer *viewer)
 }
 
 static void
-rstto_image_viewer_set_motion_state (RsttoImageViewer *viewer, RsttoImageViewerMotionState state)
+rstto_image_viewer_set_motion_state (
+        RsttoImageViewer *viewer,
+        RsttoImageViewerMotionState state)
 {
     viewer->priv->motion.state = state;
 }
@@ -1823,13 +1829,15 @@ rstto_image_viewer_set_orientation (
 }
 
 RsttoImageOrientation
-rstto_image_viewer_get_orientation (RsttoImageViewer *viewer)
+rstto_image_viewer_get_orientation (
+        RsttoImageViewer *viewer)
 {
     return viewer->priv->orientation;
 }
 
 gint
-rstto_image_viewer_get_width (RsttoImageViewer *viewer)
+rstto_image_viewer_get_width (
+        RsttoImageViewer *viewer)
 {
     if (viewer)
     {
@@ -1838,7 +1846,8 @@ rstto_image_viewer_get_width (RsttoImageViewer *viewer)
     return 0;
 }
 gint
-rstto_image_viewer_get_height (RsttoImageViewer *viewer)
+rstto_image_viewer_get_height (
+        RsttoImageViewer *viewer)
 {
     if (viewer)
     {
@@ -1849,8 +1858,8 @@ rstto_image_viewer_get_height (RsttoImageViewer *viewer)
 
 void
 rstto_image_viewer_set_menu (
-    RsttoImageViewer *viewer,
-    GtkMenu *menu)
+        RsttoImageViewer *viewer,
+        GtkMenu *menu)
 {
     if (viewer->priv->menu)
     {
@@ -1876,7 +1885,9 @@ rstto_image_viewer_set_menu (
 /************************/
 
 static void
-cb_rstto_image_viewer_value_changed(GtkAdjustment *adjustment, RsttoImageViewer *viewer)
+cb_rstto_image_viewer_value_changed (
+        GtkAdjustment *adjustment,
+        RsttoImageViewer *viewer)
 {
     GtkWidget *widget = GTK_WIDGET (viewer);
     gdk_window_invalidate_rect (
@@ -1956,7 +1967,9 @@ cb_rstto_image_viewer_read_input_stream_ready (
 
 
 static void
-cb_rstto_image_loader_area_prepared (GdkPixbufLoader *loader, RsttoImageViewerTransaction *transaction)
+cb_rstto_image_loader_area_prepared (
+        GdkPixbufLoader *loader,
+        RsttoImageViewerTransaction *transaction)
 {
     gint timeout = 0;
     RsttoImageViewer *viewer = transaction->viewer;
@@ -2057,7 +2070,9 @@ cb_rstto_image_loader_size_prepared (
 }
 
 static void
-cb_rstto_image_loader_closed (GdkPixbufLoader *loader, RsttoImageViewerTransaction *transaction)
+cb_rstto_image_loader_closed (
+        GdkPixbufLoader *loader,
+        RsttoImageViewerTransaction *transaction)
 {
     RsttoImageViewer *viewer = transaction->viewer;
     GtkWidget *widget = GTK_WIDGET(viewer);
@@ -2486,13 +2501,14 @@ rstto_button_press_event (
         if (viewer->priv->menu)
         {
             gtk_widget_show_all(GTK_WIDGET(viewer->priv->menu));
-            gtk_menu_popup(viewer->priv->menu,
-                           NULL,
-                           NULL,
-                           NULL,
-                           NULL,
-                           3,
-                           event->time);
+            gtk_menu_popup (
+                    viewer->priv->menu,
+                    NULL,
+                    NULL,
+                    NULL,
+                    NULL,
+                    3,
+                    event->time);
         }
         return TRUE;
     }
@@ -2748,8 +2764,15 @@ rstto_popup_menu (
 }
 
 static void
-cb_rstto_image_viewer_dnd (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data,
-              guint info, guint time_, RsttoImageViewer *viewer)
+cb_rstto_image_viewer_dnd (
+        GtkWidget *widget,
+        GdkDragContext *context,
+        gint x,
+        gint y,
+        GtkSelectionData *data,
+        guint info,
+        guint time_,
+        RsttoImageViewer *viewer )
 {
     g_return_if_fail ( RSTTO_IS_IMAGE_VIEWER(viewer) );
 
diff --git a/src/image_viewer.h b/src/image_viewer.h
index fde7e05..d104054 100644
--- a/src/image_viewer.h
+++ b/src/image_viewer.h
@@ -61,13 +61,14 @@ struct _RsttoImageViewerClass
 {
     GtkWidgetClass  parent_class;
 
-    gboolean (* set_scroll_adjustments) (RsttoImageViewer *viewer,
-          GtkAdjustment     *hadjustment,
-          GtkAdjustment     *vadjustment);
+    gboolean (* set_scroll_adjustments) (
+            RsttoImageViewer *viewer,
+            GtkAdjustment     *hadjustment,
+            GtkAdjustment     *vadjustment);
 };
 
 GType
-rstto_image_viewer_get_type();
+rstto_image_viewer_get_type(void);
 
 GtkWidget *
 rstto_image_viewer_new ();
diff --git a/src/main_window.c b/src/main_window.c
index b66ab6c..5147070 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -142,6 +142,7 @@ static void
 rstto_main_window_class_init(RsttoMainWindowClass *);
 static void
 rstto_main_window_dispose(GObject *object);
+
 static void
 rstto_main_window_size_allocate (GtkWidget *, GtkAllocation *);
 
@@ -347,102 +348,344 @@ static GtkWidgetClass *parent_class = NULL;
 static GtkActionEntry action_entries[] =
 {
 /* File Menu */
-  { "file-menu", NULL, N_ ("_File"), NULL, },
-  { "open", "document-open", N_ ("_Open"), "<control>O", N_ ("Open an image"), G_CALLBACK (cb_rstto_main_window_open_image), },
-  { "save-copy", GTK_STOCK_SAVE_AS, N_ ("_Save copy"), "<control>s", N_ ("Save a copy of the image"), G_CALLBACK (cb_rstto_main_window_save_copy), },
-  { "properties", GTK_STOCK_PROPERTIES, N_ ("_Properties"), NULL, N_ ("Show file properties"), G_CALLBACK (cb_rstto_main_window_properties), },
-  { "edit", GTK_STOCK_EDIT, N_ ("_Edit"), NULL, N_ ("Edit this image"), G_CALLBACK (cb_rstto_main_window_edit), },
-  { "close", GTK_STOCK_CLOSE, N_ ("_Close"), "<control>W", N_ ("Close this image"), G_CALLBACK (cb_rstto_main_window_close), },
-  { "quit", GTK_STOCK_QUIT, N_ ("_Quit"), "<control>Q", N_ ("Quit Ristretto"), G_CALLBACK (cb_rstto_main_window_quit), },
+  { "file-menu",
+            NULL,
+            N_ ("_File"),
+            NULL, },
+  { "open",
+            "document-open", /* Icon-name */
+            N_ ("_Open..."), /* Label-text */
+            "<control>O", /* Keyboard shortcut */
+            N_ ("Open an image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_open_image), },
+  { "save-copy",
+            GTK_STOCK_SAVE_AS, /* Icon-name */
+            N_ ("_Save copy..."), /* Label-text */
+            "<control>s", /* Keyboard shortcut */
+            N_ ("Save a copy of the image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_save_copy), },
+  { "properties",
+            GTK_STOCK_PROPERTIES, /* Icon-name */
+            N_ ("_Properties..."), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            N_ ("Show file properties"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_properties), },
+  { "edit",
+            GTK_STOCK_EDIT, /* Icon-name */
+            N_ ("_Edit"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            N_ ("Edit this image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_edit), },
+  { "close",
+            GTK_STOCK_CLOSE, /* Icon-name */
+            N_ ("_Close"), /* Label-text */
+            "<control>W", /* Keyboard shortcut */
+            N_ ("Close this image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_close), },
+  { "quit",
+            GTK_STOCK_QUIT, /* Icon-name */
+            N_ ("_Quit"), /* Label-text */
+            "<control>Q", /* Keyboard shortcut */
+            N_ ("Quit Ristretto"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_quit), },
 /* Edit Menu */
-  { "edit-menu", NULL, N_ ("_Edit"), NULL, },
-  { "open-with-menu", NULL, N_ ("_Open with..."), NULL, },
-  { "sorting-menu", NULL, N_ ("_Sorting"), NULL, },
-  { "delete", GTK_STOCK_DELETE, N_ ("_Delete"), "Delete", N_ ("Delete this image from disk"), G_CALLBACK (cb_rstto_main_window_delete), },
-  { "clear-private-data", GTK_STOCK_CLEAR, N_ ("_Clear private data"), "<control><shift>Delete", NULL, G_CALLBACK(cb_rstto_main_window_clear_private_data), },
-  { "preferences", GTK_STOCK_PREFERENCES, N_ ("_Preferences"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_preferences), },
+  { "edit-menu",
+            NULL,
+            N_ ("_Edit"),
+            NULL, },
+  { "open-with-menu",
+            NULL,
+            N_ ("_Open with"),
+            NULL, },
+  { "sorting-menu",
+            NULL,
+            N_ ("_Sorting"),
+            NULL, },
+  { "delete",
+            GTK_STOCK_DELETE, /* Icon-name */
+            N_ ("_Delete"), /* Label-text */
+            "Delete", /* Keyboard shortcut */
+            N_ ("Delete this image from disk"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_delete), },
+  { "clear-private-data",
+            GTK_STOCK_CLEAR, /* Icon-name */
+            N_ ("_Clear private data..."), /* Label-text */
+            "<control><shift>Delete", /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK(cb_rstto_main_window_clear_private_data), },
+  { "preferences",
+            GTK_STOCK_PREFERENCES, /* Icon-name */
+            N_ ("_Preferences..."), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_preferences), },
 /* View Menu */
-  { "view-menu", NULL, N_ ("_View"), NULL, },
-  { "fullscreen", GTK_STOCK_FULLSCREEN, N_ ("_Fullscreen"), "F11", N_ ("Switch to fullscreen"), G_CALLBACK (cb_rstto_main_window_fullscreen), },
-  { "unfullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_ ("_Leave Fullscreen"), NULL, N_ ("Leave Fullscreen"), G_CALLBACK (cb_rstto_main_window_fullscreen), },
-  { "set-as-wallpaper", "preferences-desktop-wallpaper", N_ ("_Set as Wallpaper"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_set_as_wallpaper), },
+  { "view-menu",
+            NULL,
+            N_ ("_View"),
+            NULL, },
+  { "fullscreen",
+            GTK_STOCK_FULLSCREEN, /* Icon-name */
+            N_ ("_Fullscreen"), /* Label-text */
+            "F11", /* Keyboard shortcut */
+            N_ ("Switch to fullscreen"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_fullscreen), },
+  { "unfullscreen",
+            GTK_STOCK_LEAVE_FULLSCREEN, /* Icon-name */
+            N_ ("_Leave Fullscreen"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            N_ ("Leave Fullscreen"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_fullscreen), },
+  { "set-as-wallpaper",
+            "preferences-desktop-wallpaper", /* Icon-name */
+            N_ ("_Set as Wallpaper..."), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_set_as_wallpaper), },
 /* Zoom submenu */
-  { "zoom-menu", NULL, N_ ("_Zoom"), NULL, },
-  { "zoom-in", GTK_STOCK_ZOOM_IN, N_ ("Zoom _In"), "<control>plus", N_ ("Zoom in"), G_CALLBACK (cb_rstto_main_window_zoom_in),},
-  { "zoom-out", GTK_STOCK_ZOOM_OUT, N_ ("Zoom _Out"), "<control>minus", N_ ("Zoom out"), G_CALLBACK (cb_rstto_main_window_zoom_out), },
-  { "zoom-fit", GTK_STOCK_ZOOM_FIT, N_ ("Zoom _Fit"), "<control>equal", N_ ("Zoom to fit window"), G_CALLBACK (cb_rstto_main_window_zoom_fit), },
-  { "zoom-100", GTK_STOCK_ZOOM_100, N_ ("_Normal Size"), "<control>0", N_ ("Zoom to 100%"), G_CALLBACK (cb_rstto_main_window_zoom_100), },
+  { "zoom-menu",
+            NULL,
+            N_ ("_Zoom"),
+            NULL, },
+  { "zoom-in",
+            GTK_STOCK_ZOOM_IN, /* Icon-name */
+            N_ ("Zoom _In"), /* Label-text */
+            "<control>plus", /* Keyboard shortcut */
+            N_ ("Zoom in"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_zoom_in),},
+  { "zoom-out",
+            GTK_STOCK_ZOOM_OUT, /* Icon-name */
+            N_ ("Zoom _Out"), /* Label-text */
+            "<control>minus", /* Keyboard shortcut */
+            N_ ("Zoom out"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_zoom_out), },
+  { "zoom-fit",
+            GTK_STOCK_ZOOM_FIT, /* Icon-name */
+            N_ ("Zoom _Fit"), /* Label-text */
+            "<control>equal", /* Keyboard shortcut */
+            N_ ("Zoom to fit window"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_zoom_fit), },
+  { "zoom-100",
+            GTK_STOCK_ZOOM_100, /* Icon-name */
+            N_ ("_Normal Size"), /* Label-text */
+            "<control>0", /* Keyboard shortcut */
+            N_ ("Zoom to 100%"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_zoom_100), },
 /* Rotation submenu */
-  { "rotation-menu", NULL, N_ ("_Rotation"), NULL, },
-  { "rotate-cw", "object-rotate-right", N_ ("Rotate _Right"), "<control>bracketright", NULL, G_CALLBACK (cb_rstto_main_window_rotate_cw), },
-  { "rotate-ccw", "object-rotate-left", N_ ("Rotate _Left"), "<control>bracketleft", NULL, G_CALLBACK (cb_rstto_main_window_rotate_ccw), },
+  { "rotation-menu",
+            NULL,
+            N_ ("_Rotation"),
+            NULL, },
+  { "rotate-cw",
+            "object-rotate-right", /* Icon-name */
+            N_ ("Rotate _Right"), /* Label-text */
+            "<control>bracketright", /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_rotate_cw), },
+  { "rotate-ccw",
+            "object-rotate-left", /* Icon-name */
+            N_ ("Rotate _Left"), /* Label-text */
+            "<control>bracketleft", /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_rotate_ccw), },
 /* Go Menu */
-  { "go-menu",  NULL, N_ ("_Go"), NULL, },
-  { "forward",  GTK_STOCK_GO_FORWARD, N_ ("_Forward"), "space", N_("Next image"), G_CALLBACK (cb_rstto_main_window_next_image), },
-  { "back",     GTK_STOCK_GO_BACK, N_ ("_Back"), "BackSpace", N_("Previous image"), G_CALLBACK (cb_rstto_main_window_previous_image), },
-  { "first",    GTK_STOCK_GOTO_FIRST, N_ ("_First"), "Home", N_("First image"), G_CALLBACK (cb_rstto_main_window_first_image), },
-  { "last",     GTK_STOCK_GOTO_LAST, N_ ("_Last"), "End", N_("Last image"), G_CALLBACK (cb_rstto_main_window_last_image), },
+  { "go-menu",
+            NULL,
+            N_ ("_Go"),
+            NULL, },
+  { "forward",
+            GTK_STOCK_GO_FORWARD, /* Icon-name */
+            N_ ("_Forward"), /* Label-text */
+            "space", /* Keyboard shortcut */
+            N_("Next image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_next_image), },
+  { "back",
+            GTK_STOCK_GO_BACK, /* Icon-name */
+            N_ ("_Back"), /* Label-text */
+            "BackSpace", /* Keyboard shortcut */
+            N_("Previous image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_previous_image), },
+  { "first",
+            GTK_STOCK_GOTO_FIRST, /* Icon-name */
+            N_ ("F_irst"), /* Label-text */
+            "Home", /* Keyboard shortcut */
+            N_("First image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_first_image), },
+  { "last",
+            GTK_STOCK_GOTO_LAST, /* Icon-name */
+            N_ ("_Last"), /* Label-text */
+            "End", /* Keyboard shortcut */
+            N_("Last image"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_last_image), },
 /* Help Menu */
-  { "help-menu", NULL, N_ ("_Help"), NULL, },
-  { "contents", GTK_STOCK_HELP,
-                N_ ("_Contents"),
-                "F1",
-                N_ ("Display ristretto user manual"),
-                G_CALLBACK (cb_rstto_main_window_contents), },
-  { "about",    GTK_STOCK_ABOUT, 
-                N_ ("_About"),
-                NULL,
-                N_ ("Display information about ristretto"),
-                G_CALLBACK (cb_rstto_main_window_about), },
+  { "help-menu",
+            NULL,
+            N_ ("_Help"),
+            NULL, },
+  { "contents",
+            GTK_STOCK_HELP, /* Icon-name */
+            N_ ("_Contents"), /* Label-text */
+            "F1", /* Keyboard shortcut */
+            N_ ("Display ristretto user manual"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_contents), },
+  { "about",
+            GTK_STOCK_ABOUT,  /* Icon-name */
+            N_ ("_About"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            N_ ("Display information about ristretto"), /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_about), },
 /* Position Menu */
-  { "position-menu", NULL, N_ ("_Position"), NULL, },
-  { "size-menu", NULL, N_ ("_Size"), NULL, },
-  { "thumbnailbar-position-menu", NULL, N_ ("Thumbnail Bar _Position"), NULL, },
-  { "thumbnailbar-size-menu", NULL, N_ ("Thumbnail _Size"), NULL, },
+  { "position-menu",
+            NULL,
+            N_ ("_Position"),
+            NULL, },
+  { "size-menu",
+            NULL,
+            N_ ("_Size"),
+            NULL, },
+  { "thumbnailbar-position-menu",
+            NULL,
+            N_ ("Thumbnail Bar _Position"),
+            NULL, },
+  { "thumbnailbar-size-menu",
+            NULL,
+            N_ ("Thumbnail S_ize"),
+            NULL, },
 /* Misc */
-  { "leave-fullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_ ("Leave _Fullscreen"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen), },
-  { "tb-menu", NULL, NULL, NULL, }
+  { "leave-fullscreen",
+            GTK_STOCK_LEAVE_FULLSCREEN, /* Icon-name */
+            N_ ("Leave _Fullscreen"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_fullscreen), },
+  { "tb-menu",
+            NULL,
+            NULL,
+            NULL, }
 };
 
 /** Toggle Action Entries */
 static const GtkToggleActionEntry toggle_action_entries[] =
 {
     /* Toggle visibility of the main file toolbar */
-    { "show-toolbar", NULL, N_ ("_Show Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_toolbar), TRUE, },
+    { "show-toolbar",
+            NULL, /* Icon-name */
+            N_ ("_Show Toolbar"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_toggle_show_toolbar),
+            TRUE, },
     /* Toggle visibility of the main navigation toolbar */
-    { "show-thumbnailbar", NULL, N_ ("Show _Thumbnail Bar"), "<control>M", NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_thumbnailbar), TRUE, },
+    { "show-thumbnailbar",
+            NULL, /* Icon-name */
+            N_ ("Show _Thumbnail Bar"), /* Label-text */
+            "<control>M", /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_toggle_show_thumbnailbar),
+            TRUE, },
     /* Toggle visibility of the statusbar*/
-    { "show-statusbar", NULL, N_ ("Show _Status Bar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_statusbar), TRUE, },
+    { "show-statusbar",
+            NULL, /* Icon-name */
+            N_ ("Show _Status Bar"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            G_CALLBACK (cb_rstto_main_window_toggle_show_statusbar),
+            TRUE, },
 };
 
 /** Image sorting options*/
 static const GtkRadioActionEntry radio_action_sort_entries[] = 
 {
     /* Sort by Filename */
-    {"sort-filename", NULL, N_("sort by filename"), NULL, NULL, 0},
+    {"sort-filename",
+            NULL, /* Icon-name */
+            N_("sort by filename"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            0},
     /* Sort by Date*/
-    {"sort-date", NULL, N_("sort by date"), NULL, NULL, 1},
+    {"sort-date",
+            NULL, /* Icon-name */
+            N_("sort by date"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            1},
 };
 
 /** Navigationbar+Thumbnailbar positioning options*/
 static const GtkRadioActionEntry radio_action_pos_entries[] = 
 {
-    { "pos-left", NULL, N_("Left"), NULL, NULL, 0},
-    { "pos-right", NULL, N_("Right"), NULL, NULL, 1},
-    { "pos-top", NULL, N_("Top"), NULL, NULL, 2},
-    { "pos-bottom", NULL, N_("Bottom"), NULL, NULL, 3},
+    { "pos-left",
+            NULL, /* Icon-name */
+            N_("Left"), /* Label-text */
+            NULL, /* Keyboard shortcut */
+            NULL, /* Tooltip text */
+            0},
+    { "pos-right",
+            NULL,
+            N_("Right"),
+            NULL,
+            NULL,
+            1},
+    { "pos-top",
+            NULL,
+            N_("Top"),
+            NULL,
+            NULL,
+            2},
+    { "pos-bottom",
+            NULL,
+            N_("Bottom"),
+            NULL,
+            NULL,
+            3},
 };
 
 /** Thumbnail-size options*/
 static const GtkRadioActionEntry radio_action_size_entries[] = 
 {
-    { "size-very-small", NULL, N_("Very Small"), NULL, NULL, 0},
-    { "size-smaller", NULL, N_("Smaller"), NULL, NULL, 1},
-    { "size-small", NULL, N_("Small"), NULL, NULL, 2},
-    { "size-normal", NULL, N_("Normal"), NULL, NULL, 3},
-    { "size-large", NULL, N_("Large"), NULL, NULL, 4},
-    { "size-larger", NULL, N_("Larger"), NULL, NULL, 5},
-    { "size-very-large", NULL, N_("Very Large"), NULL, NULL, 6},
+    { "size-very-small",
+            NULL,
+            N_("Very Small"),
+            NULL,
+            NULL,
+            0},
+    { "size-smaller",
+            NULL,
+            N_("Smaller"),
+            NULL,
+            NULL,
+            1},
+    { "size-small",
+            NULL,
+            N_("Small"),
+            NULL,
+            NULL,
+            2},
+    { "size-normal",
+            NULL,
+            N_("Normal"),
+            NULL,
+            NULL,
+            3},
+    { "size-large",
+            NULL,
+            N_("Large"),
+            NULL,
+            NULL,
+            4},
+    { "size-larger",
+            NULL,
+            N_("Larger"),
+            NULL,
+            NULL,
+            5},
+    { "size-very-large",
+            NULL,
+            N_("Very Large"),
+            NULL,
+            NULL,
+            6},
 };
 
 
@@ -1065,7 +1308,7 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window)
             {
             }
 
-            menu_item = gtk_menu_item_new_with_mnemonic (_("Open With Other _Application"));
+            menu_item = gtk_menu_item_new_with_mnemonic (_("Open With Other _Application..."));
             gtk_menu_shell_append (GTK_MENU_SHELL (open_with_menu), menu_item);
             g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(cb_rstto_main_window_open_with_other_app), window);
 
@@ -1206,7 +1449,8 @@ rstto_main_window_update_statusbar (RsttoMainWindow *window)
             status = g_strdup (_("Press open to select an image"));
         }
 
-        if ( rstto_image_viewer_is_busy (viewer) )
+        if ( rstto_image_viewer_is_busy (viewer) ||
+             rstto_image_list_is_busy (window->priv->image_list) )
         {
             if (status)
             {
@@ -2316,7 +2560,7 @@ cb_rstto_main_window_about (GtkWidget *widget, RsttoMainWindow *window)
     gtk_about_dialog_set_license((GtkAboutDialog *)about_dialog,
         xfce_get_license_text(XFCE_LICENSE_TEXT_GPL));
     gtk_about_dialog_set_copyright((GtkAboutDialog *)about_dialog,
-        "Copyright \302\251 2006-2011 Stephan Arts");
+        "Copyright \302\251 2006-2012 Stephan Arts");
 
     gtk_dialog_run(GTK_DIALOG(about_dialog));
 
@@ -3015,6 +3259,7 @@ cb_rstto_main_window_delete (
     GtkWidget *dialog;
     GdkModifierType state;
     gboolean delete_file = FALSE;
+    GError *error = NULL;
 
     g_return_if_fail (rstto_image_list_get_n_images (window->priv->image_list) > 0);
 
@@ -3028,23 +3273,33 @@ cb_rstto_main_window_delete (
 
     if (delete_file)
     {
-        dialog = gtk_message_dialog_new (GTK_WINDOW (window),
-                                                    GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                    GTK_MESSAGE_WARNING,
-                                                    GTK_BUTTONS_OK_CANCEL,
-                                                    _("Are you sure you want to delete image '%s' from disk?"),
-                                                    file_basename);
+        dialog = gtk_message_dialog_new (
+                GTK_WINDOW (window),
+                GTK_DIALOG_DESTROY_WITH_PARENT,
+                GTK_MESSAGE_WARNING,
+                GTK_BUTTONS_OK_CANCEL,
+                _("Are you sure you want to delete image '%s' from disk?"),
+                file_basename);
 
         g_object_ref (file);
         if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
         {
-            if (g_file_delete (rstto_file_get_file(file), NULL, NULL) == TRUE)
+            if (g_file_delete (rstto_file_get_file(file), NULL, &error) == TRUE)
             {
                 rstto_image_list_remove_file (window->priv->image_list, file);
             }
             else
             {
-                
+                gtk_widget_destroy (dialog);
+                dialog = gtk_message_dialog_new (
+                        GTK_WINDOW (window),
+                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                        GTK_MESSAGE_ERROR,
+                        GTK_BUTTONS_OK,
+                        _("An error occurred when deleting image '%s' from disk.\n\n%s"),
+                        file_basename,
+                        error->message);
+                gtk_dialog_run (GTK_DIALOG (dialog)); 
             }
         }
         gtk_widget_destroy (dialog);
@@ -3052,23 +3307,33 @@ cb_rstto_main_window_delete (
     }
     else
     {
-        dialog = gtk_message_dialog_new (GTK_WINDOW (window),
-                                                    GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                    GTK_MESSAGE_WARNING,
-                                                    GTK_BUTTONS_OK_CANCEL,
-                                                    _("Are you sure you want to send image '%s' to trash?"),
-                                                    file_basename);
+        dialog = gtk_message_dialog_new (
+                GTK_WINDOW (window),
+                GTK_DIALOG_DESTROY_WITH_PARENT,
+                GTK_MESSAGE_WARNING,
+                GTK_BUTTONS_OK_CANCEL,
+                _("Are you sure you want to send image '%s' to trash?"),
+                file_basename);
 
         g_object_ref (file);
         if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
         {
-            if (g_file_trash (rstto_file_get_file(file), NULL, NULL) == TRUE)
+            if (g_file_trash (rstto_file_get_file(file), NULL, &error) == TRUE)
             {
                 rstto_image_list_remove_file (window->priv->image_list, file);
             }
             else
             {
-                
+                gtk_widget_destroy (dialog);
+                dialog = gtk_message_dialog_new (
+                        GTK_WINDOW (window),
+                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                        GTK_MESSAGE_ERROR,
+                        GTK_BUTTONS_OK,
+                        _("An error occurred when sending image '%s' to trash.\n\n%s"),
+                        file_basename,
+                        error->message);
+                gtk_dialog_run (GTK_DIALOG (dialog)); 
             }
         }
         gtk_widget_destroy (dialog);
@@ -3299,14 +3564,27 @@ rstto_main_window_add_file_to_recent_files (GFile *file)
     gchar* uri;
     static gchar *groups[2] = { RSTTO_RECENT_FILES_GROUP , NULL };
 
-    if (file == NULL) return FALSE;
+    if (file == NULL)
+    {
+        return FALSE;
+    }
 
     uri = g_file_get_uri (file);
-    if(uri == NULL) return FALSE;
+    if (uri == NULL)
+    {
+        return FALSE;
+    }
 
-    file_info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
-            0, NULL, NULL);
-    if (file_info == NULL) return FALSE;
+    file_info = g_file_query_info (
+            file,
+            G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
+            0,
+            NULL,
+            NULL);
+    if (file_info == NULL)
+    {
+        return FALSE;
+    }
 
     recent_data = g_slice_new (GtkRecentData);
     recent_data->display_name = NULL;
@@ -3381,9 +3659,14 @@ rstto_main_window_launch_editor_chooser (
     image = gtk_image_new_from_gicon (g_icon,   GTK_ICON_SIZE_DIALOG);
     g_object_unref (g_icon);
 
-    label_text = g_strdup_printf (_("Open %s and other files of type %s with:"), rstto_file_get_display_name (r_file), content_type);
+    label_text = g_strdup_printf (
+            _("Open %s and other files of type %s with:"),
+            rstto_file_get_display_name (r_file),
+            content_type);
     label = gtk_label_new (label_text);
+
     check_button = gtk_check_button_new_with_mnemonic(_("Use as _default for this kind of file"));
+
     scrolled_window = gtk_scrolled_window_new (NULL, NULL);
     gtk_scrolled_window_set_policy (
             GTK_SCROLLED_WINDOW (scrolled_window),
@@ -3392,6 +3675,7 @@ rstto_main_window_launch_editor_chooser (
     gtk_scrolled_window_set_shadow_type (
             GTK_SCROLLED_WINDOW (scrolled_window),
             GTK_SHADOW_IN);
+
     gtk_widget_set_size_request (
             scrolled_window,
             300,
@@ -3417,7 +3701,11 @@ rstto_main_window_launch_editor_chooser (
             GTK_TREE_VIEW (treeview),
             GTK_TREE_MODEL (tree_store));
 
-    column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN, "expand", TRUE, NULL);
+    column = g_object_new (
+            GTK_TYPE_TREE_VIEW_COLUMN,
+            "expand",
+            TRUE,
+            NULL);
     renderer = gtk_cell_renderer_pixbuf_new();
 
     gtk_tree_view_column_pack_start (column, renderer, FALSE);
@@ -3431,12 +3719,18 @@ rstto_main_window_launch_editor_chooser (
     renderer = gtk_cell_renderer_text_new ();
     gtk_tree_view_column_pack_start (column, renderer, TRUE);
     gtk_tree_view_column_set_attributes (
-            column, renderer,
-            "style", EDITOR_CHOOSER_MODEL_COLUMN_STYLE,
-            "style-set", EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET,
-            "text", EDITOR_CHOOSER_MODEL_COLUMN_NAME,
-            "weight", EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT,
-            "weight-set", EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET,
+            column,
+            renderer,
+            "style",
+            EDITOR_CHOOSER_MODEL_COLUMN_STYLE,
+            "style-set",
+            EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET,
+            "text",
+            EDITOR_CHOOSER_MODEL_COLUMN_NAME,
+            "weight",
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT,
+            "weight-set",
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET,
             NULL);
 
     gtk_tree_view_append_column (
@@ -3455,14 +3749,22 @@ rstto_main_window_launch_editor_chooser (
             NULL);
 
     gtk_tree_store_append (tree_store, &parent_iter, NULL);
-    gtk_tree_store_set (tree_store, &parent_iter,
-                        EDITOR_CHOOSER_MODEL_COLUMN_PIXBUF, pixbuf,
-                        EDITOR_CHOOSER_MODEL_COLUMN_NAME, _("Recommended Applications"),
-                        EDITOR_CHOOSER_MODEL_COLUMN_APPLICATION, NULL,
-                        EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_SEMIBOLD,
-                        EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET, TRUE,
-                        EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET, FALSE,
-                        -1);
+    gtk_tree_store_set (
+            tree_store,
+            &parent_iter,
+            EDITOR_CHOOSER_MODEL_COLUMN_PIXBUF,
+            pixbuf,
+            EDITOR_CHOOSER_MODEL_COLUMN_NAME,
+            _("Recommended Applications"),
+            EDITOR_CHOOSER_MODEL_COLUMN_APPLICATION,
+            NULL,
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT,
+            PANGO_WEIGHT_SEMIBOLD,
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET,
+            TRUE,
+            EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET,
+            FALSE,
+            -1);
     if (NULL != pixbuf)
     {
         g_object_unref (G_OBJECT(pixbuf));
@@ -3527,14 +3829,22 @@ rstto_main_window_launch_editor_chooser (
             NULL);
 
     gtk_tree_store_append (tree_store, &parent_iter, NULL);
-    gtk_tree_store_set (tree_store, &parent_iter,
-                        EDITOR_CHOOSER_MODEL_COLUMN_PIXBUF, pixbuf,
-                        EDITOR_CHOOSER_MODEL_COLUMN_NAME, _("Other Applications"),
-                        EDITOR_CHOOSER_MODEL_COLUMN_APPLICATION, NULL,
-                        EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_SEMIBOLD,
-                        EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET, TRUE,
-                        EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET, FALSE,
-                        -1);
+    gtk_tree_store_set (
+            tree_store,
+            &parent_iter,
+            EDITOR_CHOOSER_MODEL_COLUMN_PIXBUF,
+            pixbuf,
+            EDITOR_CHOOSER_MODEL_COLUMN_NAME,
+            _("Other Applications"),
+            EDITOR_CHOOSER_MODEL_COLUMN_APPLICATION,
+            NULL,
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT,
+            PANGO_WEIGHT_SEMIBOLD,
+            EDITOR_CHOOSER_MODEL_COLUMN_WEIGHT_SET,
+            TRUE,
+            EDITOR_CHOOSER_MODEL_COLUMN_STYLE_SET,
+            FALSE,
+            -1);
     if (NULL != pixbuf)
     {
         g_object_unref (G_OBJECT(pixbuf));
@@ -3781,10 +4091,17 @@ rstto_main_window_play_slideshow (RsttoMainWindow *window)
             window->priv->toolbar_play_merge_id);
 
     g_value_init (&timeout, G_TYPE_UINT);
-    g_object_get_property (G_OBJECT(window->priv->settings_manager), "slideshow-timeout", &timeout);
+
+    g_object_get_property (
+            G_OBJECT(window->priv->settings_manager),
+            "slideshow-timeout",
+            &timeout);
 
     window->priv->playing = TRUE;
-    window->priv->play_timeout_id = g_timeout_add (g_value_get_uint (&timeout)*1000, (GSourceFunc)cb_rstto_main_window_play_slideshow, window);
+    window->priv->play_timeout_id = g_timeout_add (
+            g_value_get_uint (&timeout)*1000,
+            (GSourceFunc)cb_rstto_main_window_play_slideshow,
+            window);
     return TRUE;
 }
 
@@ -3794,6 +4111,7 @@ cb_icon_bar_selection_changed (
         gpointer user_data)
 {
     RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+
     gint position = rstto_image_list_iter_get_position (window->priv->iter);
     gint selection = rstto_icon_bar_get_active (RSTTO_ICON_BAR(window->priv->thumbnailbar));
 


More information about the Xfce4-commits mailing list