diff options
author | raveit65 <[email protected]> | 2018-07-23 19:29:24 +0200 |
---|---|---|
committer | raveit65 <[email protected]> | 2018-07-27 14:47:16 +0200 |
commit | 6d164b4f423ddba1f5433e078bbfc4a8e6f514bf (patch) | |
tree | eb0cbb0a51ef6928813c7243bda26dc206e43377 /src | |
parent | e12f28519946136a91ab09e1f5072c6d6e49f00d (diff) | |
download | eom-6d164b4f423ddba1f5433e078bbfc4a8e6f514bf.tar.bz2 eom-6d164b4f423ddba1f5433e078bbfc4a8e6f514bf.tar.xz |
Initial GResource migration
Embedding UI data files as GResource makes several things easier.
The compiled resources need to be linked directly with the binary
as they won't be available if linked with the embedded libeom.
Starting with eom.css and eom-ui.xml
inspired from:
https://gitlab.gnome.org/GNOME/eog/commit/94004b4
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 10 | ||||
-rw-r--r-- | src/eom-window.c | 6 | ||||
-rw-r--r-- | src/eom.gresource.xml | 10 | ||||
-rw-r--r-- | src/main.c | 8 |
4 files changed, 27 insertions, 7 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 753505a..13f890a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -157,7 +157,9 @@ libeom_la_LIBADD += \ $(X11_LIBS) endif -eom_SOURCES = main.c +eom_SOURCES = \ + main.c \ + eom-resources.c eom_CFLAGS = \ -I$(top_srcdir)/cut-n-paste/toolbar-editor \ @@ -177,8 +179,13 @@ eom_LDADD = \ BUILT_SOURCES = \ eom-enum-types.c \ eom-enum-types.h \ + eom-resources.c \ $(MARSHAL_OUTPUT) +eom-resources.c: eom.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir)/data --generate-dependencies eom.gresource.xml) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) "$<" --target=$@ \ + --sourcedir=$(top_srcdir)/data --c-name _eom --generate-source + eom-enum-types.h: eom-enum-types.h.template $(INST_H_FILES) $(GLIB_MKENUMS) $(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) --template eom-enum-types.h.template $(INST_H_FILES)) > $@ @@ -192,6 +199,7 @@ eom-marshal.c: eom-marshal.list $(GLIB_GENMARSHAL) $(AM_V_GEN)$(GLIB_GENMARSHAL) $< --body --header --prefix=eom_marshal > $@ EXTRA_DIST = \ + eom.gresource.xml \ eom-enum-types.h.template \ eom-enum-types.c.template \ eom-marshal.list diff --git a/src/eom-window.c b/src/eom-window.c index 754d84d..e205aa5 100644 --- a/src/eom-window.c +++ b/src/eom-window.c @@ -4380,9 +4380,9 @@ eom_window_construct_ui (EomWindow *window) gtk_ui_manager_insert_action_group (priv->ui_mgr, priv->actions_collection, 0); - if (!gtk_ui_manager_add_ui_from_file (priv->ui_mgr, - EOM_DATA_DIR"/eom-ui.xml", - &error)) { + if (!gtk_ui_manager_add_ui_from_resource (priv->ui_mgr, + "/org/mate/eom/ui/eom-ui.xml", + &error)) { g_warning ("building menus failed: %s", error->message); g_error_free (error); } diff --git a/src/eom.gresource.xml b/src/eom.gresource.xml new file mode 100644 index 0000000..3c92450 --- /dev/null +++ b/src/eom.gresource.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gresources> + <gresource prefix="/org/mate/eom/ui"> + <file>eom.css</file> + <file compressed="true" preprocess="xml-stripblanks">eom-ui.xml</file> + </gresource> +</gresources> + + + @@ -96,6 +96,7 @@ main (int argc, char **argv) { GError *error = NULL; GOptionContext *ctx; + GFile *css_file; GtkCssProvider *provider; bindtextdomain (GETTEXT_PACKAGE, EOM_LOCALE_DIR); @@ -140,10 +141,11 @@ main (int argc, char **argv) eom_thumbnail_init (); /* Load special style properties for EomThumbView's scrollbar */ + css_file = g_file_new_for_uri ("resource:///org/mate/eom/ui/eom.css"); provider = gtk_css_provider_new (); - if (G_UNLIKELY (!gtk_css_provider_load_from_path(provider, - EOM_CSS_FILE_PATH, - &error))) + if (G_UNLIKELY (!gtk_css_provider_load_from_file(provider, + css_file, + &error))) { g_critical ("Could not load CSS data: %s", error->message); g_clear_error (&error); |