[cheese] Use GResource for CSS snippet
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cheese] Use GResource for CSS snippet
- Date: Tue, 12 Nov 2013 00:12:55 +0000 (UTC)
commit 2fcb2988a0bf53b3c3a43ad000c6c0a98c79459c
Author: David King <amigadave amigadave com>
Date: Mon Nov 11 21:49:42 2013 +0000
Use GResource for CSS snippet
.gitignore | 2 ++
Makefile.am | 20 +++++++++++++++++---
configure.ac | 3 +++
data/cheese.gresource.xml | 7 +++++++
src/cheese-window.vala | 22 ++++++++++++----------
5 files changed, 41 insertions(+), 13 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 786a6b8..b537b6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,7 @@ Makefile.in*
/help/*/*.mo
/help/*/*.page
/help/*/*.stamp
+/help/*/legal.xml
!/help/C
/libcheese/cheese-enums.*
/m4/
@@ -51,6 +52,7 @@ Makefile.in*
/po/cheese.pot
/po/stamp-it
/src/*.c
+/src/cheese-resource.h
/????-report.html
/????-report.xml
/tests/cheese-test-widget
diff --git a/Makefile.am b/Makefile.am
index 0c8f85f..cf3aaac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -194,8 +194,17 @@ typelibdir = $(libdir)/girepository-1.0
typelib_DATA = Cheese-3.0.typelib
endif
+noinst_resource_files = \
+ data/cheese.css
+
+src/cheese-resource.c src/cheese-resource.h: data/cheese.gresource.xml Makefile $(noinst_resource_files)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/data --generate --c-name
cheese $<
+
bin_PROGRAMS = cheese
+nodist_cheese_SOURCES = \
+ src/cheese-resource.c
+
# cheese-main.vala must go at the end of the Vala sources.
cheese_SOURCES = \
src/cheese-application.vala \
@@ -208,6 +217,9 @@ cheese_SOURCES = \
src/thumbview/cheese-thumbnail.c \
src/thumbview/eog-thumb-nav.c
+nodist_cheese_HEADERS = \
+ src/cheese-resource.h
+
noinst_HEADERS = \
src/thumbview/cheese-thumb-view.h \
src/thumbview/cheese-thumbnail.h \
@@ -298,7 +310,6 @@ gsettings_SCHEMAS = data/org.gnome.Cheese.gschema.xml
@GSETTINGS_RULES@
dist_pkgdata_DATA = \
- data/cheese.css \
data/cheese-main-window.ui \
data/cheese-prefs.ui \
data/cheese-viewport.json
@@ -469,7 +480,8 @@ dist_noinst_DATA = \
ChangeLog.pre-git \
$(desktop_in_files) \
$(gsettings_SCHEMAS) \
- $(service_in_files) \
+ $(noinst_resource_files) \
+ data/cheese.gresource.xml \
build-aux/test-driver \
$(gtkdoc_srcdir)/cheese-docs.xml \
$(gtkdoc_srcdir)/cheese-sections.txt \
@@ -497,7 +509,9 @@ CLEANFILES = \
$(pkgconfig_DATA) \
$(enum_data) \
$(gir_DATA) \
- $(typelib_DATA)
+ $(typelib_DATA) \
+ src/cheese-resource.c \
+ src/cheese-resource.h
DISTCLEANFILES = \
libcheese_la_vala.stamp \
diff --git a/configure.ac b/configure.ac
index 92ef872..54417e5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -124,6 +124,9 @@ PKG_CHECK_MODULES([CHEESE_GTK],
$UDEV_REQUIRED
$GNOME_VIDEO_EFFECTS_REQUIRED])
+# Resources.
+AC_SUBST([GLIB_COMPILE_RESOURCES], [`$PKG_CONFIG --variable glib_compile_resources gio-2.0`])
+
# Recommend some runtime GStreamer plugins.
AC_PATH_PROGS([GST_INSPECT], [gst-inspect-1.0], [notfound])
AS_IF([test "x$GST_INSPECT" = "xnotfound"],
diff --git a/data/cheese.gresource.xml b/data/cheese.gresource.xml
new file mode 100644
index 0000000..d316bdd
--- /dev/null
+++ b/data/cheese.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix='/org/gnome/Cheese'>
+ <file>cheese.css</file>
+ </gresource>
+</gresources>
+
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
index 2d89270..e5cfb93 100644
--- a/src/cheese-window.vala
+++ b/src/cheese-window.vala
@@ -1210,16 +1210,18 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
thumb_nav = new Eog.ThumbNav (thumb_view, false);
thumbnail_popup.attach_to_widget (thumb_view, null);
- Gtk.CssProvider css;
- try
- {
- css = new Gtk.CssProvider();
- css.load_from_path (GLib.Path.build_filename (Config.PACKAGE_DATADIR, "cheese.css"));
- }
- catch (Error e)
- {
- stdout.printf ("Error: %s\n", e.message);
- }
+ Gtk.CssProvider css;
+ try
+ {
+ var file = File.new_for_uri ("resource:///org/gnome/Cheese/cheese.css");
+ css = new Gtk.CssProvider ();
+ css.load_from_file (file);
+ }
+ catch (Error e)
+ {
+ // TODO: Use parsing-error signal.
+ error ("Error parsing CSS: %s\n", e.message);
+ }
Gtk.StyleContext.add_provider_for_screen (screen, css, STYLE_PROVIDER_PRIORITY_USER);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]