diff --git a/Makefile b/Makefile
index 6f5207e..2c7531a 100644
--- a/Makefile
+++ b/Makefile
@@ -36,13 +36,6 @@ endif
ifeq (,$(findstring -DLOCALEDIR,${CPPFLAGS}))
CPPFLAGS += -DLOCALEDIR=\"${LOCALEDIR}\"
endif
-ifeq (,$(findstring -DDBUSINTERFACEDIR,${CPPFLAGS}))
-ifneq ($(WITH_LOCAL_DBUS_XML),0)
-CPPFLAGS += -DDBUSINTERFACEDIR=\"$(abspath data)\"
-else
-CPPFLAGS += -DDBUSINTERFACEDIR=\"${DBUSINTERFACEDIR}\"
-endif
-endif
SOURCE = $(filter-out $(SOURCE_FILTER),$(OSOURCE))
OBJECTS = $(addprefix ${BUILDDIR_RELEASE}/,${SOURCE:.c=.o})
diff --git a/config.mk b/config.mk
index 625897e..edbeb94 100644
--- a/config.mk
+++ b/config.mk
@@ -47,11 +47,6 @@ WITH_SYNCTEX ?= $(shell (${PKG_CONFIG} synctex && echo 1) || echo 0)
# To disable support for mimetype detction with libmagic set WITH_MAGIC to 0.
WITH_MAGIC ?= 1
-# use local D-Bus interface
-# Enable this if the D-Bus interface XML from data should be used (useful for
-# development).
-WITH_LOCAL_DBUS_XML ?= 0
-
# paths
PREFIX ?= /usr
MANPREFIX ?= ${PREFIX}/share/man
diff --git a/data/zathura.gresource.xml b/data/zathura.gresource.xml
index a74b211..835b35b 100644
--- a/data/zathura.gresource.xml
+++ b/data/zathura.gresource.xml
@@ -3,4 +3,7 @@
zathura.css_t
+
+ org.pwmt.zathura.xml
+
diff --git a/zathura/dbus-interface.c b/zathura/dbus-interface.c
index 056c93a..0948117 100644
--- a/zathura/dbus-interface.c
+++ b/zathura/dbus-interface.c
@@ -7,6 +7,7 @@
#include "document.h"
#include "utils.h"
#include "adjustment.h"
+#include "resources.h"
#include
#include
@@ -16,24 +17,17 @@
#include
#include
-static const char DBUS_XML_FILENAME[] = "org.pwmt.zathura.xml";
+static const char DBUS_XML_FILENAME[] = "/org/pwmt/zathura/DBus/org.pwmt.zathura.xml";
-static char* load_xml_data(void)
+static GBytes* load_xml_data(void)
{
-#ifdef DBUSINTERFACEDIR
- char* file_path = g_build_filename(DBUSINTERFACEDIR, DBUS_XML_FILENAME, NULL);
- if (file_path == NULL) {
- return NULL;
+ GResource* resource = zathura_resources_get_resource();
+ if (resource != NULL) {
+ return g_resource_lookup_data(resource, DBUS_XML_FILENAME,
+ G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
}
- girara_debug("Loading D-Bus interface data from %s.", file_path);
- char* content = girara_file_read(file_path);
- g_free(file_path);
- return content;
-#else
- girara_error("DBUSINTERFACEDIR is not defined. D-Bus interface will not be available.");
return NULL;
-#endif
}
G_DEFINE_TYPE(ZathuraDbus, zathura_dbus, G_TYPE_OBJECT)
@@ -163,7 +157,7 @@ zathura_dbus_new(zathura_t* zathura)
private_t* priv = GET_PRIVATE(dbus);
priv->zathura = zathura;
- char* xml_data = load_xml_data();
+ GBytes* xml_data = load_xml_data();
if (xml_data == NULL)
{
girara_warning("Failed to load introspection data.");
@@ -172,8 +166,8 @@ zathura_dbus_new(zathura_t* zathura)
}
GError* error = NULL;
- priv->introspection_data = g_dbus_node_info_new_for_xml(xml_data, &error);
- g_free(xml_data);
+ priv->introspection_data = g_dbus_node_info_new_for_xml((const char*) g_bytes_get_data(xml_data, NULL), &error);
+ g_bytes_unref(xml_data);
if (priv->introspection_data == NULL) {
girara_warning("Failed to parse introspection data: %s", error->message);