diff options
Diffstat (limited to 'src')
37 files changed, 764 insertions, 584 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 009b45b..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; @@ -379,9 +378,7 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data) set_preview_pixbuf (EOM_FILE_CHOOSER (file_chooser), pixbuf, g_file_info_get_size (file_info)); - if (pixbuf != NULL) { - g_object_unref (pixbuf); - } + g_object_unref (pixbuf); } } 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 191acd4..f24b528 100644 --- a/src/eom-image.c +++ b/src/eom-image.c @@ -61,9 +61,6 @@ #if defined(HAVE_LCMS) && defined(GDK_WINDOWING_X11) #include <lcms2.h> -#ifndef EXIF_TAG_GAMMA -#define EXIF_TAG_GAMMA 0xa500 -#endif #endif #ifdef HAVE_RSVG @@ -84,8 +81,6 @@ enum { static guint signals[SIGNAL_LAST] = { 0 }; -static GList *supported_mime_types = NULL; - #define EOM_IMAGE_READ_BUFFER_SIZE 65535 static void @@ -705,7 +700,6 @@ eom_image_set_icc_data (EomImage *img, EomMetadataReader *md_reader) priv->profile = eom_metadata_reader_get_icc_profile (md_reader); - } #endif @@ -902,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); @@ -961,7 +954,7 @@ eom_image_real_load (EomImage *img, } if (!strcmp (mime_type, "image/svg+xml") -#if LIBRSVG_CHECK_FEATURE(SVGZ) +#if defined (LIBRSVG_HAVE_SVGZ) && LIBRSVG_HAVE_SVGZ || !strcmp (mime_type, "image/svg+xml-compressed") #endif ) { @@ -985,8 +978,7 @@ eom_image_real_load (EomImage *img, loader = gdk_pixbuf_loader_new (); } - g_signal_connect_object (G_OBJECT (loader), - "size-prepared", + g_signal_connect_object (loader, "size-prepared", G_CALLBACK (eom_image_size_prepared), img, 0); @@ -1462,8 +1454,7 @@ transfer_progress_cb (goffset cur_bytes, EomImage *image = EOM_IMAGE (user_data); if (cur_bytes > 0) { - g_signal_emit (G_OBJECT(image), - signals[SIGNAL_SAVE_PROGRESS], + g_signal_emit (image, signals[SIGNAL_SAVE_PROGRESS], 0, (gfloat) cur_bytes / (gfloat) total_bytes); } @@ -1885,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 @@ -1955,7 +1945,7 @@ eom_image_get_caption (EomImage *img) /* Guaranteed to be correct utf8 here */ validated = TRUE; } - } else if (!broken_filenames) { + } else { /* name was valid, no need to re-validate */ validated = TRUE; } @@ -2077,7 +2067,6 @@ eom_image_get_xmp_info (EomImage *img) return data; } - /** * eom_image_get_file: * @img: a #EomImage @@ -2115,7 +2104,7 @@ eom_image_modified (EomImage *img) { g_return_if_fail (EOM_IS_IMAGE (img)); - g_signal_emit (G_OBJECT (img), signals[SIGNAL_CHANGED], 0); + g_signal_emit (img, signals[SIGNAL_CHANGED], 0); } gchar* @@ -2217,11 +2206,12 @@ compare_quarks (gconstpointer a, gconstpointer b) GList * eom_image_get_supported_mime_types (void) { + static GList *supported_mime_types = NULL; GSList *format_list, *it; gchar **mime_types; int i; - if (!supported_mime_types) { + if (supported_mime_types == NULL) { format_list = gdk_pixbuf_get_formats (); for (it = format_list; it != NULL; it = it->next) { @@ -2249,18 +2239,16 @@ eom_image_get_supported_mime_types (void) gboolean eom_image_is_supported_mime_type (const char *mime_type) { - GList *supported_mime_types, *result; + GList *result; GQuark quark; if (mime_type == NULL) { return FALSE; } - supported_mime_types = eom_image_get_supported_mime_types (); - quark = g_quark_from_string (mime_type); - result = g_list_find_custom (supported_mime_types, + result = g_list_find_custom (eom_image_get_supported_mime_types (), GINT_TO_POINTER (quark), (GCompareFunc) compare_quarks); @@ -2446,4 +2434,3 @@ eom_image_is_jpeg (EomImage *img) return ((img->priv->file_type != NULL) && (g_ascii_strcasecmp (img->priv->file_type, EOM_FILE_FORMAT_JPEG) == 0)); } - diff --git a/src/eom-jobs.c b/src/eom-jobs.c index 6baed21..7104268 100644 --- a/src/eom-jobs.c +++ b/src/eom-jobs.c @@ -33,9 +33,6 @@ #include <gdk-pixbuf/gdk-pixbuf.h> -#define EOM_JOB_GET_PRIVATE(object) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((object), EOM_TYPE_JOB, EomJobPrivate)) - G_DEFINE_TYPE (EomJob, eom_job, G_TYPE_OBJECT); G_DEFINE_TYPE (EomJobThumbnail, eom_job_thumbnail, EOM_TYPE_JOB); G_DEFINE_TYPE (EomJobLoad, eom_job_load, EOM_TYPE_JOB); @@ -354,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. * @@ -361,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); } @@ -441,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); @@ -654,8 +653,7 @@ eom_job_save_run (EomJob *ejob) } } - handler_id = g_signal_connect (G_OBJECT (image), - "save-progress", + handler_id = g_signal_connect (image, "save-progress", G_CALLBACK (save_progress_handler), job); @@ -669,7 +667,7 @@ eom_job_save_run (EomJob *ejob) g_object_unref (save_info); if (handler_id != 0) - g_signal_handler_disconnect (G_OBJECT (image), handler_id); + g_signal_handler_disconnect (image, handler_id); eom_image_data_unref (image); @@ -785,8 +783,7 @@ eom_job_save_as_run (EomJob *ejob) g_assert (ejob->error == NULL); - handler_id = g_signal_connect (G_OBJECT (image), - "save-progress", + handler_id = g_signal_connect (image, "save-progress", G_CALLBACK (save_progress_handler), job); @@ -832,7 +829,7 @@ eom_job_save_as_run (EomJob *ejob) g_object_unref (dest_info); if (handler_id != 0) - g_signal_handler_disconnect (G_OBJECT (image), handler_id); + g_signal_handler_disconnect (image, handler_id); eom_image_data_unref (image); 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 71ac565..3d1a9c6 100644 --- a/src/eom-list-store.c +++ b/src/eom-list-store.c @@ -29,15 +29,13 @@ #include <string.h> -#define EOM_LIST_STORE_GET_PRIVATE(object) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((object), EOM_TYPE_LIST_STORE, EomListStorePrivate)) - struct _EomListStorePrivate { GList *monitors; /* Monitors for the directories */ 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); @@ -410,8 +408,6 @@ file_monitor_changed_cb (GFileMonitor *monitor, break; case G_FILE_MONITOR_EVENT_DELETED: if (is_file_in_list_store_file (store, file, &iter)) { - EomImage *image; - gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, EOM_LIST_STORE_EOM_IMAGE, &image, -1); @@ -534,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. @@ -545,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; @@ -629,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); @@ -826,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 b49135a..b21f3c1 100644 --- a/src/eom-metadata-reader-jpg.c +++ b/src/eom-metadata-reader-jpg.c @@ -52,9 +52,7 @@ typedef enum { EJA_OTHER } EomJpegApp1Type; - #define EOM_JPEG_MARKER_START 0xFF -#define EOM_JPEG_MARKER_SOI 0xD8 #define EOM_JPEG_MARKER_APP1 0xE1 #define EOM_JPEG_MARKER_APP2 0xE2 #define EOM_JPEG_MARKER_APP14 0xED @@ -90,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) { @@ -156,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) { @@ -468,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 cd796f0..d7b3e9b 100644 --- a/src/eom-metadata-reader.c +++ b/src/eom-metadata-reader.c @@ -23,6 +23,8 @@ #include <config.h> #endif +#include <gdk/gdk.h> + #include "eom-metadata-reader.h" #include "eom-metadata-reader-jpg.h" #include "eom-metadata-reader-png.h" @@ -58,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-preferences-dialog.c b/src/eom-preferences-dialog.c index 0d97502..fb2aae5 100644 --- a/src/eom-preferences-dialog.c +++ b/src/eom-preferences-dialog.c @@ -38,7 +38,6 @@ #include <gio/gio.h> #include <libpeas-gtk/peas-gtk-plugin-manager.h> -#define GSETTINGS_OBJECT_KEY "GSETTINGS_KEY" #define GSETTINGS_OBJECT_VALUE "GSETTINGS_VALUE" struct _EomPreferencesDialogPrivate { @@ -214,8 +213,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) priv->view_settings = g_settings_new (EOM_CONF_VIEW); priv->fullscreen_settings = g_settings_new (EOM_CONF_FULLSCREEN); - g_signal_connect (G_OBJECT (pref_dlg), - "response", + g_signal_connect (pref_dlg, "response", G_CALLBACK (eom_preferences_response_cb), pref_dlg); @@ -247,8 +245,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_COLOR)); - g_signal_connect (G_OBJECT (priv->color_radio), - "toggled", + g_signal_connect (priv->color_radio, "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); @@ -256,8 +253,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_CHECKED)); - g_signal_connect (G_OBJECT (priv->checkpattern_radio), - "toggled", + g_signal_connect (priv->checkpattern_radio, "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); @@ -265,8 +261,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_BACKGROUND)); - g_signal_connect (G_OBJECT (priv->background_radio), - "toggled", + g_signal_connect (priv->background_radio, "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); @@ -308,8 +303,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) EOM_CONF_FULLSCREEN_RANDOM, priv->random_check, "active", G_SETTINGS_BIND_DEFAULT); - g_signal_connect (priv->fullscreen_settings, - "changed::" EOM_CONF_FULLSCREEN_RANDOM, + g_signal_connect (priv->fullscreen_settings, "changed::" EOM_CONF_FULLSCREEN_RANDOM, G_CALLBACK (random_change_cb), priv->loop_check); random_change_cb (priv->fullscreen_settings, @@ -325,8 +319,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) /* Add tab scrolling support for GTK3 */ gtk_widget_add_events (priv->notebook, GDK_SCROLL_MASK); - g_signal_connect (priv->notebook, - "scroll-event", + g_signal_connect (priv->notebook, "scroll-event", G_CALLBACK (eom_notebook_scroll_event_cb), NULL); } diff --git a/src/eom-print-image-setup.c b/src/eom-print-image-setup.c index 588e72c..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 @@ -791,24 +790,41 @@ connect_signals (EomPrintImageSetup *setup) priv = setup->priv; - g_signal_connect (G_OBJECT (priv->left), "value-changed", - G_CALLBACK (on_left_value_changed), setup); - g_signal_connect (G_OBJECT (priv->right), "value-changed", - G_CALLBACK (on_right_value_changed), setup); - g_signal_connect (G_OBJECT (priv->top), "value-changed", - G_CALLBACK (on_top_value_changed), setup); - g_signal_connect (G_OBJECT (priv->bottom), "value-changed", - G_CALLBACK (on_bottom_value_changed), setup); - g_signal_connect (G_OBJECT (priv->width), "value-changed", - G_CALLBACK (on_width_value_changed), setup); - g_signal_connect (G_OBJECT (priv->height), "value-changed", - G_CALLBACK (on_height_value_changed), setup); - g_signal_connect (G_OBJECT (priv->scaling), "value-changed", - G_CALLBACK (on_scale_changed), setup); - g_signal_connect (G_OBJECT (priv->scaling), "format-value", - G_CALLBACK (on_scale_format_value), NULL); - g_signal_connect (G_OBJECT (priv->preview), "image-moved", - G_CALLBACK (on_preview_image_moved), setup); + g_signal_connect (priv->left, "value-changed", + G_CALLBACK (on_left_value_changed), + setup); + + g_signal_connect (priv->right, "value-changed", + G_CALLBACK (on_right_value_changed), + setup); + + g_signal_connect (priv->top, "value-changed", + G_CALLBACK (on_top_value_changed), + setup); + + g_signal_connect (priv->bottom, "value-changed", + G_CALLBACK (on_bottom_value_changed), + setup); + + g_signal_connect (priv->width, "value-changed", + G_CALLBACK (on_width_value_changed), + setup); + + g_signal_connect (priv->height, "value-changed", + G_CALLBACK (on_height_value_changed), + setup); + + g_signal_connect (priv->scaling, "value-changed", + G_CALLBACK (on_scale_changed), + setup); + + g_signal_connect (priv->scaling, "format-value", + G_CALLBACK (on_scale_format_value), + NULL); + + g_signal_connect (priv->preview, "image-moved", + G_CALLBACK (on_preview_image_moved), + setup); } static void @@ -887,8 +903,9 @@ eom_print_image_setup_init (EomPrintImageSetup *setup) 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combobox); priv->center = combobox; - g_signal_connect (G_OBJECT (combobox), "changed", - G_CALLBACK (on_center_changed), setup); + g_signal_connect (combobox, "changed", + G_CALLBACK (on_center_changed), + setup); grid = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (grid), 6); @@ -939,8 +956,9 @@ eom_print_image_setup_init (EomPrintImageSetup *setup) 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combobox); priv->unit = combobox; - g_signal_connect (G_OBJECT (combobox), "changed", - G_CALLBACK (on_unit_changed), setup); + g_signal_connect (combobox, "changed", + G_CALLBACK (on_unit_changed), + setup); priv->preview = eom_print_preview_new (); @@ -954,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-print-preview.c b/src/eom-print-preview.c index 47ff4a7..f0b85bf 100644 --- a/src/eom-print-preview.c +++ b/src/eom-print-preview.c @@ -521,24 +521,29 @@ eom_print_preview_new (void) /* update_relative_sizes (preview); */ - g_signal_connect (G_OBJECT (area), - "draw", G_CALLBACK (draw_cb), - preview); + g_signal_connect (area, "draw", + G_CALLBACK (draw_cb), + preview); - g_signal_connect (G_OBJECT (area), "motion-notify-event", - G_CALLBACK (motion_notify_event_cb), preview); + g_signal_connect (area, "motion-notify-event", + G_CALLBACK (motion_notify_event_cb), + preview); - g_signal_connect (G_OBJECT (area), "button-press-event", - G_CALLBACK (button_press_event_cb), preview); + g_signal_connect (area, "button-press-event", + G_CALLBACK (button_press_event_cb), + preview); - g_signal_connect (G_OBJECT (area), "button-release-event", - G_CALLBACK (button_release_event_cb), preview); + g_signal_connect (area, "button-release-event", + G_CALLBACK (button_release_event_cb), + preview); - g_signal_connect (G_OBJECT (area), "key-press-event", - G_CALLBACK (key_press_event_cb), preview); + g_signal_connect (area, "key-press-event", + G_CALLBACK (key_press_event_cb), + preview); g_signal_connect (area, "size-allocate", - G_CALLBACK (size_allocate_cb), preview); + G_CALLBACK (size_allocate_cb), + preview); return GTK_WIDGET (preview); } @@ -796,9 +801,7 @@ key_press_event_cb (GtkWidget *widget, NULL); stop_emission = TRUE; - g_signal_emit (G_OBJECT (user_data), - preview_signals - [SIGNAL_IMAGE_MOVED], 0); + g_signal_emit (user_data, preview_signals[SIGNAL_IMAGE_MOVED], 0); } return stop_emission; @@ -845,9 +848,7 @@ motion_notify_event_cb (GtkWidget *widget, priv->cursorx = event->x; priv->cursory = event->y; - g_signal_emit (G_OBJECT (user_data), - preview_signals - [SIGNAL_IMAGE_MOVED], 0); + g_signal_emit (user_data, preview_signals[SIGNAL_IMAGE_MOVED], 0); } else { if (press_inside_image_area (EOM_PRINT_PREVIEW (user_data), event->x, event->y)) { GdkCursor *cursor; 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.c b/src/eom-save-as-dialog-helper.c index 8b61c75..24f472f 100644 --- a/src/eom-save-as-dialog-helper.c +++ b/src/eom-save-as-dialog-helper.c @@ -206,8 +206,10 @@ eom_save_as_dialog_new (GtkWindow *main, GList *images, GFile *base_file) SaveAsData *data; GtkWidget *label; - xml = gtk_builder_new_from_resource ("/org/gnome/eog/ui/eom-multiple-save-as-dialog.ui"); + xml = gtk_builder_new_from_resource ("/org/mate/eom/ui/eom-multiple-save-as-dialog.ui"); +#ifdef ENABLE_NLS gtk_builder_set_translation_domain (xml, GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ dlg = GTK_WIDGET (g_object_ref (gtk_builder_get_object (xml, "eom_multiple_save_as_dialog"))); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (main)); @@ -236,17 +238,21 @@ eom_save_as_dialog_new (GtkWindow *main, GList *images, GFile *base_file) data->image = g_object_ref (EOM_IMAGE (g_list_nth_data (images, data->nth_image))); g_object_set_data_full (G_OBJECT (dlg), "data", data, destroy_data_cb); - g_signal_connect (G_OBJECT (data->format_combobox), "changed", - (GCallback) on_format_combobox_changed, dlg); + g_signal_connect (data->format_combobox, "changed", + G_CALLBACK (on_format_combobox_changed), + dlg); - g_signal_connect (G_OBJECT (data->token_entry), "changed", - (GCallback) on_token_entry_changed, dlg); + g_signal_connect (data->token_entry, "changed", + G_CALLBACK (on_token_entry_changed), + dlg); - g_signal_connect (G_OBJECT (data->replace_spaces_check), "toggled", - (GCallback) on_replace_spaces_check_clicked, dlg); + g_signal_connect (data->replace_spaces_check, "toggled", + G_CALLBACK (on_replace_spaces_check_clicked), + dlg); - g_signal_connect (G_OBJECT (data->counter_spin), "changed", - (GCallback) on_counter_spin_changed, dlg); + g_signal_connect (data->counter_spin, "changed", + G_CALLBACK (on_counter_spin_changed), + dlg); label = GTK_WIDGET (gtk_builder_get_object (xml, "preview_label_from")); gtk_label_set_text (GTK_LABEL (label), eom_image_get_caption (data->image)); 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 aa06906..ee57c77 100644 --- a/src/eom-scroll-view.c +++ b/src/eom-scroll-view.c @@ -19,10 +19,6 @@ #include <gdk/gdk.h> -/* Maximum size of delayed repaint rectangles */ -#define PAINT_RECT_WIDTH 128 -#define PAINT_RECT_HEIGHT 128 - /* Scroll step increment */ #define SCROLL_STEP_SIZE 32 @@ -32,10 +28,8 @@ #define CHECK_MEDIUM 8 #define CHECK_BLACK "#000000" -#define CHECK_DARK "#555555" #define CHECK_GRAY "#808080" #define CHECK_LIGHT "#cccccc" -#define CHECK_WHITE "#ffffff" /* Default increment for zooming. The current zoom factor is multiplied or * divided by this amount on every zooming step. For consistency, you should @@ -93,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; @@ -194,15 +188,20 @@ free_image_resources (EomScrollView *view) priv = view->priv; - if (priv->image_changed_id > 0) { - g_signal_handler_disconnect (G_OBJECT (priv->image), priv->image_changed_id); +#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) { - g_signal_handler_disconnect (G_OBJECT (priv->image), priv->frame_changed_id); + 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); @@ -297,14 +296,14 @@ update_scrollbar_values (EomScrollView *view) priv = view->priv; - if (!gtk_widget_get_visible (GTK_WIDGET (priv->hbar)) - && !gtk_widget_get_visible (GTK_WIDGET (priv->vbar))) + if (!gtk_widget_get_visible (priv->hbar) + && !gtk_widget_get_visible (priv->vbar)) return; compute_scaled_size (view, priv->zoom, &scaled_width, &scaled_height); - gtk_widget_get_allocation (GTK_WIDGET (priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); - if (gtk_widget_get_visible (GTK_WIDGET (priv->hbar))) { + if (gtk_widget_get_visible (priv->hbar)) { /* Set scroll increments */ page_size = MIN (scaled_width, allocation.width); @@ -329,7 +328,7 @@ update_scrollbar_values (EomScrollView *view) 0, 0, NULL, NULL, view); } - if (gtk_widget_get_visible (GTK_WIDGET (priv->vbar))) { + if (gtk_widget_get_visible (priv->vbar)) { page_size = MIN (scaled_height, allocation.height); page_increment = allocation.height / 2; step_increment = SCROLL_STEP_SIZE; @@ -447,10 +446,10 @@ check_scrollbar_visibility (EomScrollView *view, GtkAllocation *alloc) hbar_visible = TRUE; } - if (hbar_visible != gtk_widget_get_visible (GTK_WIDGET (priv->hbar))) + if (hbar_visible != gtk_widget_get_visible (priv->hbar)) g_object_set (G_OBJECT (priv->hbar), "visible", hbar_visible, NULL); - if (vbar_visible != gtk_widget_get_visible (GTK_WIDGET (priv->vbar))) + if (vbar_visible != gtk_widget_get_visible (priv->vbar)) g_object_set (G_OBJECT (priv->vbar), "visible", vbar_visible, NULL); } @@ -564,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) @@ -600,14 +598,14 @@ scroll_to (EomScrollView *view, int x, int y, gboolean change_adjustments) if (!gtk_widget_is_drawable (priv->display)) goto out; - gtk_widget_get_allocation (GTK_WIDGET (priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); if (abs (xofs) >= allocation.width || abs (yofs) >= allocation.height) { - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); goto out; } - window = gtk_widget_get_window (GTK_WIDGET (priv->display)); + window = gtk_widget_get_window (priv->display); gdk_window_scroll (window, -xofs, -yofs); @@ -646,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) @@ -659,8 +656,9 @@ adjustment_changed_cb (GtkAdjustment *adj, gpointer data) scroll_to (view, gtk_adjustment_get_value (priv->hadj), gtk_adjustment_get_value (priv->vadj), FALSE); -} + gtk_widget_queue_resize (GTK_WIDGET (view)); +} /* Drags the image to the specified position */ static void @@ -732,7 +730,7 @@ set_zoom (EomScrollView *view, double zoom, priv->zoom_mode = ZOOM_MODE_FREE; - gtk_widget_get_allocation (GTK_WIDGET (priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); /* compute new xofs/yofs values */ if (have_anchor) { @@ -764,9 +762,9 @@ set_zoom (EomScrollView *view, double zoom, update_scrollbar_values (view); /* repaint the whole image */ - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); - g_signal_emit (view, view_signals [SIGNAL_ZOOM_CHANGED], 0, priv->zoom); + g_signal_emit (view, view_signals[SIGNAL_ZOOM_CHANGED], 0, priv->zoom); } /* Zooms the image to fit the available allocation */ @@ -787,7 +785,7 @@ set_zoom_fit (EomScrollView *view) if (priv->pixbuf == NULL) return; - gtk_widget_get_allocation (GTK_WIDGET(priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); new_zoom = zoom_fit_scale (allocation.width, allocation.height, gdk_pixbuf_get_width (priv->pixbuf) / priv->scale, @@ -803,7 +801,7 @@ set_zoom_fit (EomScrollView *view) priv->xofs = 0; priv->yofs = 0; - g_signal_emit (view, view_signals [SIGNAL_ZOOM_CHANGED], 0, priv->zoom); + g_signal_emit (view, view_signals[SIGNAL_ZOOM_CHANGED], 0, priv->zoom); } /*=================================== @@ -832,7 +830,7 @@ display_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer data) xofs = yofs = 0; zoom = 1.0; - gtk_widget_get_allocation (GTK_WIDGET (priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); /* EomScrollView doesn't handle/have any Alt+Key combos */ if (event->state & GDK_MOD1_MASK) { @@ -927,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) @@ -939,7 +936,7 @@ eom_scroll_view_button_press_event (GtkWidget *widget, GdkEventButton *event, gp priv = view->priv; if (!gtk_widget_has_focus (priv->display)) - gtk_widget_grab_focus (GTK_WIDGET (priv->display)); + gtk_widget_grab_focus (priv->display); if (priv->dragging) return FALSE; @@ -1036,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; @@ -1087,7 +1084,7 @@ eom_scroll_view_motion_event (GtkWidget *widget, GdkEventMotion *event, gpointer return FALSE; if (event->is_hint) - gdk_window_get_device_position (gtk_widget_get_window (GTK_WIDGET (priv->display)), event->device, &x, &y, &mods); + gdk_window_get_device_position (gtk_widget_get_window (priv->display), event->device, &x, &y, &mods); else { x = event->x; y = event->y; @@ -1110,7 +1107,7 @@ display_map_event (GtkWidget *widget, GdkEvent *event, gpointer data) set_zoom_fit (view); check_scrollbar_visibility (view, NULL); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } static void @@ -1142,7 +1139,7 @@ display_size_change (GtkWidget *widget, GdkEventConfigure *event, gpointer data) set_zoom_fit (view); check_scrollbar_visibility (view, &alloc); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } else { int scaled_width, scaled_height; int x_offset = 0; @@ -1162,22 +1159,21 @@ 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, - gpointer data) + GdkEventFocus *event, + gpointer data) { - g_signal_stop_emission_by_name (G_OBJECT (widget), "focus_in_event"); + g_signal_stop_emission_by_name (widget, "focus_in_event"); return FALSE; } static gboolean eom_scroll_view_focus_out_event (GtkWidget *widget, - GdkEventFocus *event, - gpointer data) + GdkEventFocus *event, + gpointer data) { - g_signal_stop_emission_by_name (G_OBJECT (widget), "focus_out_event"); + g_signal_stop_emission_by_name (widget, "focus_out_event"); return FALSE; } @@ -1186,7 +1182,7 @@ static gboolean _hq_redraw_cb (gpointer user_data) EomScrollViewPrivate *priv = EOM_SCROLL_VIEW (user_data)->priv; priv->force_unfiltered = FALSE; - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); priv->hq_redraw_timeout_source = NULL; return G_SOURCE_REMOVE; @@ -1242,7 +1238,7 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data) compute_scaled_size (view, priv->zoom, &scaled_width, &scaled_height); - gtk_widget_get_allocation (GTK_WIDGET (priv->display), &allocation); + gtk_widget_get_allocation (priv->display, &allocation); /* Compute image offsets with respect to the window */ @@ -1303,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); @@ -1311,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. */ @@ -1374,7 +1371,6 @@ display_draw (GtkWidget *widget, cairo_t *cr, gpointer data) return TRUE; } - /*================================== image loading callbacks @@ -1415,7 +1411,7 @@ image_changed_cb (EomImage *img, gpointer data) set_zoom_fit (EOM_SCROLL_VIEW (data)); check_scrollbar_visibility (EOM_SCROLL_VIEW (data), NULL); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } /*=================================== @@ -1449,7 +1445,7 @@ eom_scroll_view_set_zoom_upscale (EomScrollView *view, gboolean upscale) if (priv->zoom_mode == ZOOM_MODE_FIT) { set_zoom_fit (view); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } } } @@ -1468,7 +1464,7 @@ eom_scroll_view_set_antialiasing_in (EomScrollView *view, gboolean state) if (priv->interp_type_in != new_interp_type) { priv->interp_type_in = new_interp_type; - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); g_object_notify (G_OBJECT (view), "antialiasing-in"); } } @@ -1487,7 +1483,7 @@ eom_scroll_view_set_antialiasing_out (EomScrollView *view, gboolean state) if (priv->interp_type_out != new_interp_type) { priv->interp_type_out = new_interp_type; - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); g_object_notify (G_OBJECT (view), "antialiasing-out"); } @@ -1504,7 +1500,7 @@ _transp_background_changed (EomScrollView *view) /* Will be recreated if needed during redraw */ priv->background_surface = NULL; } - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } } @@ -1631,7 +1627,7 @@ eom_scroll_view_zoom_fit (EomScrollView *view) set_zoom_fit (view); check_scrollbar_visibility (view, NULL); - gtk_widget_queue_draw (GTK_WIDGET (view->priv->display)); + gtk_widget_queue_draw (view->priv->display); } void @@ -1682,7 +1678,7 @@ display_next_frame_cb (EomImage *image, gint delay, gpointer data) priv = view->priv; update_pixbuf (view, eom_image_get_pixbuf (image)); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } void @@ -1711,16 +1707,18 @@ eom_scroll_view_set_image (EomScrollView *view, EomImage *image) update_pixbuf (view, eom_image_get_pixbuf (image)); set_zoom_fit (view); check_scrollbar_visibility (view, NULL); - gtk_widget_queue_draw (GTK_WIDGET (priv->display)); + gtk_widget_queue_draw (priv->display); } priv->image_changed_id = g_signal_connect (image, "changed", - (GCallback) image_changed_cb, view); + G_CALLBACK (image_changed_cb), + view); if (eom_image_is_animation (image) == TRUE ) { eom_image_start_animation (image); priv->frame_changed_id = g_signal_connect (image, "next-frame", - (GCallback) display_next_frame_cb, view); + G_CALLBACK (display_next_frame_cb), + view); } } @@ -1755,8 +1753,8 @@ eom_scroll_view_get_image (EomScrollView *view) gboolean eom_scroll_view_scrollbars_visible (EomScrollView *view) { - if (!gtk_widget_get_visible (GTK_WIDGET (view->priv->hbar)) && - !gtk_widget_get_visible (GTK_WIDGET (view->priv->vbar))) + if (!gtk_widget_get_visible (view->priv->hbar) && + !gtk_widget_get_visible (view->priv->vbar)) return FALSE; return TRUE; @@ -1831,22 +1829,22 @@ eom_scroll_view_init (EomScrollView *view) priv->hadj = GTK_ADJUSTMENT (gtk_adjustment_new (0, 100, 0, 10, 10, 100)); g_signal_connect (priv->hadj, "value_changed", - G_CALLBACK (adjustment_changed_cb), - view); + G_CALLBACK (adjustment_changed_cb), + view); priv->hbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, priv->hadj); priv->vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0, 100, 0, 10, 10, 100)); g_signal_connect (priv->vadj, "value_changed", - G_CALLBACK (adjustment_changed_cb), - view); + G_CALLBACK (adjustment_changed_cb), + view); priv->vbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, priv->vadj); priv->display = g_object_new (GTK_TYPE_DRAWING_AREA, "can-focus", TRUE, NULL); - priv->scale = gtk_widget_get_scale_factor (GTK_WIDGET (priv->display)); + priv->scale = gtk_widget_get_scale_factor (priv->display); - gtk_widget_add_events (GTK_WIDGET (priv->display), + gtk_widget_add_events (priv->display, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -1854,37 +1852,59 @@ eom_scroll_view_init (EomScrollView *view) | GDK_POINTER_MOTION_HINT_MASK | GDK_SCROLL_MASK | GDK_KEY_PRESS_MASK); - g_signal_connect (G_OBJECT (priv->display), "configure_event", - G_CALLBACK (display_size_change), view); - g_signal_connect (G_OBJECT (priv->display), "draw", G_CALLBACK (display_draw), view); - g_signal_connect (G_OBJECT (priv->display), "map_event", - G_CALLBACK (display_map_event), view); - g_signal_connect (G_OBJECT (priv->display), "button_press_event", - G_CALLBACK (eom_scroll_view_button_press_event), - view); - g_signal_connect (G_OBJECT (priv->display), "motion_notify_event", - G_CALLBACK (eom_scroll_view_motion_event), view); - g_signal_connect (G_OBJECT (priv->display), "button_release_event", - G_CALLBACK (eom_scroll_view_button_release_event), - view); - g_signal_connect (G_OBJECT (priv->display), "scroll_event", - G_CALLBACK (eom_scroll_view_scroll_event), view); - g_signal_connect (G_OBJECT (priv->display), "focus_in_event", - G_CALLBACK (eom_scroll_view_focus_in_event), NULL); - g_signal_connect (G_OBJECT (priv->display), "focus_out_event", - G_CALLBACK (eom_scroll_view_focus_out_event), NULL); - - g_signal_connect (G_OBJECT (view), "key_press_event", - G_CALLBACK (display_key_press_event), view); + + g_signal_connect (priv->display, "configure_event", + G_CALLBACK (display_size_change), + view); + + g_signal_connect (priv->display, "draw", + G_CALLBACK (display_draw), + view); + + g_signal_connect (priv->display, "map_event", + G_CALLBACK (display_map_event), + view); + + g_signal_connect (priv->display, "button_press_event", + G_CALLBACK (eom_scroll_view_button_press_event), + view); + + g_signal_connect (priv->display, "motion_notify_event", + G_CALLBACK (eom_scroll_view_motion_event), + view); + + g_signal_connect (priv->display, "button_release_event", + G_CALLBACK (eom_scroll_view_button_release_event), + view); + + g_signal_connect (priv->display, "scroll_event", + G_CALLBACK (eom_scroll_view_scroll_event), + view); + + g_signal_connect (priv->display, "focus_in_event", + G_CALLBACK (eom_scroll_view_focus_in_event), + NULL); + + g_signal_connect (priv->display, "focus_out_event", + G_CALLBACK (eom_scroll_view_focus_out_event), + NULL); + + g_signal_connect (view, "key_press_event", + G_CALLBACK (display_key_press_event), + view); gtk_drag_source_set (priv->display, GDK_BUTTON1_MASK, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK); - g_signal_connect (G_OBJECT (priv->display), "drag-data-get", - G_CALLBACK (view_on_drag_data_get_cb), view); - g_signal_connect (G_OBJECT (priv->display), "drag-begin", - G_CALLBACK (view_on_drag_begin_cb), view); + + g_signal_connect (priv->display, "drag-data-get", + G_CALLBACK (view_on_drag_data_get_cb), + view); + + g_signal_connect (priv->display, "drag-begin", + G_CALLBACK (view_on_drag_begin_cb), + view); gtk_grid_attach (GTK_GRID (view), priv->display, 0, 0, 1, 1); @@ -2055,7 +2075,6 @@ eom_scroll_view_set_property (GObject *object, guint property_id, } } - static void eom_scroll_view_class_init (EomScrollViewClass *klass) { @@ -2228,7 +2247,6 @@ eom_scroll_view_new (void) "column-homogeneous", FALSE, NULL); - return widget; } @@ -2263,8 +2281,9 @@ eom_scroll_view_set_popup (EomScrollView *view, GTK_WIDGET (view), NULL); - g_signal_connect (G_OBJECT (view), "button_press_event", - G_CALLBACK (view_on_button_press_event_cb), NULL); + g_signal_connect (view, "button_press_event", + G_CALLBACK (view_on_button_press_event_cb), + NULL); } static gboolean 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.c b/src/eom-sidebar.c index faf8321..39e7d0a 100644 --- a/src/eom-sidebar.c +++ b/src/eom-sidebar.c @@ -382,12 +382,12 @@ eom_sidebar_init (EomSidebar *eom_sidebar) GTK_RELIEF_NONE); g_signal_connect (eom_sidebar->priv->select_button, "button_press_event", - G_CALLBACK (eom_sidebar_select_button_press_cb), - eom_sidebar); + G_CALLBACK (eom_sidebar_select_button_press_cb), + eom_sidebar); g_signal_connect (eom_sidebar->priv->select_button, "key_press_event", - G_CALLBACK (eom_sidebar_select_button_key_press_cb), - eom_sidebar); + G_CALLBACK (eom_sidebar_select_button_key_press_cb), + eom_sidebar); select_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); @@ -416,8 +416,8 @@ eom_sidebar_init (EomSidebar *eom_sidebar) gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); g_signal_connect (close_button, "clicked", - G_CALLBACK (eom_sidebar_close_clicked_cb), - eom_sidebar); + G_CALLBACK (eom_sidebar_close_clicked_cb), + eom_sidebar); image = gtk_image_new_from_icon_name ("window-close", GTK_ICON_SIZE_MENU); @@ -430,8 +430,8 @@ eom_sidebar_init (EomSidebar *eom_sidebar) eom_sidebar->priv->menu = gtk_menu_new (); g_signal_connect (eom_sidebar->priv->menu, "deactivate", - G_CALLBACK (eom_sidebar_menu_deactivate_cb), - eom_sidebar->priv->select_button); + G_CALLBACK (eom_sidebar_menu_deactivate_cb), + eom_sidebar->priv->select_button); gtk_menu_attach_to_widget (GTK_MENU (eom_sidebar->priv->menu), GTK_WIDGET (eom_sidebar), @@ -481,8 +481,8 @@ eom_sidebar_add_page (EomSidebar *eom_sidebar, menu_item = gtk_menu_item_new_with_label (title); g_signal_connect (menu_item, "activate", - G_CALLBACK (eom_sidebar_menu_item_activate_cb), - eom_sidebar); + G_CALLBACK (eom_sidebar_menu_item_activate_cb), + eom_sidebar); gtk_widget_show (menu_item); @@ -521,8 +521,7 @@ eom_sidebar_add_page (EomSidebar *eom_sidebar, eom_sidebar_update_arrow_visibility (eom_sidebar); - g_signal_emit (G_OBJECT (eom_sidebar), - signals[SIGNAL_PAGE_ADDED], 0, main_widget); + g_signal_emit (eom_sidebar, signals[SIGNAL_PAGE_ADDED], 0, main_widget); } void @@ -567,8 +566,7 @@ eom_sidebar_remove_page (EomSidebar *eom_sidebar, GtkWidget *main_widget) eom_sidebar_update_arrow_visibility (eom_sidebar); - g_signal_emit (G_OBJECT (eom_sidebar), - signals[SIGNAL_PAGE_REMOVED], 0, main_widget); + g_signal_emit (eom_sidebar, signals[SIGNAL_PAGE_REMOVED], 0, main_widget); } } 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-nav.c b/src/eom-thumb-nav.c index 54da189..515a787 100644 --- a/src/eom-thumb-nav.c +++ b/src/eom-thumb-nav.c @@ -34,7 +34,6 @@ #include <string.h> #define EOM_THUMB_NAV_SCROLL_INC 20 -#define EOM_THUMB_NAV_SCROLL_MOVE 20 #define EOM_THUMB_NAV_SCROLL_TIMEOUT 20 enum diff --git a/src/eom-thumb-view.c b/src/eom-thumb-view.c index 05b0416..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; @@ -131,17 +131,17 @@ eom_thumb_view_constructed (GObject *object) g_object_set (thumbview, "has-tooltip", TRUE, NULL); - g_signal_connect (thumbview, - "query-tooltip", - G_CALLBACK (thumbview_on_query_tooltip_cb), - NULL); + g_signal_connect (thumbview, "query-tooltip", + G_CALLBACK (thumbview_on_query_tooltip_cb), + NULL); thumbview->priv->start_thumb = 0; thumbview->priv->end_thumb = 0; thumbview->priv->menu = NULL; - g_signal_connect (G_OBJECT (thumbview), "parent-set", - G_CALLBACK (thumbview_on_parent_set_cb), NULL); + g_signal_connect (thumbview, "parent-set", + G_CALLBACK (thumbview_on_parent_set_cb), + NULL); gtk_icon_view_enable_model_drag_source (GTK_ICON_VIEW (thumbview), 0, NULL, 0, @@ -151,8 +151,9 @@ eom_thumb_view_constructed (GObject *object) GDK_ACTION_ASK); gtk_drag_source_add_uri_targets (GTK_WIDGET (thumbview)); - g_signal_connect (G_OBJECT (thumbview), "drag-data-get", - G_CALLBACK (thumbview_on_drag_data_get_cb), NULL); + g_signal_connect (thumbview, "drag-data-get", + G_CALLBACK (thumbview_on_drag_data_get_cb), + NULL); } static void @@ -166,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); } @@ -380,20 +388,20 @@ thumbview_on_parent_set_cb (GtkWidget *widget, vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw)); /* when scrolling */ - g_signal_connect_data (G_OBJECT (hadjustment), "value-changed", - G_CALLBACK (thumbview_on_visible_range_changed_cb), - thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); - g_signal_connect_data (G_OBJECT (vadjustment), "value-changed", - G_CALLBACK (thumbview_on_visible_range_changed_cb), - thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_data (hadjustment, "value-changed", + G_CALLBACK (thumbview_on_visible_range_changed_cb), + thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_data (vadjustment, "value-changed", + G_CALLBACK (thumbview_on_visible_range_changed_cb), + thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); /* when the adjustment is changed, ie. probably we have new images added. */ - g_signal_connect_data (G_OBJECT (hadjustment), "changed", - G_CALLBACK (thumbview_on_adjustment_changed_cb), - thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); - g_signal_connect_data (G_OBJECT (vadjustment), "changed", - G_CALLBACK (thumbview_on_adjustment_changed_cb), - thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_data (hadjustment, "changed", + G_CALLBACK (thumbview_on_adjustment_changed_cb), + thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_data (vadjustment, "changed", + G_CALLBACK (thumbview_on_adjustment_changed_cb), + thumbview, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); /* when resizing the scrolled window */ g_signal_connect_swapped (G_OBJECT (sw), "size-allocate", @@ -609,9 +617,9 @@ thumbview_on_query_tooltip_cb (GtkWidget *widget, EomJob *job; job = eom_job_load_new (image, data); - g_signal_connect (G_OBJECT (job), "finished", - G_CALLBACK (on_data_loaded_cb), - widget); + g_signal_connect (job, "finished", + G_CALLBACK (on_data_loaded_cb), + widget); eom_job_queue_add_job (job); g_object_unref (image); g_object_unref (job); @@ -730,13 +738,12 @@ eom_thumb_view_set_model (EomThumbView *thumbview, EomListStore *store) } } - priv->image_add_id = g_signal_connect (G_OBJECT (store), "row-inserted", - G_CALLBACK (eom_thumb_view_row_inserted_cb), - thumbview); - priv->image_removed_id = g_signal_connect (G_OBJECT (store), - "row-deleted", - G_CALLBACK (eom_thumb_view_row_deleted_cb), - thumbview); + priv->image_add_id = g_signal_connect (store, "row-inserted", + G_CALLBACK (eom_thumb_view_row_inserted_cb), + thumbview); + priv->image_removed_id = g_signal_connect (store, "row-deleted", + G_CALLBACK (eom_thumb_view_row_deleted_cb), + thumbview); thumbview->priv->n_images = eom_list_store_length (store); @@ -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. @@ -1047,12 +1053,11 @@ eom_thumb_view_set_thumbnail_popup (EomThumbView *thumbview, GTK_WIDGET (thumbview), NULL); - g_signal_connect (G_OBJECT (thumbview), "button_press_event", - G_CALLBACK (thumbview_on_button_press_event_cb), NULL); - + g_signal_connect (thumbview, "button_press_event", + G_CALLBACK (thumbview_on_button_press_event_cb), + 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 d38b52d..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) { @@ -794,18 +786,16 @@ eom_uri_converter_do (EomURIConverter *conv, EomImage *image, repl_str = replace_remove_chars (str, priv->convert_spaces, priv->space_character); - if (repl_str->len > 0) { + if ((repl_str != NULL) && (repl_str->len > 0)) { build_absolute_file (conv, image, repl_str, file, format); } 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 33bbe1a..e914223 100644 --- a/src/eom-util.c +++ b/src/eom-util.c @@ -27,9 +27,6 @@ #endif #include <sys/time.h> -#ifdef HAVE_STRPTIME -#define _XOPEN_SOURCE -#endif /* HAVE_STRPTIME */ #include <time.h> @@ -314,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 fb56d69..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); @@ -860,7 +863,8 @@ image_file_changed_cb (EomImage *img, EomWindow *window) eom_window_set_message_area (window, info_bar); g_signal_connect (info_bar, "response", - G_CALLBACK (file_changed_info_bar_response), window); + G_CALLBACK (file_changed_info_bar_response), + window); } static void @@ -879,13 +883,12 @@ eom_window_display_image (EomWindow *window, EomImage *image) priv = window->priv; if (image != NULL) { - g_signal_connect (image, - "thumbnail_changed", - G_CALLBACK (image_thumb_changed_cb), - window); + g_signal_connect (image, "thumbnail_changed", + G_CALLBACK (image_thumb_changed_cb), + window); g_signal_connect (image, "file-changed", - G_CALLBACK (image_file_changed_cb), - window); + G_CALLBACK (image_file_changed_cb), + window); image_thumb_changed_cb (image, window); } @@ -1030,10 +1033,9 @@ eom_window_update_openwith_menu (EomWindow *window, EomImage *image) g_object_set_data_full (G_OBJECT (action), "app", app, (GDestroyNotify) g_object_unref); - g_signal_connect (action, - "activate", - G_CALLBACK (open_with_launch_application_cb), - image); + g_signal_connect (action, "activate", + G_CALLBACK (open_with_launch_application_cb), + image); G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_action_group_add_action (priv->actions_open_with, action); @@ -1112,12 +1114,12 @@ eom_window_clear_load_job (EomWindow *window) eom_job_queue_remove_job (priv->load_job); g_signal_handlers_disconnect_by_func (priv->load_job, - eom_job_progress_cb, - window); + eom_job_progress_cb, + window); g_signal_handlers_disconnect_by_func (priv->load_job, - eom_job_load_cb, - window); + eom_job_load_cb, + window); eom_image_cancel_load (EOM_JOB_LOAD (priv->load_job)->image); @@ -1308,11 +1310,11 @@ eom_job_load_cb (EomJobLoad *job, gpointer data) if (priv->image != NULL) { g_signal_handlers_disconnect_by_func (priv->image, - image_thumb_changed_cb, - window); + image_thumb_changed_cb, + window); g_signal_handlers_disconnect_by_func (priv->image, - image_file_changed_cb, - window); + image_file_changed_cb, + window); g_object_unref (priv->image); } @@ -1337,10 +1339,9 @@ eom_job_load_cb (EomJobLoad *job, gpointer data) eom_image_get_caption (job->image), EOM_JOB (job)->error); - g_signal_connect (message_area, - "response", - G_CALLBACK (eom_window_error_message_area_response), - window); + g_signal_connect (message_area, "response", + G_CALLBACK (eom_window_error_message_area_response), + window); gtk_window_set_icon (GTK_WINDOW (window), NULL); gtk_window_set_title (GTK_WINDOW (window), @@ -1373,10 +1374,9 @@ eom_job_load_cb (EomJobLoad *job, gpointer data) if (window->priv->status == EOM_WINDOW_STATUS_INIT) { window->priv->status = EOM_WINDOW_STATUS_NORMAL; - g_signal_handlers_disconnect_by_func - (job->image, - G_CALLBACK (eom_window_obtain_desired_size), - window); + g_signal_handlers_disconnect_by_func (job->image, + eom_window_obtain_desired_size, + window); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS; @@ -1402,8 +1402,8 @@ eom_window_clear_transform_job (EomWindow *window) eom_job_queue_remove_job (priv->transform_job); g_signal_handlers_disconnect_by_func (priv->transform_job, - eom_job_transform_cb, - window); + eom_job_transform_cb, + window); g_object_unref (priv->transform_job); priv->transform_job = NULL; } @@ -1455,15 +1455,13 @@ apply_transformation (EomWindow *window, EomTransform *trans) priv->transform_job = eom_job_transform_new (images, trans); - g_signal_connect (priv->transform_job, - "finished", - G_CALLBACK (eom_job_transform_cb), - window); + g_signal_connect (priv->transform_job, "finished", + G_CALLBACK (eom_job_transform_cb), + window); - g_signal_connect (priv->transform_job, - "progress", - G_CALLBACK (eom_job_progress_cb), - window); + g_signal_connect (priv->transform_job, "progress", + G_CALLBACK (eom_job_progress_cb), + window); eom_job_queue_add_job (priv->transform_job); } @@ -1518,23 +1516,20 @@ handle_image_selection_changed_cb (EomThumbView *thumbview, EomWindow *window) } if (priv->status == EOM_WINDOW_STATUS_INIT) { - g_signal_connect (image, - "size-prepared", - G_CALLBACK (eom_window_obtain_desired_size), - window); + g_signal_connect (image, "size-prepared", + G_CALLBACK (eom_window_obtain_desired_size), + window); } priv->load_job = eom_job_load_new (image, EOM_IMAGE_DATA_ALL); - g_signal_connect (priv->load_job, - "finished", - G_CALLBACK (eom_job_load_cb), - window); + g_signal_connect (priv->load_job, "finished", + G_CALLBACK (eom_job_load_cb), + window); - g_signal_connect (priv->load_job, - "progress", - G_CALLBACK (eom_job_progress_cb), - window); + g_signal_connect (priv->load_job, "progress", + G_CALLBACK (eom_job_progress_cb), + window); eom_job_queue_add_job (priv->load_job); @@ -1633,15 +1628,17 @@ eom_window_update_fullscreen_action (EomWindow *window) action = gtk_action_group_get_action (window->priv->actions_image, "ViewFullscreen"); - g_signal_handlers_block_by_func - (action, G_CALLBACK (eom_window_cmd_fullscreen), window); + g_signal_handlers_block_by_func (action, + eom_window_cmd_fullscreen, + window); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), window->priv->mode == EOM_WINDOW_MODE_FULLSCREEN); G_GNUC_END_IGNORE_DEPRECATIONS; - g_signal_handlers_unblock_by_func - (action, G_CALLBACK (eom_window_cmd_fullscreen), window); + g_signal_handlers_unblock_by_func (action, + eom_window_cmd_fullscreen, + window); } static void @@ -1653,15 +1650,17 @@ eom_window_update_slideshow_action (EomWindow *window) action = gtk_action_group_get_action (window->priv->actions_collection, "ViewSlideshow"); - g_signal_handlers_block_by_func - (action, G_CALLBACK (eom_window_cmd_slideshow), window); + g_signal_handlers_block_by_func (action, + eom_window_cmd_slideshow, + window); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), window->priv->mode == EOM_WINDOW_MODE_SLIDESHOW); G_GNUC_END_IGNORE_DEPRECATIONS; - g_signal_handlers_unblock_by_func - (action, G_CALLBACK (eom_window_cmd_slideshow), window); + g_signal_handlers_unblock_by_func (action, + eom_window_cmd_slideshow, + window); } static void @@ -1673,15 +1672,17 @@ eom_window_update_pause_slideshow_action (EomWindow *window) action = gtk_action_group_get_action (window->priv->actions_image, "PauseSlideshow"); - g_signal_handlers_block_by_func - (action, G_CALLBACK (eom_window_cmd_pause_slideshow), window); + g_signal_handlers_block_by_func (action, + eom_window_cmd_pause_slideshow, + window); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), window->priv->mode != EOM_WINDOW_MODE_SLIDESHOW); G_GNUC_END_IGNORE_DEPRECATIONS; - g_signal_handlers_unblock_by_func - (action, G_CALLBACK (eom_window_cmd_pause_slideshow), window); + g_signal_handlers_unblock_by_func (action, + eom_window_cmd_pause_slideshow, + window); } static void @@ -1908,8 +1909,8 @@ eom_window_get_exit_fullscreen_button (EomWindow *window) gtk_button_set_image (GTK_BUTTON (button), gtk_image_new_from_icon_name ("view-restore", GTK_ICON_SIZE_BUTTON)); g_signal_connect (button, "clicked", - G_CALLBACK (exit_fullscreen_button_clicked_cb), - window); + G_CALLBACK (exit_fullscreen_button_clicked_cb), + window); return button; } @@ -1944,13 +1945,12 @@ eom_window_create_fullscreen_popup (EomWindow *window) screen = gtk_widget_get_screen (GTK_WIDGET (window)); g_signal_connect_object (screen, "size-changed", - G_CALLBACK (screen_size_changed_cb), - window, 0); + G_CALLBACK (screen_size_changed_cb), + window, 0); - g_signal_connect (popup, - "enter-notify-event", - G_CALLBACK (fullscreen_leave_notify_cb), - window); + g_signal_connect (popup, "enter-notify-event", + G_CALLBACK (fullscreen_leave_notify_cb), + window); gtk_window_set_screen (GTK_WINDOW (popup), screen); @@ -2096,25 +2096,21 @@ eom_window_run_fullscreen (EomWindow *window, gboolean slideshow) g_assert (GTK_IS_WIDGET (menubar)); gtk_widget_hide (menubar); - g_signal_connect (priv->view, - "motion-notify-event", - G_CALLBACK (fullscreen_motion_notify_cb), - window); + g_signal_connect (priv->view, "motion-notify-event", + G_CALLBACK (fullscreen_motion_notify_cb), + window); - g_signal_connect (priv->view, - "leave-notify-event", - G_CALLBACK (fullscreen_leave_notify_cb), - window); + g_signal_connect (priv->view, "leave-notify-event", + G_CALLBACK (fullscreen_leave_notify_cb), + window); - g_signal_connect (priv->thumbview, - "motion-notify-event", - G_CALLBACK (fullscreen_motion_notify_cb), - window); + g_signal_connect (priv->thumbview, "motion-notify-event", + G_CALLBACK (fullscreen_motion_notify_cb), + window); - g_signal_connect (priv->thumbview, - "leave-notify-event", - G_CALLBACK (fullscreen_leave_notify_cb), - window); + g_signal_connect (priv->thumbview, "leave-notify-event", + G_CALLBACK (fullscreen_leave_notify_cb), + window); fullscreen_set_timeout (window); @@ -2178,20 +2174,20 @@ eom_window_stop_fullscreen (EomWindow *window, gboolean slideshow) } g_signal_handlers_disconnect_by_func (priv->view, - (gpointer) fullscreen_motion_notify_cb, - window); + fullscreen_motion_notify_cb, + window); g_signal_handlers_disconnect_by_func (priv->view, - (gpointer) fullscreen_leave_notify_cb, + fullscreen_leave_notify_cb, window); g_signal_handlers_disconnect_by_func (priv->thumbview, - (gpointer) fullscreen_motion_notify_cb, - window); + fullscreen_motion_notify_cb, + window); g_signal_handlers_disconnect_by_func (priv->thumbview, - (gpointer) fullscreen_leave_notify_cb, - window); + fullscreen_leave_notify_cb, + window); update_ui_visibility (window); @@ -2261,7 +2257,8 @@ eom_window_print (EomWindow *window) _("Error printing file:\n%s"), error->message); g_signal_connect (dialog, "response", - G_CALLBACK (gtk_widget_destroy), NULL); + G_CALLBACK (gtk_widget_destroy), + NULL); gtk_widget_show (dialog); g_error_free (error); } else if (res == GTK_PRINT_OPERATION_RESULT_APPLY) { @@ -2326,8 +2323,8 @@ eom_window_cmd_file_open (GtkAction *action, gpointer user_data) } g_signal_connect (dlg, "response", - G_CALLBACK (file_open_dialog_response_cb), - window); + G_CALLBACK (file_open_dialog_response_cb), + window); gtk_widget_show_all (dlg); } @@ -2338,8 +2335,8 @@ eom_job_close_save_cb (EomJobSave *job, gpointer user_data) EomWindow *window = EOM_WINDOW (user_data); g_signal_handlers_disconnect_by_func (job, - eom_job_close_save_cb, - window); + eom_job_close_save_cb, + window); gtk_widget_destroy (GTK_WIDGET (window)); } @@ -2360,10 +2357,9 @@ close_confirmation_dialog_response_handler (EomCloseConfirmationDialog *dlg, /* save selected images */ selected_images = eom_close_confirmation_dialog_get_selected_images (dlg); if (eom_window_save_images (window, selected_images)) { - g_signal_connect (priv->save_job, - "finished", - G_CALLBACK (eom_job_close_save_cb), - window); + g_signal_connect (priv->save_job, "finished", + G_CALLBACK (eom_job_close_save_cb), + window); eom_job_queue_add_job (priv->save_job); } @@ -2422,10 +2418,9 @@ eom_window_unsaved_images_confirm (EomWindow *window) list); g_list_free (list); - g_signal_connect (dialog, - "response", - G_CALLBACK (close_confirmation_dialog_response_handler), - window); + g_signal_connect (dialog, "response", + G_CALLBACK (close_confirmation_dialog_response_handler), + window); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); gtk_widget_show (dialog); @@ -2558,10 +2553,9 @@ eom_window_cmd_edit_toolbar (GtkAction *action, gpointer *user_data) g_object_set_data (G_OBJECT (dialog), "EggToolbarEditor", editor); - g_signal_connect (dialog, - "response", - G_CALLBACK (eom_window_cmd_edit_toolbar_cb), - window); + g_signal_connect (dialog, "response", + G_CALLBACK (eom_window_cmd_edit_toolbar_cb), + window); gtk_widget_show_all (dialog); } @@ -2640,12 +2634,12 @@ eom_window_cmd_about (GtkAction *action, gpointer user_data) "version", VERSION, "copyright", _("Copyright \xc2\xa9 2000-2010 Free Software Foundation, Inc.\n" "Copyright \xc2\xa9 2011 Perberos\n" - "Copyright \xc2\xa9 2012-2020 MATE developers"), + "Copyright \xc2\xa9 2012-2021 MATE developers"), "comments",_("Eye of MATE is a simple graphics viewer for the MATE Desktop Environment."), "authors", authors, "documenters", documenters, "translator-credits", _("translator-credits"), - "website", "http://www.mate-desktop.org/", + "website", PACKAGE_URL, "logo-icon-name", "eom", "wrap-license", TRUE, "license", license_trans, @@ -2823,12 +2817,12 @@ 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); g_signal_connect (info_bar, "response", - G_CALLBACK (wallpaper_info_bar_response), window); + G_CALLBACK (wallpaper_info_bar_response), + window); } static void @@ -2838,12 +2832,12 @@ eom_job_save_cb (EomJobSave *job, gpointer user_data) GtkAction *action_save; g_signal_handlers_disconnect_by_func (job, - eom_job_save_cb, - window); + eom_job_save_cb, + window); g_signal_handlers_disconnect_by_func (job, - eom_job_save_progress_cb, - window); + eom_job_save_progress_cb, + window); g_object_unref (window->priv->save_job); window->priv->save_job = NULL; @@ -2916,15 +2910,13 @@ eom_window_save_images (EomWindow *window, GList *images) priv->save_job = eom_job_save_new (images); - g_signal_connect (priv->save_job, - "finished", - G_CALLBACK (eom_job_save_cb), - window); + g_signal_connect (priv->save_job, "finished", + G_CALLBACK (eom_job_save_cb), + window); - g_signal_connect (priv->save_job, - "progress", - G_CALLBACK (eom_job_save_progress_cb), - window); + g_signal_connect (priv->save_job, "progress", + G_CALLBACK (eom_job_save_progress_cb), + window); return TRUE; } @@ -3060,15 +3052,13 @@ eom_window_cmd_save_as (GtkAction *action, gpointer user_data) return; } - g_signal_connect (priv->save_job, - "finished", - G_CALLBACK (eom_job_save_cb), - window); + g_signal_connect (priv->save_job, "finished", + G_CALLBACK (eom_job_save_cb), + window); - g_signal_connect (priv->save_job, - "progress", - G_CALLBACK (eom_job_save_progress_cb), - window); + g_signal_connect (priv->save_job, "progress", + G_CALLBACK (eom_job_save_progress_cb), + window); eom_job_queue_add_job (priv->save_job); } @@ -3232,12 +3222,12 @@ eom_window_cmd_wallpaper (GtkAction *action, gpointer user_data) if (filename == NULL || !eom_util_file_is_persistent (file)) { GList *files = NULL; - GtkAction *action; + GtkAction *action_set_as_wp; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; - action = gtk_action_group_get_action (window->priv->actions_image, - "ImageSetAsWallpaper"); - gtk_action_set_sensitive (action, FALSE); + action_set_as_wp = gtk_action_group_get_action (window->priv->actions_image, + "ImageSetAsWallpaper"); + gtk_action_set_sensitive (action_set_as_wp, FALSE); G_GNUC_END_IGNORE_DEPRECATIONS; priv->copy_file_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (priv->statusbar), @@ -3248,14 +3238,12 @@ eom_window_cmd_wallpaper (GtkAction *action, gpointer user_data) files = g_list_append (files, eom_image_get_file (image)); priv->copy_job = eom_job_copy_new (files, g_get_user_data_dir ()); - g_signal_connect (priv->copy_job, - "finished", - G_CALLBACK (eom_job_copy_cb), - window); - g_signal_connect (priv->copy_job, - "progress", - G_CALLBACK (eom_job_progress_cb), - window); + g_signal_connect (priv->copy_job, "finished", + G_CALLBACK (eom_job_copy_cb), + window); + g_signal_connect (priv->copy_job, "progress", + G_CALLBACK (eom_job_progress_cb), + window); eom_job_queue_add_job (priv->copy_job); g_object_unref (file); @@ -3770,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"), @@ -3960,9 +3948,11 @@ connect_proxy_cb (GtkUIManager *manager, if (GTK_IS_MENU_ITEM (proxy)) { disconnect_proxy_cb (manager, action, proxy, window); g_signal_connect (proxy, "select", - G_CALLBACK (menu_item_select_cb), window); + G_CALLBACK (menu_item_select_cb), + window); g_signal_connect (proxy, "deselect", - G_CALLBACK (menu_item_deselect_cb), window); + G_CALLBACK (menu_item_deselect_cb), + window); } } @@ -3973,10 +3963,12 @@ disconnect_proxy_cb (GtkUIManager *manager, EomWindow *window) { if (GTK_IS_MENU_ITEM (proxy)) { - g_signal_handlers_disconnect_by_func - (proxy, G_CALLBACK (menu_item_select_cb), window); - g_signal_handlers_disconnect_by_func - (proxy, G_CALLBACK (menu_item_deselect_cb), window); + g_signal_handlers_disconnect_by_func (proxy, + menu_item_select_cb, + window); + g_signal_handlers_disconnect_by_func (proxy, + menu_item_deselect_cb, + window); } } @@ -3989,11 +3981,11 @@ set_action_properties (GtkActionGroup *window_group, G_GNUC_BEGIN_IGNORE_DEPRECATIONS; action = gtk_action_group_get_action (collection_group, "GoPrevious"); - g_object_set (action, "short_label", _("Previous"), NULL); + g_object_set (action, "short_label", _("_Previous"), NULL); g_object_set (action, "is-important", TRUE, NULL); action = gtk_action_group_get_action (collection_group, "GoNext"); - g_object_set (action, "short_label", _("Next"), NULL); + g_object_set (action, "short_label", _("_Next"), NULL); g_object_set (action, "is-important", TRUE, NULL); action = gtk_action_group_get_action (image_group, "EditRotate90"); @@ -4079,9 +4071,9 @@ eom_window_update_recent_files_menu (EomWindow *window) actions = gtk_action_group_list_actions (priv->actions_recent); for (li = actions; li != NULL; li = li->next) { - g_signal_handlers_disconnect_by_func (GTK_ACTION (li->data), - G_CALLBACK(eom_window_open_recent_cb), - window); + g_signal_handlers_disconnect_by_func (li->data, + eom_window_open_recent_cb, + window); gtk_action_group_remove_action (priv->actions_recent, GTK_ACTION (li->data)); @@ -4140,8 +4132,8 @@ eom_window_update_recent_files_menu (EomWindow *window) g_object_set (G_OBJECT (action), "icon-name", "image-x-generic", NULL); g_signal_connect (action, "activate", - G_CALLBACK (eom_window_open_recent_cb), - window); + G_CALLBACK (eom_window_open_recent_cb), + window); G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_action_group_add_action (priv->actions_recent, action); @@ -4333,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); @@ -4349,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); } @@ -4386,7 +4378,8 @@ eom_window_add_open_editor_action (EomWindow *window) gtk_action_set_is_important (action, TRUE); g_signal_connect (action, "activate", - G_CALLBACK (eom_window_open_editor), window); + G_CALLBACK (eom_window_open_editor), + window); gtk_action_group_add_action (window->priv->actions_image, action); G_GNUC_END_IGNORE_DEPRECATIONS; @@ -4421,8 +4414,10 @@ eom_window_construct_ui (EomWindow *window) G_GNUC_BEGIN_IGNORE_DEPRECATIONS; priv->actions_window = gtk_action_group_new ("MenuActionsWindow"); +#ifdef ENABLE_NLS gtk_action_group_set_translation_domain (priv->actions_window, GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ gtk_action_group_add_actions (priv->actions_window, action_entries_window, @@ -4439,8 +4434,10 @@ eom_window_construct_ui (EomWindow *window) G_GNUC_BEGIN_IGNORE_DEPRECATIONS; priv->actions_image = gtk_action_group_new ("MenuActionsImage"); +#ifdef ENABLE_NLS gtk_action_group_set_translation_domain (priv->actions_image, GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ gtk_action_group_add_actions (priv->actions_image, action_entries_image, @@ -4459,8 +4456,10 @@ eom_window_construct_ui (EomWindow *window) G_GNUC_BEGIN_IGNORE_DEPRECATIONS; priv->actions_collection = gtk_action_group_new ("MenuActionsCollection"); +#ifdef ENABLE_NLS gtk_action_group_set_translation_domain (priv->actions_collection, GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ gtk_action_group_add_actions (priv->actions_collection, action_entries_collection, @@ -4487,9 +4486,12 @@ eom_window_construct_ui (EomWindow *window) } g_signal_connect (priv->ui_mgr, "connect_proxy", - G_CALLBACK (connect_proxy_cb), window); + G_CALLBACK (connect_proxy_cb), + window); + g_signal_connect (priv->ui_mgr, "disconnect_proxy", - G_CALLBACK (disconnect_proxy_cb), window); + G_CALLBACK (disconnect_proxy_cb), + window); menubar = gtk_ui_manager_get_widget (priv->ui_mgr, "/MainMenu"); g_assert (GTK_IS_WIDGET (menubar)); @@ -4542,13 +4544,15 @@ eom_window_construct_ui (EomWindow *window) G_GNUC_BEGIN_IGNORE_DEPRECATIONS; priv->actions_recent = gtk_action_group_new ("RecentFilesActions"); +#ifdef ENABLE_NLS gtk_action_group_set_translation_domain (priv->actions_recent, GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ G_GNUC_END_IGNORE_DEPRECATIONS; g_signal_connect (gtk_recent_manager_get_default (), "changed", - G_CALLBACK (eom_window_recent_manager_changed_cb), - window); + G_CALLBACK (eom_window_recent_manager_changed_cb), + window); eom_window_update_recent_files_menu (window); @@ -4582,25 +4586,21 @@ eom_window_construct_ui (EomWindow *window) gtk_widget_set_size_request (priv->sidebar, 210, -1); - g_signal_connect_after (priv->sidebar, - "show", - G_CALLBACK (eom_window_sidebar_visibility_changed), - window); + g_signal_connect_after (priv->sidebar, "show", + G_CALLBACK (eom_window_sidebar_visibility_changed), + window); - g_signal_connect_after (priv->sidebar, - "hide", - G_CALLBACK (eom_window_sidebar_visibility_changed), - window); + g_signal_connect_after (priv->sidebar, "hide", + G_CALLBACK (eom_window_sidebar_visibility_changed), + window); - g_signal_connect_after (priv->sidebar, - "page-added", - G_CALLBACK (eom_window_sidebar_page_added), - window); + g_signal_connect_after (priv->sidebar, "page-added", + G_CALLBACK (eom_window_sidebar_page_added), + window); - g_signal_connect_after (priv->sidebar, - "page-removed", - G_CALLBACK (eom_window_sidebar_page_removed), - window); + g_signal_connect_after (priv->sidebar, "page-removed", + G_CALLBACK (eom_window_sidebar_page_removed), + window); priv->view = eom_scroll_view_new (); @@ -4609,10 +4609,9 @@ eom_window_construct_ui (EomWindow *window) GTK_WIDGET (eom_metadata_sidebar_new (window))); gtk_widget_set_size_request (GTK_WIDGET (priv->view), 100, 100); - g_signal_connect (G_OBJECT (priv->view), - "zoom_changed", - G_CALLBACK (view_zoom_changed_cb), - window); + g_signal_connect (priv->view, "zoom_changed", + G_CALLBACK (view_zoom_changed_cb), + window); g_settings_bind (priv->view_settings, EOM_CONF_VIEW_SCROLL_WHEEL_ZOOM, priv->view, "scrollwheel-zoom", G_SETTINGS_BIND_GET); @@ -4643,8 +4642,9 @@ eom_window_construct_ui (EomWindow *window) gtk_icon_view_set_margin (GTK_ICON_VIEW (priv->thumbview), 4); gtk_icon_view_set_row_spacing (GTK_ICON_VIEW (priv->thumbview), 0); - g_signal_connect (G_OBJECT (priv->thumbview), "selection_changed", - G_CALLBACK (handle_image_selection_changed_cb), window); + g_signal_connect (priv->thumbview, "selection_changed", + G_CALLBACK (handle_image_selection_changed_cb), + window); priv->nav = eom_thumb_nav_new (priv->thumbview, EOM_THUMB_NAV_MODE_ONE_ROW, @@ -4688,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); @@ -4701,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); @@ -4710,10 +4710,9 @@ eom_window_init (EomWindow *window) priv->fullscreen_settings = g_settings_new (EOM_CONF_FULLSCREEN); priv->lockdown_settings = g_settings_new (EOM_CONF_LOCKDOWN_SCHEMA); - g_signal_connect (priv->lockdown_settings, - "changed::" EOM_CONF_LOCKDOWN_CAN_SAVE, - G_CALLBACK (eom_window_can_save_changed_cb), - window); + g_signal_connect (priv->lockdown_settings, "changed::" EOM_CONF_LOCKDOWN_CAN_SAVE, + G_CALLBACK (eom_window_can_save_changed_cb), + window); window->priv->store = NULL; window->priv->image = NULL; @@ -4741,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 @@ -4789,29 +4789,29 @@ eom_window_dispose (GObject *object) /* Disconnect so we don't get any unwanted callbacks * when the thumb view is disposed. */ g_signal_handlers_disconnect_by_func (priv->thumbview, - G_CALLBACK (handle_image_selection_changed_cb), - window); + handle_image_selection_changed_cb, + window); g_clear_object (&priv->thumbview); } if (priv->store != NULL) { g_signal_handlers_disconnect_by_func (priv->store, - eom_window_list_store_image_added, - window); + eom_window_list_store_image_added, + window); g_signal_handlers_disconnect_by_func (priv->store, - eom_window_list_store_image_removed, - window); + eom_window_list_store_image_removed, + window); g_object_unref (priv->store); priv->store = NULL; } if (priv->image != NULL) { g_signal_handlers_disconnect_by_func (priv->image, - image_thumb_changed_cb, - window); + image_thumb_changed_cb, + window); g_signal_handlers_disconnect_by_func (priv->image, - image_file_changed_cb, - window); + image_file_changed_cb, + window); g_object_unref (priv->image); priv->image = NULL; } @@ -4852,8 +4852,8 @@ eom_window_dispose (GObject *object) eom_window_uninhibit_screensaver (window); g_signal_handlers_disconnect_by_func (gtk_recent_manager_get_default (), - G_CALLBACK (eom_window_recent_manager_changed_cb), - window); + eom_window_recent_manager_changed_cb, + window); priv->recent_menu_id = 0; @@ -5241,9 +5241,11 @@ eom_window_constructor (GType type, peas_extension_set_call (priv->extensions, "activate"); g_signal_connect (priv->extensions, "extension-added", - G_CALLBACK (on_extension_added), object); + G_CALLBACK (on_extension_added), + object); g_signal_connect (priv->extensions, "extension-removed", - G_CALLBACK (on_extension_removed), object); + G_CALLBACK (on_extension_removed), + object); return object; } @@ -5327,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. **/ @@ -5413,15 +5416,13 @@ eom_job_model_cb (EomJobModel *job, gpointer data) eom_thumb_view_set_model (EOM_THUMB_VIEW (priv->thumbview), priv->store); - g_signal_connect (G_OBJECT (priv->store), - "row-inserted", - G_CALLBACK (eom_window_list_store_image_added), - window); + g_signal_connect (priv->store, "row-inserted", + G_CALLBACK (eom_window_list_store_image_added), + window); - g_signal_connect (G_OBJECT (priv->store), - "row-deleted", - G_CALLBACK (eom_window_list_store_image_removed), - window); + g_signal_connect (priv->store, "row-deleted", + G_CALLBACK (eom_window_list_store_image_removed), + window); if (n_images == 0) { gint n_files; @@ -5471,12 +5472,11 @@ 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), - window); + g_signal_connect (job, "finished", + G_CALLBACK (eom_job_model_cb), + window); eom_job_queue_add_job (job); g_object_unref (job); 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 { @@ -46,14 +46,13 @@ #include <exempi/xmp.h> #endif -#define EOM_CSS_FILE_PATH EOM_DATA_DIR G_DIR_SEPARATOR_S "eom.css" - static EomStartupFlags flags; 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 @@ -73,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 } @@ -89,6 +89,9 @@ set_startup_flags (void) if (slide_show) flags |= EOM_STARTUP_SLIDE_SHOW; + + if (preserve_order) + flags |= EOM_STARTUP_PRESERVE_ORDER; } int @@ -99,9 +102,11 @@ main (int argc, char **argv) GFile *css_file; GtkCssProvider *provider; +#ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, EOM_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); +#endif /* ENABLE_NLS */ gdk_set_allowed_backends ("wayland,x11"); @@ -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 |