diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/eom-close-confirmation-dialog.c | 16 | ||||
-rw-r--r-- | src/eom-jobs.c | 6 | ||||
-rw-r--r-- | src/eom-jobs.h | 4 | ||||
-rw-r--r-- | src/eom-list-store.c | 10 | ||||
-rw-r--r-- | src/eom-list-store.h | 3 | ||||
-rw-r--r-- | src/eom-metadata-sidebar.c | 5 | ||||
-rw-r--r-- | src/eom-scroll-view.c | 30 | ||||
-rw-r--r-- | src/eom-thumb-view.c | 25 | ||||
-rw-r--r-- | src/eom-window.c | 69 | ||||
-rw-r--r-- | src/eom-window.h | 3 | ||||
-rw-r--r-- | src/main.c | 5 | ||||
-rw-r--r-- | src/meson.build | 180 |
12 files changed, 291 insertions, 65 deletions
diff --git a/src/eom-close-confirmation-dialog.c b/src/eom-close-confirmation-dialog.c index ad8dc63..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 (); diff --git a/src/eom-jobs.c b/src/eom-jobs.c index bde2517..7104268 100644 --- a/src/eom-jobs.c +++ b/src/eom-jobs.c @@ -351,6 +351,7 @@ eom_job_model_class_init (EomJobModelClass *class) /** * eom_job_model_new: * @file_list: (element-type GFile): a #GFile list + * @preserve_order: Flag to indicate whether to honor the order of input parameters. * * Creates a new #EomJob model. * @@ -358,13 +359,14 @@ eom_job_model_class_init (EomJobModelClass *class) */ EomJob * -eom_job_model_new (GSList *file_list) +eom_job_model_new (GSList *file_list, gboolean preserve_order) { EomJobModel *job; job = g_object_new (EOM_TYPE_JOB_MODEL, NULL); job->file_list = file_list; + job->preserve_order = preserve_order; return EOM_JOB (job); } @@ -438,7 +440,7 @@ eom_job_model_run (EomJob *ejob) job->store = EOM_LIST_STORE (eom_list_store_new ()); - eom_list_store_add_files (job->store, filtered_list); + eom_list_store_add_files (job->store, filtered_list, job->preserve_order); g_list_free_full (filtered_list, g_object_unref); g_list_free_full (error_list, g_free); diff --git a/src/eom-jobs.h b/src/eom-jobs.h index df2283e..37bc26e 100644 --- a/src/eom-jobs.h +++ b/src/eom-jobs.h @@ -163,6 +163,7 @@ struct _EomJobModel EomJob parent; EomListStore *store; GSList *file_list; + gboolean preserve_order; }; struct _EomJobModelClass @@ -247,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 0115b1d..3d1a9c6 100644 --- a/src/eom-list-store.c +++ b/src/eom-list-store.c @@ -34,7 +34,8 @@ struct _EomListStorePrivate { gint initial_image; /* The image that should be selected firstly by the view. */ GdkPixbuf *busy_image; /* Loading image icon */ GdkPixbuf *missing_image; /* Missing image icon */ - GMutex mutex; /* Mutex for saving the jobs in the model */ + GMutex mutex; /* Mutex for saving the jobs in the model */ + gboolean preserve_order; /* If TRUE, preserves the original order of files */ }; G_DEFINE_TYPE_WITH_PRIVATE (EomListStore, eom_list_store, GTK_TYPE_LIST_STORE); @@ -529,6 +530,7 @@ eom_list_store_append_directory (EomListStore *store, * eom_list_store_add_files: * @store: An #EomListStore. * @file_list: (element-type GFile): A %NULL-terminated list of #GFile's. + * @preserve_order: Flag to indicate whether to honor the order of input parameters. * * Adds a list of #GFile's to @store. The given list * must be %NULL-terminated. @@ -540,7 +542,7 @@ eom_list_store_append_directory (EomListStore *store, * **/ void -eom_list_store_add_files (EomListStore *store, GList *file_list) +eom_list_store_add_files (EomListStore *store, GList *file_list, gboolean preserve_order) { GList *it; GFileInfo *file_info; @@ -624,7 +626,11 @@ eom_list_store_add_files (EomListStore *store, GList *file_list) g_free (caption); } + /* Set the sort behaviour depending on the toggle option. + If preserve_order is TRUE, then preserve the order in which files were provided. + Otherwise, use the default sort function. */ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), + preserve_order ? GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID : \ GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); 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-sidebar.c b/src/eom-metadata-sidebar.c index 982a937..9b8fc8b 100644 --- a/src/eom-metadata-sidebar.c +++ b/src/eom-metadata-sidebar.c @@ -263,11 +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); diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c index d438021..ee57c77 100644 --- a/src/eom-scroll-view.c +++ b/src/eom-scroll-view.c @@ -87,8 +87,8 @@ struct _EomScrollViewPrivate { /* actual image */ EomImage *image; - guint image_changed_id; - guint frame_changed_id; + gulong image_changed_id; + gulong frame_changed_id; GdkPixbuf *pixbuf; cairo_surface_t *surface; @@ -188,15 +188,20 @@ free_image_resources (EomScrollView *view) priv = view->priv; - if (priv->image_changed_id > 0) { +#if GLIB_CHECK_VERSION(2,62,0) + g_clear_signal_handler (&priv->image_changed_id, priv->image); + g_clear_signal_handler (&priv->frame_changed_id, priv->image); +#else + if (priv->image_changed_id != 0) { g_signal_handler_disconnect (priv->image, priv->image_changed_id); priv->image_changed_id = 0; } - if (priv->frame_changed_id > 0) { + if (priv->frame_changed_id != 0) { g_signal_handler_disconnect (priv->image, priv->frame_changed_id); priv->frame_changed_id = 0; } +#endif if (priv->image != NULL) { eom_image_data_unref (priv->image); @@ -1028,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; @@ -1294,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); @@ -1302,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. */ diff --git a/src/eom-thumb-view.c b/src/eom-thumb-view.c index 3a2ddf4..0b28440 100644 --- a/src/eom-thumb-view.c +++ b/src/eom-thumb-view.c @@ -78,7 +78,7 @@ struct _EomThumbViewPrivate { gint end_thumb; /* the last visible thumbnail */ GtkWidget *menu; /* a contextual menu for thumbnails */ GtkCellRenderer *pixbuf_cell; - gint visible_range_changed_id; + guint visible_range_changed_id; GtkOrientation orientation; gint n_images; @@ -167,17 +167,24 @@ eom_thumb_view_dispose (GObject *object) priv->visible_range_changed_id = 0; } - model = gtk_icon_view_get_model (GTK_ICON_VIEW (object)); - - if (model && priv->image_add_id != 0) { - g_signal_handler_disconnect (model, priv->image_add_id); - priv->image_add_id = 0; +#if GLIB_CHECK_VERSION(2,62,0) + if ((model = gtk_icon_view_get_model (GTK_ICON_VIEW (object))) != NULL) { + g_clear_signal_handler (&priv->image_add_id, model); + g_clear_signal_handler (&priv->image_removed_id, model); } +#else + if ((model = gtk_icon_view_get_model (GTK_ICON_VIEW (object))) != NULL) { + if (priv->image_add_id != 0) { + g_signal_handler_disconnect (model, priv->image_add_id); + priv->image_add_id = 0; + } - if (model && priv->image_removed_id) { - g_signal_handler_disconnect (model, priv->image_removed_id); - priv->image_removed_id = 0; + if (priv->image_removed_id != 0) { + g_signal_handler_disconnect (model, priv->image_removed_id); + priv->image_removed_id = 0; + } } +#endif G_OBJECT_CLASS (eom_thumb_view_parent_class)->dispose (object); } diff --git a/src/eom-window.c b/src/eom-window.c index 6c4b5d2..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); @@ -4342,7 +4345,7 @@ eom_window_open_editor (GtkAction *action, 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_list_free (files); @@ -4685,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); @@ -4698,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); @@ -4737,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 @@ -5325,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. **/ @@ -5467,7 +5472,7 @@ eom_window_open_file_list (EomWindow *window, GSList *file_list) g_slist_foreach (file_list, (GFunc) g_object_ref, NULL); window->priv->file_list = file_list; - job = eom_job_model_new (file_list); + job = eom_job_model_new (file_list, !!(window->priv->flags & EOM_STARTUP_PRESERVE_ORDER)); g_signal_connect (job, "finished", G_CALLBACK (eom_job_model_cb), diff --git a/src/eom-window.h b/src/eom-window.h index 04e028b..cd1d7b5 100644 --- a/src/eom-window.h +++ b/src/eom-window.h @@ -78,7 +78,8 @@ typedef enum { typedef enum { EOM_STARTUP_FULLSCREEN = 1 << 0, EOM_STARTUP_SLIDE_SHOW = 1 << 1, - EOM_STARTUP_DISABLE_COLLECTION = 1 << 2 + EOM_STARTUP_DISABLE_COLLECTION = 1 << 2, + EOM_STARTUP_PRESERVE_ORDER = 1 << 3 } EomStartupFlags; struct _EomWindow { @@ -52,6 +52,7 @@ static gboolean fullscreen = FALSE; static gboolean slide_show = FALSE; static gboolean disable_collection = FALSE; static gboolean force_new_instance = FALSE; +static gboolean preserve_order = FALSE; static gchar **startup_files = NULL; static gboolean @@ -71,6 +72,7 @@ static const GOptionEntry goption_options[] = { "disable-image-collection", 'c', 0, G_OPTION_ARG_NONE, &disable_collection, N_("Disable image collection"), NULL }, { "slide-show", 's', 0, G_OPTION_ARG_NONE, &slide_show, N_("Open in slideshow mode"), NULL }, { "new-instance", 'n', 0, G_OPTION_ARG_NONE, &force_new_instance, N_("Start a new instance instead of reusing an existing one"), NULL }, + { "preserve-order", 'p', 0, G_OPTION_ARG_NONE, &preserve_order, N_("Preserve the input file order (disable default sorting)"), NULL }, { "version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, _print_version_and_exit, N_("Show the application's version"), NULL}, { NULL } @@ -87,6 +89,9 @@ set_startup_flags (void) if (slide_show) flags |= EOM_STARTUP_SLIDE_SHOW; + + if (preserve_order) + flags |= EOM_STARTUP_PRESERVE_ORDER; } int 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 |