[nautilus-ideviceinfo] Use GResource to load .ui files



commit def9909a1e441e3d8db52ecf8e25076904759201
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Feb 4 17:28:49 2015 +0100

    Use GResource to load .ui files

 src/Makefile.am                        |   12 +++++++++-
 src/ideviceinfo-property-page.c        |   35 +++++++++++++++----------------
 src/nautilus-ideviceinfo.gresource.xml |    6 +++++
 3 files changed, 33 insertions(+), 20 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index f15decc..57b631f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,8 +19,10 @@ AM_CFLAGS = \
        $(providerinfo_CFLAGS) \
        $(libnautilusextension_CFLAGS)
 
+BUILT_SOURCES = nautilus-ideviceinfo-resources.c nautilus-ideviceinfo-resources.h
+
 noinst_LTLIBRARIES = libideviceinfo.la
-libideviceinfo_la_SOURCES = ideviceinfo-property-page.c ideviceinfo-property-page.h rb-segmented-bar.h 
rb-segmented-bar.c
+libideviceinfo_la_SOURCES = ideviceinfo-property-page.c ideviceinfo-property-page.h rb-segmented-bar.h 
rb-segmented-bar.c $(BUILT_SOURCES)
 libideviceinfo_la_LIBADD = $(WIDGET_LIBS) $(libgpod_LIBS) $(libxml_LIBS)
 
 noinst_PROGRAMS = test-property-tab test-rb-segmented-bar
@@ -43,5 +45,11 @@ libnautilus_ideviceinfo_la_SOURCES = \
 libnautilus_ideviceinfo_la_LDFLAGS = -module -avoid-version
 libnautilus_ideviceinfo_la_LIBADD  = $(libnautilusextension_LIBS) libideviceinfo.la
 
+resource_files = $(shell glib-compile-resources --sourcedir=$(srcdir) --generate-dependencies 
$(srcdir)/nautilus-ideviceinfo.gresource.xml)
+nautilus-ideviceinfo-resources.c: nautilus-ideviceinfo.gresource.xml $(resource_files)
+       $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-source --c-name 
nautilus_ideviceinfo $<
+nautilus-ideviceinfo-resources.h: nautilus-ideviceinfo.gresource.xml $(resource_files)
+       $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-header --c-name 
nautilus_ideviceinfo $<
+
 nautilus_extension_DATA = nautilus-ideviceinfo.ui
-EXTRA_DIST=$(nautilus_extension_DATA)
+EXTRA_DIST= $(resource_files) nautilus-ideviceinfo.gresource.xml
diff --git a/src/ideviceinfo-property-page.c b/src/ideviceinfo-property-page.c
index 766658d..5c3aa35 100644
--- a/src/ideviceinfo-property-page.c
+++ b/src/ideviceinfo-property-page.c
@@ -27,6 +27,7 @@
 #include <locale.h>
 
 #include "ideviceinfo-property-page.h"
+#include "nautilus-ideviceinfo-resources.h"
 
 #include <libnautilus-extension/nautilus-property-page-provider.h>
 
@@ -728,35 +729,33 @@ nautilus_ideviceinfo_page_init (NautilusIdeviceinfoPage *di)
 {
        GtkBuilder *builder;
        GtkWidget *container;
+       GtkAlignment *align;
 
        di->priv = G_TYPE_INSTANCE_GET_PRIVATE (di, NAUTILUS_TYPE_IDEVICEINFO_PAGE, 
NautilusIdeviceinfoPagePrivate);
 
        builder = gtk_builder_new();
        gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
-       gtk_builder_add_from_file (builder, UIFILE, NULL);
+       g_resources_register (nautilus_ideviceinfo_get_resource ());
+       gtk_builder_add_from_resource (builder, "/org/gnome/nautilus-ideviceinfo/nautilus-ideviceinfo.ui", 
NULL);
        gtk_builder_connect_signals (builder, NULL);
 
        container = GTK_WIDGET(gtk_builder_get_object(builder, "ideviceinfo"));
-       if (!container) {
-               g_object_unref (G_OBJECT(builder));
-               container = gtk_label_new(g_strdup_printf(_("There was an error loading '%s'.\nConsider 
reinstalling the application."), UIFILE));
-       } else {
-               GtkWidget *align;
+       g_assert (container);
 
-               di->priv->builder = builder;
-               g_object_ref (container);
+       di->priv->builder = builder;
+       g_object_ref (container);
 
-               /* Add segmented bar */
-               di->priv->segbar = rb_segmented_bar_new();
-               g_object_set(G_OBJECT(di->priv->segbar),
-                            "show-reflection", TRUE,
-                            "show-labels", TRUE,
-                            NULL);
-               gtk_widget_show(di->priv->segbar);
+       /* Add segmented bar */
+       di->priv->segbar = rb_segmented_bar_new();
+       g_object_set(G_OBJECT(di->priv->segbar),
+                    "show-reflection", TRUE,
+                    "show-labels", TRUE,
+                    NULL);
+       gtk_widget_show(di->priv->segbar);
+
+       align = GTK_ALIGNMENT(gtk_builder_get_object (di->priv->builder, "disk_usage"));
+       gtk_container_add(GTK_CONTAINER(align), di->priv->segbar);
 
-               align = GTK_WIDGET(gtk_builder_get_object (di->priv->builder, "disk_usage"));
-               gtk_container_add(GTK_CONTAINER(align), di->priv->segbar);
-       }
        gtk_widget_show(container);
        gtk_container_add(GTK_CONTAINER(di), container);
 }
diff --git a/src/nautilus-ideviceinfo.gresource.xml b/src/nautilus-ideviceinfo.gresource.xml
new file mode 100644
index 0000000..64bdcc5
--- /dev/null
+++ b/src/nautilus-ideviceinfo.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/nautilus-ideviceinfo">
+    <file preprocess="xml-stripblanks">nautilus-ideviceinfo.ui</file>
+  </gresource>
+</gresources>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]