| diff --git a/meson.build b/meson.build |
| index 6b64d827..914c6bdb 100644 |
| --- a/meson.build |
| +++ b/meson.build |
| @@ -93,8 +93,8 @@ glib_req_version = '>= 2.53.4' |
| peas_req_version = '>= 0.7.4' |
| |
| gio_dep = dependency('gio-2.0', version: glib_req_version) |
| -gio_unix_dep = dependency('gio-unix-2.0', version: glib_req_version) |
| -gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 2.91.2') |
| +gio_unix_dep = dependency('gio-unix-2.0', version: glib_req_version, required: false) |
| +gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 2.91.2', required: false) |
| libpeas_gtk_dep = dependency('libpeas-gtk-1.0', version: peas_req_version) |
| |
| m_dep = cc.find_library('m') |
| diff --git a/src/eog-error-message-area.c b/src/eog-error-message-area.c |
| index 70618d88..2ac44b78 100644 |
| --- a/src/eog-error-message-area.c |
| +++ b/src/eog-error-message-area.c |
| @@ -34,7 +34,9 @@ |
| #include <glib/gi18n.h> |
| #include <glib-object.h> |
| #include <gtk/gtk.h> |
| +#ifndef _WIN32 |
| #include <gio/gdesktopappinfo.h> |
| +#endif |
| |
| /* gboolean <-> gpointer conversion macros taken from gedit */ |
| #ifndef GBOOLEAN_TO_POINTER |
| @@ -324,6 +326,7 @@ static gpointer |
| _check_evince_availability(gpointer data) |
| { |
| gboolean result = FALSE; |
| +#ifndef _WIN32 |
| GDesktopAppInfo *app_info; |
| |
| app_info = g_desktop_app_info_new ("evince.desktop"); |
| @@ -331,6 +334,7 @@ _check_evince_availability(gpointer data) |
| result = TRUE; |
| g_object_unref (app_info); |
| } |
| +#endif |
| return GBOOLEAN_TO_POINTER(result); |
| } |
| |
| diff --git a/src/eog-file-chooser.c b/src/eog-file-chooser.c |
| index 03052549..3b2b4410 100644 |
| --- a/src/eog-file-chooser.c |
| +++ b/src/eog-file-chooser.c |
| @@ -28,6 +28,8 @@ |
| #include <gio/gio.h> |
| #include <gtk/gtk.h> |
| |
| +#ifndef _WIN32 |
| + |
| /* We must define GNOME_DESKTOP_USE_UNSTABLE_API to be able |
| to use GnomeDesktopThumbnail */ |
| #ifndef GNOME_DESKTOP_USE_UNSTABLE_API |
| @@ -35,14 +37,17 @@ |
| #endif |
| #include <libgnome-desktop/gnome-desktop-thumbnail.h> |
| |
| +#endif |
| + |
| static char *last_dir[] = { NULL, NULL, NULL, NULL }; |
| |
| #define FILE_FORMAT_KEY "file-format" |
| |
| struct _EogFileChooserPrivate |
| { |
| +#ifndef _WIN32 |
| GnomeDesktopThumbnailFactory *thumb_factory; |
| - |
| +#endif |
| GtkWidget *image; |
| GtkWidget *size_label; |
| GtkWidget *dim_label; |
| @@ -57,10 +62,10 @@ eog_file_chooser_finalize (GObject *object) |
| EogFileChooserPrivate *priv; |
| |
| priv = EOG_FILE_CHOOSER (object)->priv; |
| - |
| +#ifndef _WIN32 |
| if (priv->thumb_factory != NULL) |
| g_object_unref (priv->thumb_factory); |
| - |
| +#endif |
| (* G_OBJECT_CLASS (eog_file_chooser_parent_class)->finalize) (object); |
| } |
| |
| @@ -344,7 +349,7 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data) |
| G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, |
| 0, NULL, NULL); |
| g_object_unref (file); |
| - |
| +#ifndef _WIN32 |
| if ((file_info != NULL) && (priv->thumb_factory != NULL) |
| && g_file_info_get_file_type (file_info) != G_FILE_TYPE_SPECIAL) { |
| guint64 mtime; |
| @@ -392,7 +397,7 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data) |
| } |
| } |
| } |
| - |
| +#endif |
| if (thumb_path != NULL) { |
| g_free (thumb_path); |
| } |
| @@ -431,9 +436,9 @@ eog_file_chooser_add_preview (GtkWidget *widget) |
| |
| gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (widget), vbox); |
| gtk_file_chooser_set_preview_widget_active (GTK_FILE_CHOOSER (widget), FALSE); |
| - |
| +#ifndef _WIN32 |
| priv->thumb_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL); |
| - |
| +#endif |
| g_signal_connect (widget, "update-preview", |
| G_CALLBACK (update_preview_cb), NULL); |
| } |
| diff --git a/src/eog-thumbnail.c b/src/eog-thumbnail.c |
| index 8fd2c7cf..5e5eeea6 100644 |
| --- a/src/eog-thumbnail.c |
| +++ b/src/eog-thumbnail.c |
| @@ -25,21 +25,22 @@ |
| #ifdef HAVE_CONFIG_H |
| #include <config.h> |
| #endif |
| - |
| +#ifndef _WIN32 |
| /* We must define GNOME_DESKTOP_USE_UNSTABLE_API to be able |
| to use GnomeDesktopThumbnail */ |
| #ifndef GNOME_DESKTOP_USE_UNSTABLE_API |
| #define GNOME_DESKTOP_USE_UNSTABLE_API |
| #endif |
| #include <libgnome-desktop/gnome-desktop-thumbnail.h> |
| - |
| +#endif |
| #include "eog-thumbnail.h" |
| #include "eog-list-store.h" |
| #include "eog-debug.h" |
| |
| #define EOG_THUMB_ERROR eog_thumb_error_quark () |
| - |
| +#ifndef _WIN32 |
| static GnomeDesktopThumbnailFactory *factory = NULL; |
| +#endif |
| static GdkPixbuf *frame = NULL; |
| |
| typedef enum { |
| @@ -97,13 +98,13 @@ get_valid_thumbnail (EogThumbData *data, GError **error) |
| /* It's no error if the thumbnail does not exist */ |
| if (error && g_error_matches (*error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) |
| g_clear_error (error); |
| - |
| +#ifndef _WIN32 |
| /* is this thumbnail file up to date? */ |
| if (thumb != NULL && !gnome_desktop_thumbnail_is_valid (thumb, data->uri_str, data->mtime)) { |
| g_object_unref (thumb); |
| thumb = NULL; |
| } |
| - |
| +#endif |
| return thumb; |
| } |
| |
| @@ -115,9 +116,9 @@ create_thumbnail_from_pixbuf (EogThumbData *data, |
| GdkPixbuf *thumb; |
| gint width, height; |
| gfloat perc; |
| - |
| +#ifndef _WIN32 |
| g_assert (factory != NULL); |
| - |
| +#endif |
| width = gdk_pixbuf_get_width (pixbuf); |
| height = gdk_pixbuf_get_height (pixbuf); |
| |
| @@ -157,7 +158,11 @@ eog_thumb_data_new (GFile *file, GError **error) |
| data = g_slice_new0 (EogThumbData); |
| |
| data->uri_str = g_file_get_uri (file); |
| +#ifndef _WIN32 |
| data->thumb_path = gnome_desktop_thumbnail_path_for_uri (data->uri_str, GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL); |
| +#else |
| + data->thumb_path = ""; |
| +#endif |
| |
| file_info = g_file_query_info (file, |
| G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "," |
| @@ -478,7 +483,7 @@ eog_thumbnail_load (EogImage *image, GError **error) |
| |
| if (data == NULL) |
| return NULL; |
| - |
| +#ifndef _WIN32 |
| if (!data->can_read || |
| (data->failed_thumb_exists && gnome_desktop_thumbnail_factory_has_valid_failed_thumbnail (factory, data->uri_str, data->mtime))) { |
| eog_debug_message (DEBUG_THUMBNAIL, "%s: bad permissions or valid failed thumbnail present",data->uri_str); |
| @@ -523,15 +528,19 @@ eog_thumbnail_load (EogImage *image, GError **error) |
| eog_thumb_data_free (data); |
| |
| return thumb; |
| +#else |
| + return NULL; |
| +#endif |
| } |
| |
| void |
| eog_thumbnail_init (void) |
| { |
| +#ifndef _WIN32 |
| if (factory == NULL) { |
| factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL); |
| } |
| - |
| +#endif |
| if (frame == NULL) { |
| frame = gdk_pixbuf_new_from_resource ( |
| "/org/gnome/eog/ui/pixmaps/thumbnail-frame.png", |
| diff --git a/src/eog-window.c b/src/eog-window.c |
| index 7fd2fd83..01fe4fb8 100644 |
| --- a/src/eog-window.c |
| +++ b/src/eog-window.c |
| @@ -65,7 +65,9 @@ |
| #include <glib/gi18n.h> |
| #include <gio/gio.h> |
| #include <gdk/gdkkeysyms.h> |
| +#ifndef _WIN32 |
| #include <gio/gdesktopappinfo.h> |
| +#endif |
| #include <gtk/gtk.h> |
| |
| #include <libpeas/peas-extension-set.h> |
| @@ -1356,6 +1358,7 @@ eog_window_error_message_area_response (GtkInfoBar *message_area, |
| break; |
| case EOG_ERROR_MESSAGE_AREA_RESPONSE_OPEN_WITH_EVINCE: |
| { |
| +#ifndef _WIN32 |
| GDesktopAppInfo *app_info; |
| GFile *img_file; |
| GList *img_files = NULL; |
| @@ -1372,6 +1375,7 @@ eog_window_error_message_area_response (GtkInfoBar *message_area, |
| img_files); |
| g_list_free_full (img_files, g_object_unref); |
| } |
| +#endif |
| } |
| break; |
| } |
| diff --git a/src/meson.build b/src/meson.build |
| index 7416a208..d4cebb20 100644 |
| --- a/src/meson.build |
| +++ b/src/meson.build |
| @@ -163,7 +163,6 @@ libeog = shared_library( |
| link_args: ldflags, |
| link_depends: symbol_map, |
| install: true, |
| - install_dir: eog_pkglibdir, |
| ) |
| |
| libeog_dep = declare_dependency( |