263 lines
7.2 KiB
Diff
263 lines
7.2 KiB
Diff
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(
|