[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