[gnome-books/wip/hadess/app-provided-pixbuf-loader: 22/23] main: Load application provided pixbuf loaders
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-books/wip/hadess/app-provided-pixbuf-loader: 22/23] main: Load application provided pixbuf loaders
- Date: Fri, 2 Aug 2019 12:11:29 +0000 (UTC)
commit 62abf4255bfac9f276c5d61c0128cb92a3d9f582
Author: Bastien Nocera <hadess hadess net>
Date: Thu Feb 28 15:10:44 2019 +0100
main: Load application provided pixbuf loaders
See https://gitlab.gnome.org/GNOME/gdk-pixbuf/merge_requests/34
meson.build | 3 +++
src/application.js | 9 +++++++++
src/config.js.in | 1 +
src/meson.build | 10 +++-------
src/org.gnome.Books.src.gresource.xml | 1 +
5 files changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/meson.build b/meson.build
index cb24197e..fcd768c2 100644
--- a/meson.build
+++ b/meson.build
@@ -52,6 +52,9 @@ add_project_arguments('-DHAVE_CONFIG_H', language: 'c')
evince_req_version = '>= 3.13.3'
tracker_req_version = '>= 0.17.3'
+gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0', version: '>= 2.39.1')
+extra_gdk_pixbuf_loaders_dir = join_paths (books_pkglibdir, 'gdk-pixbuf',
gdk_pixbuf_dep.get_pkgconfig_variable('gdk_pixbuf_binary_version'))
+
gjs_dep = dependency('gjs-1.0', version: '>= 1.48.0')
gjs_console = gjs_dep.get_pkgconfig_variable('gjs_console')
diff --git a/src/application.js b/src/application.js
index 07af5471..062582bd 100644
--- a/src/application.js
+++ b/src/application.js
@@ -29,9 +29,11 @@ const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
+const GdkPixbuf = imports.gi.GdkPixbuf;
const Tracker = imports.gi.Tracker;
const TrackerControl = imports.gi.TrackerControl;
+const config = imports.config;
const ChangeMonitor = imports.changeMonitor;
const Format = imports.format;
const MainWindow = imports.mainWindow;
@@ -107,6 +109,13 @@ var Application = new Lang.Class({
// needed by data/ui/view-menu.ui
GObject.type_ensure(Gio.ThemedIcon);
+ // init our pixbuf loaders
+ try {
+ GdkPixbuf.Pixbuf.init_modules (config.EXTRA_GDK_PIXBUF_LOADERS_DIR);
+ } catch (e) {
+ // ignore error
+ }
+
this.parent({ application_id: appid });
this.add_main_option('version', 'v'.charCodeAt(0), GLib.OptionFlags.NONE, GLib.OptionArg.NONE,
diff --git a/src/config.js.in b/src/config.js.in
new file mode 100644
index 00000000..3156153c
--- /dev/null
+++ b/src/config.js.in
@@ -0,0 +1 @@
+var EXTRA_GDK_PIXBUF_LOADERS_DIR = '@EXTRA_GDK_PIXBUF_LOADERS_DIR@';
diff --git a/src/meson.build b/src/meson.build
index a1f57b47..d0de13ca 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,17 +1,13 @@
-'''
js_conf = configuration_data()
-js_conf.set('PACKAGE_NAME', meson.project_name())
-js_conf.set('PACKAGE_VERSION', books_version)
-js_conf.set('GETTEXT_PACKAGE', meson.project_name())
+js_conf.set('EXTRA_GDK_PIXBUF_LOADERS_DIR', extra_gdk_pixbuf_loaders_dir)
js = 'config.js'
-configure_file(
+config_js = configure_file(
input: js + '.in',
output: js,
configuration: js_conf
)
-'''
headers = files(
'lib/gd-bookmark.h',
@@ -100,7 +96,7 @@ sources += gnome.compile_resources(
resource,
resource + '.gresource.xml',
source_dir: '.',
- dependencies: resource_data,
+ dependencies: [ resource_data, config_js ],
gresource_bundle: true,
install: true,
install_dir: books_pkgdatadir
diff --git a/src/org.gnome.Books.src.gresource.xml b/src/org.gnome.Books.src.gresource.xml
index ab2afe5c..99df793a 100644
--- a/src/org.gnome.Books.src.gresource.xml
+++ b/src/org.gnome.Books.src.gresource.xml
@@ -3,6 +3,7 @@
<gresource prefix="/org/gnome/Books/js">
<file>application.js</file>
<file>changeMonitor.js</file>
+ <file>config.js</file>
<file>documents.js</file>
<file>epubview.js</file>
<file>embed.js</file>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]