summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/eom-application-activatable.c1
-rw-r--r--src/eom-application-activatable.h1
-rw-r--r--src/eom-application-internal.h2
-rw-r--r--src/eom-close-confirmation-dialog.c18
-rw-r--r--src/eom-file-chooser.c1
-rw-r--r--src/eom-file-chooser.h2
-rw-r--r--src/eom-image-jpeg.c2
-rw-r--r--src/eom-image.c4
-rw-r--r--src/eom-jobs.c6
-rw-r--r--src/eom-jobs.h5
-rw-r--r--src/eom-list-store.c11
-rw-r--r--src/eom-list-store.h3
-rw-r--r--src/eom-metadata-details.c1
-rw-r--r--src/eom-metadata-reader-jpg.c5
-rw-r--r--src/eom-metadata-reader-png.c1
-rw-r--r--src/eom-metadata-reader.c1
-rw-r--r--src/eom-metadata-sidebar.c7
-rw-r--r--src/eom-print-image-setup.c2
-rw-r--r--src/eom-properties-dialog.c2
-rw-r--r--src/eom-save-as-dialog-helper.h2
-rw-r--r--src/eom-scroll-view.c38
-rw-r--r--src/eom-scroll-view.h2
-rw-r--r--src/eom-sidebar.h1
-rw-r--r--src/eom-thumb-view.c27
-rw-r--r--src/eom-transform.h1
-rw-r--r--src/eom-uri-converter.c11
-rw-r--r--src/eom-uri-converter.h1
-rw-r--r--src/eom-util.c1
-rw-r--r--src/eom-window.c94
-rw-r--r--src/eom-window.h3
-rw-r--r--src/main.c6
-rw-r--r--src/meson.build180
32 files changed, 306 insertions, 136 deletions
diff --git a/src/eom-application-activatable.c b/src/eom-application-activatable.c
index a63a87f..fae81d6 100644
--- a/src/eom-application-activatable.c
+++ b/src/eom-application-activatable.c
@@ -5,6 +5,7 @@
* Author: Felix Riemann <[email protected]>
*
* Copyright (C) 2012 Felix Riemann
+ * Copyright (C) 2013-2021 MATE developers
*
* Base on code by:
* - Steve Frécinaux <[email protected]>
diff --git a/src/eom-application-activatable.h b/src/eom-application-activatable.h
index 03e371e..d66d416 100644
--- a/src/eom-application-activatable.h
+++ b/src/eom-application-activatable.h
@@ -5,6 +5,7 @@
* Author: Felix Riemann <[email protected]>
*
* Copyright (C) 2012 Felix Riemann
+ * Copyright (C) 2013-2021 MATE developers
*
* Base on code by:
* - Steve Frécinaux <[email protected]>
diff --git a/src/eom-application-internal.h b/src/eom-application-internal.h
index 442d7fe..c782f29 100644
--- a/src/eom-application-internal.h
+++ b/src/eom-application-internal.h
@@ -1,6 +1,7 @@
/* Eye Of Gnome - Application Facade (internal)
*
* Copyright (C) 2006-2012 The Free Software Foundation
+ * Copyright (C) 2013-2021 MATE developers
*
* Author: Lucas Rocha <[email protected]>
*
@@ -47,7 +48,6 @@ struct _EomApplicationPrivate {
PeasExtensionSet *extensions;
};
-
EggToolbarsModel *eom_application_get_toolbars_model (EomApplication *application);
void eom_application_save_toolbars_model (EomApplication *application);
diff --git a/src/eom-close-confirmation-dialog.c b/src/eom-close-confirmation-dialog.c
index a035f57..b862ba0 100644
--- a/src/eom-close-confirmation-dialog.c
+++ b/src/eom-close-confirmation-dialog.c
@@ -451,8 +451,6 @@ populate_model (GtkTreeModel *store, GList *imgs)
const gchar *name;
GdkPixbuf *buf = NULL;
GdkPixbuf *buf_scaled = NULL;
- int width;
- double ratio;
img = EOM_IMAGE (imgs->data);
@@ -460,9 +458,17 @@ populate_model (GtkTreeModel *store, GList *imgs)
buf = eom_image_get_thumbnail (img);
if (buf) {
- ratio = IMAGE_COLUMN_HEIGHT / (double) gdk_pixbuf_get_height (buf);
- width = (int) (gdk_pixbuf_get_width (buf) * ratio);
- buf_scaled = gdk_pixbuf_scale_simple (buf, width, IMAGE_COLUMN_HEIGHT, GDK_INTERP_BILINEAR);
+ int height;
+ int width;
+ double ratio;
+
+ height = gdk_pixbuf_get_height (buf);
+ ratio = IMAGE_COLUMN_HEIGHT / (double) height;
+ width = gdk_pixbuf_get_width (buf);
+ buf_scaled = gdk_pixbuf_scale_simple (buf,
+ (int) (ratio * (double) width),
+ IMAGE_COLUMN_HEIGHT,
+ GDK_INTERP_BILINEAR);
} else
buf_scaled = get_nothumb_pixbuf ();
@@ -540,8 +546,6 @@ create_treeview (EomCloseConfirmationDialogPrivate *priv)
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
-
-
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Name",
renderer,
diff --git a/src/eom-file-chooser.c b/src/eom-file-chooser.c
index 342c600..5d82901 100644
--- a/src/eom-file-chooser.c
+++ b/src/eom-file-chooser.c
@@ -354,7 +354,6 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
gchar *mime_type = g_content_type_get_mime_type (
g_file_info_get_content_type (file_info));
-
if (G_LIKELY (mime_type)) {
gboolean can_thumbnail, has_failed;
diff --git a/src/eom-file-chooser.h b/src/eom-file-chooser.h
index f642b6d..9ee5529 100644
--- a/src/eom-file-chooser.h
+++ b/src/eom-file-chooser.h
@@ -47,14 +47,12 @@ struct _EomFileChooserClass
GtkFileChooserDialogClass parent_class;
};
-
GType eom_file_chooser_get_type (void) G_GNUC_CONST;
GtkWidget *eom_file_chooser_new (GtkFileChooserAction action);
GdkPixbufFormat *eom_file_chooser_get_format (EomFileChooser *chooser);
-
G_END_DECLS
#endif /* _EOM_FILE_CHOOSER_H_ */
diff --git a/src/eom-image-jpeg.c b/src/eom-image-jpeg.c
index 21f67ff..4118d15 100644
--- a/src/eom-image-jpeg.c
+++ b/src/eom-image-jpeg.c
@@ -73,7 +73,6 @@ struct error_handler_data {
char *filename;
};
-
static void
fatal_error_handler (j_common_ptr cinfo)
{
@@ -103,7 +102,6 @@ fatal_error_handler (j_common_ptr cinfo)
g_assert_not_reached ();
}
-
static void
output_message_handler (j_common_ptr cinfo)
{
diff --git a/src/eom-image.c b/src/eom-image.c
index cc667a8..f24b528 100644
--- a/src/eom-image.c
+++ b/src/eom-image.c
@@ -700,7 +700,6 @@ eom_image_set_icc_data (EomImage *img, EomMetadataReader *md_reader)
priv->profile = eom_metadata_reader_get_icc_profile (md_reader);
-
}
#endif
@@ -897,7 +896,6 @@ eom_image_real_load (EomImage *img,
gboolean read_only_dimension = (data2read & EOM_IMAGE_DATA_DIMENSION) &&
((data2read ^ EOM_IMAGE_DATA_DIMENSION) == 0);
-
priv = img->priv;
g_assert (!read_image_data || priv->image == NULL);
@@ -1878,7 +1876,6 @@ eom_image_save_as_by_info (EomImage *img, EomImageSaveInfo *source, EomImageSave
return success;
}
-
/*
* This function is extracted from
* File: caja/libcaja-private/caja-file.c
@@ -2070,7 +2067,6 @@ eom_image_get_xmp_info (EomImage *img)
return data;
}
-
/**
* eom_image_get_file:
* @img: a #EomImage
diff --git a/src/eom-jobs.c b/src/eom-jobs.c
index bde2517..7104268 100644
--- a/src/eom-jobs.c
+++ b/src/eom-jobs.c
@@ -351,6 +351,7 @@ eom_job_model_class_init (EomJobModelClass *class)
/**
* eom_job_model_new:
* @file_list: (element-type GFile): a #GFile list
+ * @preserve_order: Flag to indicate whether to honor the order of input parameters.
*
* Creates a new #EomJob model.
*
@@ -358,13 +359,14 @@ eom_job_model_class_init (EomJobModelClass *class)
*/
EomJob *
-eom_job_model_new (GSList *file_list)
+eom_job_model_new (GSList *file_list, gboolean preserve_order)
{
EomJobModel *job;
job = g_object_new (EOM_TYPE_JOB_MODEL, NULL);
job->file_list = file_list;
+ job->preserve_order = preserve_order;
return EOM_JOB (job);
}
@@ -438,7 +440,7 @@ eom_job_model_run (EomJob *ejob)
job->store = EOM_LIST_STORE (eom_list_store_new ());
- eom_list_store_add_files (job->store, filtered_list);
+ eom_list_store_add_files (job->store, filtered_list, job->preserve_order);
g_list_free_full (filtered_list, g_object_unref);
g_list_free_full (error_list, g_free);
diff --git a/src/eom-jobs.h b/src/eom-jobs.h
index 1667d43..37bc26e 100644
--- a/src/eom-jobs.h
+++ b/src/eom-jobs.h
@@ -115,7 +115,6 @@ typedef struct _EomJobCopyClass EomJobCopyClass;
#define EOM_JOB_COPY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EOM_TYPE_JOB_COPY, EomJobCopyClass))
#define EOM_IS_JOB_COPY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), EOM_TYPE_JOB_COPY))
-
struct _EomJob
{
GObject parent;
@@ -164,6 +163,7 @@ struct _EomJobModel
EomJob parent;
EomListStore *store;
GSList *file_list;
+ gboolean preserve_order;
};
struct _EomJobModelClass
@@ -248,7 +248,8 @@ EomJob *eom_job_load_new (EomImage *image,
/* EomJobModel */
GType eom_job_model_get_type (void) G_GNUC_CONST;
-EomJob *eom_job_model_new (GSList *file_list);
+EomJob *eom_job_model_new (GSList *file_list,
+ gboolean preserve_order);
/* EomJobTransform */
GType eom_job_transform_get_type (void) G_GNUC_CONST;
diff --git a/src/eom-list-store.c b/src/eom-list-store.c
index 900cbdf..3d1a9c6 100644
--- a/src/eom-list-store.c
+++ b/src/eom-list-store.c
@@ -34,7 +34,8 @@ struct _EomListStorePrivate {
gint initial_image; /* The image that should be selected firstly by the view. */
GdkPixbuf *busy_image; /* Loading image icon */
GdkPixbuf *missing_image; /* Missing image icon */
- GMutex mutex; /* Mutex for saving the jobs in the model */
+ GMutex mutex; /* Mutex for saving the jobs in the model */
+ gboolean preserve_order; /* If TRUE, preserves the original order of files */
};
G_DEFINE_TYPE_WITH_PRIVATE (EomListStore, eom_list_store, GTK_TYPE_LIST_STORE);
@@ -529,6 +530,7 @@ eom_list_store_append_directory (EomListStore *store,
* eom_list_store_add_files:
* @store: An #EomListStore.
* @file_list: (element-type GFile): A %NULL-terminated list of #GFile's.
+ * @preserve_order: Flag to indicate whether to honor the order of input parameters.
*
* Adds a list of #GFile's to @store. The given list
* must be %NULL-terminated.
@@ -540,7 +542,7 @@ eom_list_store_append_directory (EomListStore *store,
*
**/
void
-eom_list_store_add_files (EomListStore *store, GList *file_list)
+eom_list_store_add_files (EomListStore *store, GList *file_list, gboolean preserve_order)
{
GList *it;
GFileInfo *file_info;
@@ -624,7 +626,11 @@ eom_list_store_add_files (EomListStore *store, GList *file_list)
g_free (caption);
}
+ /* Set the sort behaviour depending on the toggle option.
+ If preserve_order is TRUE, then preserve the order in which files were provided.
+ Otherwise, use the default sort function. */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
+ preserve_order ? GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID : \
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
GTK_SORT_ASCENDING);
@@ -821,7 +827,6 @@ eom_list_store_remove_thumbnail_job (EomListStore *store,
g_mutex_unlock (&store->priv->mutex);
}
-
}
static void
diff --git a/src/eom-list-store.h b/src/eom-list-store.h
index 6536b10..bc5052b 100644
--- a/src/eom-list-store.h
+++ b/src/eom-list-store.h
@@ -81,7 +81,8 @@ void eom_list_store_append_image (EomListStore *store,
EomImage *image);
void eom_list_store_add_files (EomListStore *store,
- GList *file_list);
+ GList *file_list,
+ gboolean preserve_order);
void eom_list_store_remove_image (EomListStore *store,
EomImage *image);
diff --git a/src/eom-metadata-details.c b/src/eom-metadata-details.c
index 9947300..032de24 100644
--- a/src/eom-metadata-details.c
+++ b/src/eom-metadata-details.c
@@ -375,7 +375,6 @@ eom_exif_entry_get_value (ExifEntry *e,
ExifRational r;
gfloat h = 0., m = 0., s = 0.;
-
rational_size = exif_format_get_size (EXIF_FORMAT_RATIONAL);
if (G_UNLIKELY (e->components != 3 ||
e->format != EXIF_FORMAT_RATIONAL))
diff --git a/src/eom-metadata-reader-jpg.c b/src/eom-metadata-reader-jpg.c
index 9c1897e..b21f3c1 100644
--- a/src/eom-metadata-reader-jpg.c
+++ b/src/eom-metadata-reader-jpg.c
@@ -52,7 +52,6 @@ typedef enum {
EJA_OTHER
} EomJpegApp1Type;
-
#define EOM_JPEG_MARKER_START 0xFF
#define EOM_JPEG_MARKER_APP1 0xE1
#define EOM_JPEG_MARKER_APP2 0xE2
@@ -89,14 +88,12 @@ struct _EomMetadataReaderJpgPrivate {
static void
eom_metadata_reader_jpg_init_emr_iface (gpointer g_iface, gpointer iface_data);
-
G_DEFINE_TYPE_WITH_CODE (EomMetadataReaderJpg, eom_metadata_reader_jpg,
G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (EOM_TYPE_METADATA_READER,
eom_metadata_reader_jpg_init_emr_iface) \
G_ADD_PRIVATE (EomMetadataReaderJpg))
-
static void
eom_metadata_reader_jpg_dispose (GObject *object)
{
@@ -155,7 +152,6 @@ eom_metadata_reader_jpg_finished (EomMetadataReaderJpg *emr)
return (emr->priv->state == EMR_FINISHED);
}
-
static EomJpegApp1Type
eom_metadata_identify_app1 (gchar *buf, guint len)
{
@@ -467,7 +463,6 @@ eom_metadata_reader_jpg_get_exif_data (EomMetadataReaderJpg *emr)
}
#endif
-
#ifdef HAVE_EXEMPI
/* skip the signature */
diff --git a/src/eom-metadata-reader-png.c b/src/eom-metadata-reader-png.c
index a0ca172..7093144 100644
--- a/src/eom-metadata-reader-png.c
+++ b/src/eom-metadata-reader-png.c
@@ -158,7 +158,6 @@ eom_metadata_reader_png_finished (EomMetadataReaderPng *emr)
return (emr->priv->state == EMR_FINISHED);
}
-
static void
eom_metadata_reader_png_get_next_block (EomMetadataReaderPngPrivate* priv,
guchar *chunk,
diff --git a/src/eom-metadata-reader.c b/src/eom-metadata-reader.c
index 2c93a14..d7b3e9b 100644
--- a/src/eom-metadata-reader.c
+++ b/src/eom-metadata-reader.c
@@ -60,7 +60,6 @@ eom_metadata_reader_finished (EomMetadataReader *emr)
return EOM_METADATA_READER_GET_INTERFACE (emr)->finished (emr);
}
-
void
eom_metadata_reader_consume (EomMetadataReader *emr, const guchar *buf, guint len)
{
diff --git a/src/eom-metadata-sidebar.c b/src/eom-metadata-sidebar.c
index ba31937..9b8fc8b 100644
--- a/src/eom-metadata-sidebar.c
+++ b/src/eom-metadata-sidebar.c
@@ -263,12 +263,16 @@ eom_metadata_sidebar_set_image (EomMetadataSidebar *sidebar, EomImage *image)
if (image == priv->image)
return;
-
+#if GLIB_CHECK_VERSION(2,62,0)
+ g_clear_signal_handler (&priv->thumb_changed_id,
+ priv->image);
+#else
if (priv->thumb_changed_id != 0) {
g_signal_handler_disconnect (priv->image,
priv->thumb_changed_id);
priv->thumb_changed_id = 0;
}
+#endif
if (priv->image)
g_object_unref (priv->image);
@@ -525,7 +529,6 @@ eom_metadata_sidebar_class_init (EomMetadataSidebarClass *klass)
#endif /* HAVE_METADATA */
}
-
GtkWidget*
eom_metadata_sidebar_new (EomWindow *window)
{
diff --git a/src/eom-print-image-setup.c b/src/eom-print-image-setup.c
index 2fde257..b7b86f2 100644
--- a/src/eom-print-image-setup.c
+++ b/src/eom-print-image-setup.c
@@ -781,7 +781,6 @@ set_initial_values (EomPrintImageSetup *setup)
update_image_pos_ranges (setup, page_width, page_height, width, height);
-
}
static void
@@ -973,7 +972,6 @@ eom_print_image_setup_init (EomPrintImageSetup *setup)
gtk_widget_show_all (GTK_WIDGET (setup));
}
-
/**
* eom_print_image_setup_new:
* @image: the #EomImage to print
diff --git a/src/eom-properties-dialog.c b/src/eom-properties-dialog.c
index 67c3d6b..0bad997 100644
--- a/src/eom-properties-dialog.c
+++ b/src/eom-properties-dialog.c
@@ -120,7 +120,6 @@ parent_file_display_name_query_info_cb (GObject *source_object,
GFileInfo *file_info;
gchar *display_name;
-
file_info = g_file_query_info_finish (parent_file, res, NULL);
if (file_info == NULL) {
display_name = g_file_get_basename (parent_file);
@@ -346,7 +345,6 @@ pd_update_metadata_tab (EomPropertiesDialog *prop_dlg,
eom_exif_util_set_label_text (GTK_LABEL (priv->exif_iso_label),
exif_data, EXIF_TAG_ISO_SPEED_RATINGS);
-
eom_exif_util_set_label_text (GTK_LABEL (priv->exif_metering_label),
exif_data, EXIF_TAG_METERING_MODE);
diff --git a/src/eom-save-as-dialog-helper.h b/src/eom-save-as-dialog-helper.h
index dd72fa9..9374ea8 100644
--- a/src/eom-save-as-dialog-helper.h
+++ b/src/eom-save-as-dialog-helper.h
@@ -5,7 +5,6 @@
#include <gio/gio.h>
#include "eom-uri-converter.h"
-
G_BEGIN_DECLS
G_GNUC_INTERNAL
@@ -14,7 +13,6 @@ GtkWidget* eom_save_as_dialog_new (GtkWindow *main, GList *images, GFil
G_GNUC_INTERNAL
EomURIConverter* eom_save_as_dialog_get_converter (GtkWidget *dlg);
-
G_END_DECLS
#endif /* _EOM_SAVE_DIALOG_HELPER_H_ */
diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c
index f35e022..ee57c77 100644
--- a/src/eom-scroll-view.c
+++ b/src/eom-scroll-view.c
@@ -87,8 +87,8 @@ struct _EomScrollViewPrivate {
/* actual image */
EomImage *image;
- guint image_changed_id;
- guint frame_changed_id;
+ gulong image_changed_id;
+ gulong frame_changed_id;
GdkPixbuf *pixbuf;
cairo_surface_t *surface;
@@ -188,15 +188,20 @@ free_image_resources (EomScrollView *view)
priv = view->priv;
- if (priv->image_changed_id > 0) {
+#if GLIB_CHECK_VERSION(2,62,0)
+ g_clear_signal_handler (&priv->image_changed_id, priv->image);
+ g_clear_signal_handler (&priv->frame_changed_id, priv->image);
+#else
+ if (priv->image_changed_id != 0) {
g_signal_handler_disconnect (priv->image, priv->image_changed_id);
priv->image_changed_id = 0;
}
- if (priv->frame_changed_id > 0) {
+ if (priv->frame_changed_id != 0) {
g_signal_handler_disconnect (priv->image, priv->frame_changed_id);
priv->frame_changed_id = 0;
}
+#endif
if (priv->image != NULL) {
eom_image_data_unref (priv->image);
@@ -558,7 +563,6 @@ create_background_surface (EomScrollView *view)
--------------------------------------*/
-
/* Scrolls the view to the specified offsets. */
static void
scroll_to (EomScrollView *view, int x, int y, gboolean change_adjustments)
@@ -640,7 +644,6 @@ scroll_by (EomScrollView *view, int xofs, int yofs)
scroll_to (view, priv->xofs + xofs, priv->yofs + yofs, TRUE);
}
-
/* Callback used when an adjustment is changed */
static void
adjustment_changed_cb (GtkAdjustment *adj, gpointer data)
@@ -657,7 +660,6 @@ adjustment_changed_cb (GtkAdjustment *adj, gpointer data)
gtk_widget_queue_resize (GTK_WIDGET (view));
}
-
/* Drags the image to the specified position */
static void
drag_to (EomScrollView *view, int x, int y)
@@ -923,7 +925,6 @@ display_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer data)
return TRUE;
}
-
/* Button press event handler for the image view */
static gboolean
eom_scroll_view_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data)
@@ -1032,12 +1033,12 @@ eom_scroll_view_scroll_event (GtkWidget *widget, GdkEventScroll *event, gpointer
case GDK_SCROLL_DOWN:
zoom_factor = 1.0 / priv->zoom_multiplier;
xofs = 0;
- yofs = yofs;
+ /* yofs = yofs; */
break;
case GDK_SCROLL_RIGHT:
zoom_factor = priv->zoom_multiplier;
- xofs = xofs;
+ /* xofs = xofs; */
yofs = 0;
break;
@@ -1158,7 +1159,6 @@ display_size_change (GtkWidget *widget, GdkEventConfigure *event, gpointer data)
update_scrollbar_values (view);
}
-
static gboolean
eom_scroll_view_focus_in_event (GtkWidget *widget,
GdkEventFocus *event,
@@ -1299,7 +1299,8 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
cairo_matrix_init_identity (&matrix);
if (transform) {
cairo_matrix_t affine;
- double image_offset_x = 0., image_offset_y = 0.;
+ int image_offset_x = 0;
+ int image_offset_y = 0;
eom_transform_get_affine (transform, &affine);
cairo_matrix_multiply (&matrix, &affine, &matrix);
@@ -1307,23 +1308,23 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
switch (eom_transform_get_transform_type (transform)) {
case EOM_TRANSFORM_ROT_90:
case EOM_TRANSFORM_FLIP_HORIZONTAL:
- image_offset_x = (double) gdk_pixbuf_get_width (priv->pixbuf);
+ image_offset_x = gdk_pixbuf_get_width (priv->pixbuf);
break;
case EOM_TRANSFORM_ROT_270:
case EOM_TRANSFORM_FLIP_VERTICAL:
- image_offset_y = (double) gdk_pixbuf_get_height (priv->pixbuf);
+ image_offset_y = gdk_pixbuf_get_height (priv->pixbuf);
break;
case EOM_TRANSFORM_ROT_180:
case EOM_TRANSFORM_TRANSPOSE:
case EOM_TRANSFORM_TRANSVERSE:
- image_offset_x = (double) gdk_pixbuf_get_width (priv->pixbuf);
- image_offset_y = (double) gdk_pixbuf_get_height (priv->pixbuf);
+ image_offset_x = gdk_pixbuf_get_width (priv->pixbuf);
+ image_offset_y = gdk_pixbuf_get_height (priv->pixbuf);
break;
case EOM_TRANSFORM_NONE:
default:
break;
}
- cairo_matrix_init_translate (&translate, image_offset_x, image_offset_y);
+ cairo_matrix_init_translate (&translate, (double) image_offset_x, (double) image_offset_y);
cairo_matrix_multiply (&matrix, &matrix, &translate);
}
/* Zoom factor for SVGs is already scaled, so scale back to application pixels. */
@@ -1370,7 +1371,6 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
return TRUE;
}
-
/*==================================
image loading callbacks
@@ -2075,7 +2075,6 @@ eom_scroll_view_set_property (GObject *object, guint property_id,
}
}
-
static void
eom_scroll_view_class_init (EomScrollViewClass *klass)
{
@@ -2248,7 +2247,6 @@ eom_scroll_view_new (void)
"column-homogeneous", FALSE,
NULL);
-
return widget;
}
diff --git a/src/eom-scroll-view.h b/src/eom-scroll-view.h
index 2dffec3..2f10e3e 100644
--- a/src/eom-scroll-view.h
+++ b/src/eom-scroll-view.h
@@ -16,7 +16,6 @@ typedef struct _EomScrollViewPrivate EomScrollViewPrivate;
#define EOM_IS_SCROLL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EOM_TYPE_SCROLL_VIEW))
#define EOM_IS_SCROLL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EOM_TYPE_SCROLL_VIEW))
-
struct _EomScrollView {
GtkGrid base_instance;
@@ -72,4 +71,3 @@ G_END_DECLS
#endif /* _EOM_SCROLL_VIEW_H_ */
-
diff --git a/src/eom-sidebar.h b/src/eom-sidebar.h
index 6986f41..3a1a3a2 100644
--- a/src/eom-sidebar.h
+++ b/src/eom-sidebar.h
@@ -79,4 +79,3 @@ G_END_DECLS
#endif /* __EOM_SIDEBAR_H__ */
-
diff --git a/src/eom-thumb-view.c b/src/eom-thumb-view.c
index bc1184e..0b28440 100644
--- a/src/eom-thumb-view.c
+++ b/src/eom-thumb-view.c
@@ -78,7 +78,7 @@ struct _EomThumbViewPrivate {
gint end_thumb; /* the last visible thumbnail */
GtkWidget *menu; /* a contextual menu for thumbnails */
GtkCellRenderer *pixbuf_cell;
- gint visible_range_changed_id;
+ guint visible_range_changed_id;
GtkOrientation orientation;
gint n_images;
@@ -167,17 +167,24 @@ eom_thumb_view_dispose (GObject *object)
priv->visible_range_changed_id = 0;
}
- model = gtk_icon_view_get_model (GTK_ICON_VIEW (object));
-
- if (model && priv->image_add_id != 0) {
- g_signal_handler_disconnect (model, priv->image_add_id);
- priv->image_add_id = 0;
+#if GLIB_CHECK_VERSION(2,62,0)
+ if ((model = gtk_icon_view_get_model (GTK_ICON_VIEW (object))) != NULL) {
+ g_clear_signal_handler (&priv->image_add_id, model);
+ g_clear_signal_handler (&priv->image_removed_id, model);
}
+#else
+ if ((model = gtk_icon_view_get_model (GTK_ICON_VIEW (object))) != NULL) {
+ if (priv->image_add_id != 0) {
+ g_signal_handler_disconnect (model, priv->image_add_id);
+ priv->image_add_id = 0;
+ }
- if (model && priv->image_removed_id) {
- g_signal_handler_disconnect (model, priv->image_removed_id);
- priv->image_removed_id = 0;
+ if (priv->image_removed_id != 0) {
+ g_signal_handler_disconnect (model, priv->image_removed_id);
+ priv->image_removed_id = 0;
+ }
}
+#endif
G_OBJECT_CLASS (eom_thumb_view_parent_class)->dispose (object);
}
@@ -1024,7 +1031,6 @@ eom_thumb_view_select_single (EomThumbView *thumbview,
gtk_tree_path_free (path);
}
-
/**
* eom_thumb_view_set_thumbnail_popup:
* @thumbview: An #EomThumbView.
@@ -1052,7 +1058,6 @@ eom_thumb_view_set_thumbnail_popup (EomThumbView *thumbview,
NULL);
}
-
static void
eom_thumb_view_popup_menu (EomThumbView *thumbview, GdkEventButton *event)
{
diff --git a/src/eom-transform.h b/src/eom-transform.h
index a321e03..7df2df4 100644
--- a/src/eom-transform.h
+++ b/src/eom-transform.h
@@ -72,4 +72,3 @@ G_END_DECLS
#endif /* _EOM_TRANSFORM_H_ */
-
diff --git a/src/eom-uri-converter.c b/src/eom-uri-converter.c
index 68c5714..345cf54 100644
--- a/src/eom-uri-converter.c
+++ b/src/eom-uri-converter.c
@@ -26,7 +26,6 @@ typedef struct {
} data;
} EomUCToken;
-
struct _EomURIConverterPrivate {
GFile *base_file;
GList *token_list;
@@ -88,7 +87,6 @@ eom_uri_converter_dispose (GObject *object)
priv->suffix = NULL;
}
-
G_OBJECT_CLASS (eom_uri_converter_parent_class)->dispose (object);
}
@@ -148,7 +146,6 @@ eom_uri_converter_class_init (EomURIConverterClass *klass)
1,
G_PARAM_READWRITE));
-
g_object_class_install_property (
object_class,
PROP_N_IMAGES,
@@ -169,7 +166,6 @@ eom_uc_error_quark (void)
return q;
}
-
static void
eom_uri_converter_set_property (GObject *object,
guint property_id,
@@ -418,7 +414,6 @@ eom_uri_converter_parse_string (EomURIConverter *conv, const char *string)
g_assert_not_reached ();
}
-
if (token != NULL) {
list = g_list_append (list, token);
}
@@ -500,7 +495,6 @@ eom_uri_converter_print_list (EomURIConverter *conv)
}
}
-
EomURIConverter*
eom_uri_converter_new (GFile *base_file, GdkPixbufFormat *img_format, const char *format_str)
{
@@ -615,7 +609,6 @@ append_counter (GString *str, gulong counter, EomURIConverter *conv)
return str;
}
-
static void
build_absolute_file (EomURIConverter *conv, EomImage *image, GString *str, /* input */
GFile **file, GdkPixbufFormat **format) /* output */
@@ -671,7 +664,6 @@ build_absolute_file (EomURIConverter *conv, EomImage *image, GString *str, /* i
g_object_unref (dir_file);
}
-
static GString*
replace_remove_chars (GString *str, gboolean convert_spaces, gunichar space_char)
{
@@ -801,11 +793,9 @@ eom_uri_converter_do (EomURIConverter *conv, EomImage *image,
g_string_free (repl_str, TRUE);
g_string_free (str, TRUE);
-
return (*file != NULL);
}
-
char*
eom_uri_converter_preview (const char *format_str, EomImage *img, GdkPixbufFormat *format,
gulong counter, guint n_images,
@@ -888,7 +878,6 @@ eom_uri_converter_preview (const char *format_str, EomImage *img, GdkPixbufForma
}
}
-
filename = NULL;
repl_str = replace_remove_chars (str, convert_spaces, space_char);
diff --git a/src/eom-uri-converter.h b/src/eom-uri-converter.h
index b1cbe94..5168466 100644
--- a/src/eom-uri-converter.h
+++ b/src/eom-uri-converter.h
@@ -52,7 +52,6 @@ typedef enum {
#define EOM_UC_ERROR eom_uc_error_quark ()
-
struct _EomURIConverter {
GObject parent;
diff --git a/src/eom-util.c b/src/eom-util.c
index 324b7f3..e914223 100644
--- a/src/eom-util.c
+++ b/src/eom-util.c
@@ -311,7 +311,6 @@ eom_util_filename_get_extension (const char * filename)
return g_strdup (begin);
}
-
/**
* eom_util_file_is_persistent:
* @file: a #GFile
diff --git a/src/eom-window.c b/src/eom-window.c
index a431674..c039d67 100644
--- a/src/eom-window.c
+++ b/src/eom-window.c
@@ -496,38 +496,40 @@ update_status_bar (EomWindow *window)
priv = window->priv;
- if (priv->image != NULL &&
- eom_image_has_data (priv->image, EOM_IMAGE_DATA_DIMENSION)) {
- int zoom, width, height;
- goffset bytes = 0;
+ if (priv->image != NULL)
+ {
+ if ( eom_image_has_data (priv->image, EOM_IMAGE_DATA_DIMENSION))
+ {
+ int zoom, width, height;
+ goffset bytes = 0;
- zoom = floor (100 * eom_scroll_view_get_zoom (EOM_SCROLL_VIEW (priv->view)) + 0.5);
+ zoom = floor (100 * eom_scroll_view_get_zoom (EOM_SCROLL_VIEW (priv->view)) + 0.5);
- eom_image_get_size (priv->image, &width, &height);
+ eom_image_get_size (priv->image, &width, &height);
- bytes = eom_image_get_bytes (priv->image);
+ bytes = eom_image_get_bytes (priv->image);
- if ((width > 0) && (height > 0)) {
- char *size_string;
+ if ((width > 0) && (height > 0)) {
+ char *size_string;
- size_string = g_format_size (bytes);
+ size_string = g_format_size (bytes);
- /* Translators: This is the string displayed in the statusbar
- * The tokens are from left to right:
- * - image width
- * - image height
- * - image size in bytes
- * - zoom in percent */
- str = g_strdup_printf (ngettext("%i × %i pixel %s %i%%",
- "%i × %i pixels %s %i%%", height),
- width,
- height,
- size_string,
- zoom);
+ /* Translators: This is the string displayed in the statusbar
+ * The tokens are from left to right:
+ * - image width
+ * - image height
+ * - image size in bytes
+ * - zoom in percent */
+ str = g_strdup_printf (ngettext("%i × %i pixel %s %i%%",
+ "%i × %i pixels %s %i%%", height),
+ width,
+ height,
+ size_string,
+ zoom);
- g_free (size_string);
+ g_free (size_string);
+ }
}
-
update_image_pos (window);
}
@@ -574,7 +576,6 @@ update_action_groups_state (EomWindow *window)
GtkAction *action_sshow;
GtkAction *action_print;
gboolean print_disabled = FALSE;
- gboolean show_image_collection = FALSE;
gint n_images = 0;
g_return_if_fail (EOM_IS_WINDOW (window));
@@ -633,6 +634,8 @@ update_action_groups_state (EomWindow *window)
priv->status = EOM_WINDOW_STATUS_NORMAL;
}
} else {
+ gboolean show_image_collection;
+
if (priv->flags & EOM_STARTUP_DISABLE_COLLECTION) {
g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION, FALSE);
@@ -2814,7 +2817,6 @@ eom_window_set_wallpaper (EomWindow *window, const gchar *filename, const gchar
gtk_widget_show_all (hbox);
gtk_widget_show (info_bar);
-
eom_window_set_message_area (window, info_bar);
gtk_info_bar_set_default_response (GTK_INFO_BAR (info_bar),
GTK_RESPONSE_YES);
@@ -3756,12 +3758,12 @@ eom_window_cmd_go_random (GtkAction *action, gpointer user_data)
}
static const GtkActionEntry action_entries_window[] = {
- { "Image", NULL, N_("_Image") },
- { "Edit", NULL, N_("_Edit") },
- { "View", NULL, N_("_View") },
- { "Go", NULL, N_("_Go") },
- { "Tools", NULL, N_("_Tools") },
- { "Help", NULL, N_("_Help") },
+ { "Image", NULL, N_("_Image"), NULL, NULL, NULL },
+ { "Edit", NULL, N_("_Edit"), NULL, NULL, NULL },
+ { "View", NULL, N_("_View"), NULL, NULL, NULL },
+ { "Go", NULL, N_("_Go"), NULL, NULL, NULL },
+ { "Tools", NULL, N_("_Tools"), NULL, NULL, NULL },
+ { "Help", NULL, N_("_Help"), NULL, NULL, NULL },
{ "ImageOpen", "document-open", N_("_Open…"), "<control>O",
N_("Open a file"),
@@ -4323,7 +4325,8 @@ eom_window_open_editor (GtkAction *action,
{
GdkAppLaunchContext *context;
GAppInfo *app_info;
- GList files;
+ GList *files = NULL;
+ GFile *file;
app_info = get_appinfo_for_editor (window);
@@ -4339,15 +4342,14 @@ eom_window_open_editor (GtkAction *action,
gdk_app_launch_context_set_timestamp (context,
gtk_get_current_event_time ());
- {
- GList f = { eom_image_get_file (window->priv->image) };
- files = f;
- }
+ file = eom_image_get_file (window->priv->image);
+ files = g_list_append (files, file);
- g_app_info_launch (app_info, &files,
+ g_app_info_launch (app_info, files,
G_APP_LAUNCH_CONTEXT (context), NULL);
- g_object_unref (files.data);
+ g_list_free (files);
+ g_object_unref (file);
g_object_unref (context);
}
@@ -4686,7 +4688,9 @@ static void
eom_window_init (EomWindow *window)
{
GdkGeometry hints;
+#if defined(HAVE_LCMS) && defined(GDK_WINDOWING_X11)
GdkScreen *screen;
+#endif
EomWindowPrivate *priv;
eom_debug (DEBUG_WINDOW);
@@ -4699,8 +4703,6 @@ eom_window_init (EomWindow *window)
hints.min_width = EOM_WINDOW_MIN_WIDTH;
hints.min_height = EOM_WINDOW_MIN_HEIGHT;
- screen = gtk_widget_get_screen (GTK_WIDGET (window));
-
priv = window->priv = eom_window_get_instance_private (window);
priv->view_settings = g_settings_new (EOM_CONF_VIEW);
@@ -4738,6 +4740,7 @@ eom_window_init (EomWindow *window)
window->priv->status = EOM_WINDOW_STATUS_UNKNOWN;
#if defined(HAVE_LCMS) && defined(GDK_WINDOWING_X11)
+ screen = gtk_widget_get_screen (GTK_WIDGET (window));
window->priv->display_profile =
eom_window_get_display_profile (screen);
#endif
@@ -5326,9 +5329,10 @@ eom_window_class_init (EomWindowClass *class)
* @flags: the initialization parameters for the new window.
*
*
- * Creates a new and empty #EomWindow. Use @flags to indicate
- * if the window should be initialized fullscreen, in slideshow mode,
- * and/or without the thumbnails collection visible. See #EomStartupFlags.
+ * Creates a new and empty #EomWindow. Use @flags to indicate if the window
+ * should be initialized fullscreen, in slideshow mode, and/or without the
+ * thumbnails collection visible. Use preserve-order to maintain
+ * the order of input parameters instead of sorting. See #EomStartupFlags.
*
* Returns: a newly created #EomWindow.
**/
@@ -5468,7 +5472,7 @@ eom_window_open_file_list (EomWindow *window, GSList *file_list)
g_slist_foreach (file_list, (GFunc) g_object_ref, NULL);
window->priv->file_list = file_list;
- job = eom_job_model_new (file_list);
+ job = eom_job_model_new (file_list, !!(window->priv->flags & EOM_STARTUP_PRESERVE_ORDER));
g_signal_connect (job, "finished",
G_CALLBACK (eom_job_model_cb),
diff --git a/src/eom-window.h b/src/eom-window.h
index 04e028b..cd1d7b5 100644
--- a/src/eom-window.h
+++ b/src/eom-window.h
@@ -78,7 +78,8 @@ typedef enum {
typedef enum {
EOM_STARTUP_FULLSCREEN = 1 << 0,
EOM_STARTUP_SLIDE_SHOW = 1 << 1,
- EOM_STARTUP_DISABLE_COLLECTION = 1 << 2
+ EOM_STARTUP_DISABLE_COLLECTION = 1 << 2,
+ EOM_STARTUP_PRESERVE_ORDER = 1 << 3
} EomStartupFlags;
struct _EomWindow {
diff --git a/src/main.c b/src/main.c
index 5f0806c..94487d8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -52,6 +52,7 @@ static gboolean fullscreen = FALSE;
static gboolean slide_show = FALSE;
static gboolean disable_collection = FALSE;
static gboolean force_new_instance = FALSE;
+static gboolean preserve_order = FALSE;
static gchar **startup_files = NULL;
static gboolean
@@ -71,6 +72,7 @@ static const GOptionEntry goption_options[] =
{ "disable-image-collection", 'c', 0, G_OPTION_ARG_NONE, &disable_collection, N_("Disable image collection"), NULL },
{ "slide-show", 's', 0, G_OPTION_ARG_NONE, &slide_show, N_("Open in slideshow mode"), NULL },
{ "new-instance", 'n', 0, G_OPTION_ARG_NONE, &force_new_instance, N_("Start a new instance instead of reusing an existing one"), NULL },
+ { "preserve-order", 'p', 0, G_OPTION_ARG_NONE, &preserve_order, N_("Preserve the input file order (disable default sorting)"), NULL },
{ "version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
_print_version_and_exit, N_("Show the application's version"), NULL},
{ NULL }
@@ -87,6 +89,9 @@ set_startup_flags (void)
if (slide_show)
flags |= EOM_STARTUP_SLIDE_SHOW;
+
+ if (preserve_order)
+ flags |= EOM_STARTUP_PRESERVE_ORDER;
}
int
@@ -130,7 +135,6 @@ main (int argc, char **argv)
}
g_option_context_free (ctx);
-
set_startup_flags ();
#ifdef HAVE_EXEMPI
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..92e6fff
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,180 @@
+resources = gnome.compile_resources(
+ 'eom-resources',
+ 'eom.gresource.xml',
+ c_name: '_eom',
+ source_dir: '../data',
+)
+
+marshal = gnome.genmarshal('eom-marshal', sources: ['eom-marshal.list'], prefix: 'eom_marshal')
+
+inst_headers = files(
+ 'eom-application.h',
+ 'eom-application-activatable.h',
+ 'eom-debug.h',
+ 'eom-window.h',
+ 'eom-window-activatable.h',
+ 'eom-sidebar.h',
+ 'eom-properties-dialog.h',
+ 'eom-error-message-area.h',
+ 'eom-file-chooser.h',
+ 'eom-statusbar.h',
+ 'eom-thumb-nav.h',
+ 'eom-transform.h',
+ 'eom-image.h',
+ 'eom-enums.h',
+ 'eom-image-save-info.h',
+ 'eom-scroll-view.h',
+ 'eom-thumb-view.h',
+ 'eom-list-store.h',
+ 'eom-thumbnail.h',
+ 'eom-job-queue.h',
+ 'eom-clipboard-handler.h',
+ 'eom-jobs.h',
+)
+
+noinst_headers = files(
+ 'eom-application-internal.h',
+ 'eom-session.h',
+ 'eom-util.h',
+ 'eom-pixbuf-util.h',
+ 'eom-preferences-dialog.h',
+ 'eom-config-keys.h',
+ 'eom-image-jpeg.h',
+ 'eom-image-private.h',
+ 'eom-metadata-sidebar.h',
+ 'eom-uri-converter.h',
+ 'eom-metadata-reader.h',
+ 'eom-metadata-reader-jpg.h',
+ 'eom-metadata-reader-png.h',
+ 'eom-save-as-dialog-helper.h',
+ 'eom-print-image-setup.h',
+ 'eom-print-preview.h',
+ 'eom-print.h',
+ 'eom-plugin-engine.h',
+ 'eom-close-confirmation-dialog.h',
+ 'zoom.h',
+)
+
+enum = gnome.mkenums('eom-enum-types', c_template: 'eom-enum-types.c.template', h_template: 'eom-enum-types.h.template', sources: inst_headers)
+
+enum_headers = files(
+ 'eom-scroll-view.h',
+ 'eom-window.h',
+)
+
+c_sources = files(
+ 'eom-application.c',
+ 'eom-application-activatable.c',
+ 'eom-session.c',
+ 'eom-debug.c',
+ 'eom-util.c',
+ 'eom-pixbuf-util.c',
+ 'eom-window.c',
+ 'eom-window-activatable.c',
+ 'eom-sidebar.c',
+ 'eom-preferences-dialog.c',
+ 'eom-properties-dialog.c',
+ 'eom-error-message-area.c',
+ 'eom-file-chooser.c',
+ 'eom-statusbar.c',
+ 'eom-thumb-nav.c',
+ 'eom-transform.c',
+ 'eom-image.c',
+ 'eom-image-jpeg.c',
+ 'eom-image-save-info.c',
+ 'eom-scroll-view.c',
+ 'eom-thumb-view.c',
+ 'eom-list-store.c',
+ 'eom-metadata-sidebar.c',
+ 'eom-thumbnail.c',
+ 'eom-job-queue.c',
+ 'eom-jobs.c',
+ 'eom-uri-converter.c',
+ 'eom-metadata-reader.c',
+ 'eom-metadata-reader-jpg.c',
+ 'eom-metadata-reader-png.c',
+ 'eom-save-as-dialog-helper.c',
+ 'eom-print-image-setup.c',
+ 'eom-print-preview.c',
+ 'eom-print.c',
+ 'eom-close-confirmation-dialog.c',
+ 'eom-plugin-engine.c',
+ 'eom-clipboard-handler.c',
+ 'zoom.c',
+)
+
+libeom_src = [
+ c_sources,
+ enum,
+ resources,
+ marshal,
+ noinst_headers,
+ inst_headers,
+]
+
+if exif.found()
+ inst_headers += files('eom-exif-util.h')
+ noinst_headers += files('eom-metadata-details.h')
+ libeom_src += files(
+ 'eom-metadata-details.c',
+ 'eom-exif-util.c',
+ )
+endif
+
+if xmp.found()
+ noinst_headers += files('eom-metadata-details.h')
+ libeom_src += files('eom-metadata-details.c')
+endif
+
+cflags = [
+ '-DG_LOG_DOMAIN="EOM"',
+ '-DEOM_DATA_DIR="' + pkgdatadir + '"',
+ '-DEOM_LOCALE_DIR="' + localedir + '"',
+ '-DEOM_PLUGIN_DIR="' + pluginsdir + '"',
+ '-DLIBDIR="' + libdir + '"',
+]
+
+include_dirs = [top_inc, toolbareditor_inc]
+
+if jpeg.found()
+ include_dirs += [jpegutils_inc]
+endif
+
+libeom = static_library(
+ 'eom',
+ libeom_src,
+ c_args: cflags,
+ dependencies: all_deps,
+ include_directories: include_dirs,
+)
+
+src_inc = include_directories('.')
+
+install_headers(inst_headers, install_dir: join_paths(includedir, 'eom-' + eom_api_version, 'eom'))
+
+eom_links = [libeom, toolbareditor]
+
+if jpeg.found()
+ eom_links += [jpegutils]
+endif
+
+bin = executable(
+ 'eom', ['main.c', resources],
+ install: true,
+ c_args: cflags,
+ dependencies: all_deps,
+ link_with: eom_links,
+ include_directories: include_dirs,
+)
+
+if gobject_introspection.found()
+ gir = gnome.generate_gir(
+ bin,
+ includes: ['Gtk-3.0'],
+ sources: [inst_headers, c_sources, enum, resources, marshal],
+ include_directories: include_dirs,
+ install: true,
+ namespace: 'Eom',
+ nsversion: '1.0',
+ )
+endif