blob: f3da924882506f3e2af7a0d410ac12df2db9ec07 [file] [log] [blame]
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(