[gedit-collaboration] Use GResource



commit 5e93491299b084eff2436e76e3480d94299b0e36
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Fri Mar 2 22:36:10 2012 +0100

    Use GResource

 configure.ac                              |    8 ++++-
 src/Makefile.am                           |   22 +++++++-------
 src/gedit-collaboration-actions.c         |    6 +---
 src/gedit-collaboration-bookmark-dialog.c |   10 ++----
 src/gedit-collaboration-bookmark-dialog.h |    3 +-
 src/gedit-collaboration-plugin.c          |    6 +---
 src/gedit-collaboration-window-helper.c   |   11 +-----
 src/gedit-collaboration.c                 |   47 +++++++----------------------
 src/gedit-collaboration.h                 |    3 +-
 9 files changed, 39 insertions(+), 77 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 24e8e83..34eb21b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -61,7 +61,7 @@ INFINITY_REQUIRED_VERSION=0.5
 
 PKG_CHECK_MODULES(GEDIT, [
 	gedit >= $GEDIT_REQUIRED_VERSION,
-	gtk+-3.0 >= 3.0.0
+	gtk+-3.0 >= 3.3.15
 	libinfinity-0.5 >= $INFINITY_REQUIRED_VERSION
 	libinfgtk-0.5 >= $INFINITY_REQUIRED_VERSION
 	libinftextgtk-0.5 >= $INFINITY_REQUIRED_VERSION
@@ -79,6 +79,12 @@ dnl ================================================================
 GLIB_GSETTINGS
 
 dnl ================================================================
+dnl GResource stuff
+dnl ================================================================
+GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
+AC_SUBST(GLIB_COMPILE_RESOURCES)
+
+dnl ================================================================
 dnl Misc
 dnl ================================================================
 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
diff --git a/src/Makefile.am b/src/Makefile.am
index b510565..1f64362 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,7 +14,8 @@ plugin_LTLIBRARIES = libcollaboration.la
 
 BUILT_SOURCES = 						\
 	gedit-collaboration-marshal.c				\
-	gedit-collaboration-marshal.h
+	gedit-collaboration-marshal.h				\
+	gedit-collaboration-resources.c
 
 libcollaboration_la_SOURCES = \
 	$(BUILT_SOURCES)					\
@@ -54,14 +55,6 @@ libcollaboration_la_LIBADD = $(GEDIT_LIBS)
 # Plugin Info
 plugin_in_files = collaboration.plugin.desktop.in
 
-# UI files (if you use ui for your plugin, list those files here)
-uidir = $(GEDIT_PLUGINS_DATA_DIR)/collaboration
-ui_DATA = \
-	gedit-collaboration-window-helper.ui \
-	gedit-collaboration-bookmark-dialog.ui \
-	gedit-collaboration-configuration.ui \
-	gedit-collaboration-password-dialog.ui
-
 %.plugin: %.plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
 
 plugin_DATA = $(plugin_in_files:.plugin.desktop.in=.plugin)
@@ -73,10 +66,17 @@ gedit-collaboration-marshal.c: gedit-collaboration-marshal.list $(GLIB_GENMARSHA
 	$(AM_V_GEN) echo "#include \"gedit-collaboration-marshal.h\"" > $@ && \
 	$(GLIB_GENMARSHAL) $< --body --prefix=gedit_collaboration_marshal >> $@
 
+gedit-collaboration-resources.c: gedit-collaboration.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/gedit-collaboration.gresource.xml)
+	$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/gedit-collaboration.gresource.xml
+
 EXTRA_DIST = \
 	$(plugin_in_files) \
-	$(ui_DATA) \
-	gedit-collaboration-marshal.list
+	gedit-collaboration-marshal.list \
+	gedit-collaboration.gresource.xml \
+	gedit-collaboration-window-helper.ui \
+	gedit-collaboration-bookmark-dialog.ui \
+	gedit-collaboration-configuration.ui \
+	gedit-collaboration-password-dialog.ui
 
 CLEANFILES = $(plugin_DATA) $(BUILT_SOURCES)
 DISTCLEANFILES = $(plugin_DATA)
diff --git a/src/gedit-collaboration-actions.c b/src/gedit-collaboration-actions.c
index 6623aac..e7d7e08 100644
--- a/src/gedit-collaboration-actions.c
+++ b/src/gedit-collaboration-actions.c
@@ -292,12 +292,8 @@ create_bookmark_dialog (GeditCollaborationWindowHelper *helper,
                         GeditCollaborationBookmark     *bookmark)
 {
 	GtkWidget *dialog;
-	gchar *datadir;
 
-	datadir = peas_extension_base_get_data_dir (PEAS_EXTENSION_BASE (helper));
-	dialog = gedit_collaboration_bookmark_dialog_new (datadir, bookmark);
-
-	g_free (datadir);
+	dialog = gedit_collaboration_bookmark_dialog_new (bookmark);
 
 	if (dialog == NULL)
 	{
diff --git a/src/gedit-collaboration-bookmark-dialog.c b/src/gedit-collaboration-bookmark-dialog.c
index 6f3bf5f..bdfc3fd 100644
--- a/src/gedit-collaboration-bookmark-dialog.c
+++ b/src/gedit-collaboration-bookmark-dialog.c
@@ -196,12 +196,11 @@ gedit_collaboration_bookmark_dialog_init (GeditCollaborationBookmarkDialog *self
 }
 
 static GeditCollaborationBookmarkDialog *
-create_dialog (const gchar *data_dir)
+create_dialog (void)
 {
 	GtkBuilder *builder;
 
-	builder = gedit_collaboration_create_builder (data_dir,
-	                                              "gedit-collaboration-bookmark-dialog.ui");
+	builder = gedit_collaboration_create_builder ("gedit-collaboration-bookmark-dialog.ui");
 
 	if (!builder)
 	{
@@ -239,10 +238,9 @@ set_bookmark (GeditCollaborationBookmarkDialog *dialog,
 }
 
 GtkWidget *
-gedit_collaboration_bookmark_dialog_new (const gchar                *data_dir,
-                                         GeditCollaborationBookmark *bookmark)
+gedit_collaboration_bookmark_dialog_new (GeditCollaborationBookmark *bookmark)
 {
-	GtkWidget *ret = GTK_WIDGET (create_dialog (data_dir));
+	GtkWidget *ret = GTK_WIDGET (create_dialog ());
 	GeditCollaborationBookmarkDialog *dialog = GEDIT_COLLABORATION_BOOKMARK_DIALOG (ret);
 
 	gtk_dialog_add_button (GTK_DIALOG (ret),
diff --git a/src/gedit-collaboration-bookmark-dialog.h b/src/gedit-collaboration-bookmark-dialog.h
index 73a60c8..e49d1d8 100644
--- a/src/gedit-collaboration-bookmark-dialog.h
+++ b/src/gedit-collaboration-bookmark-dialog.h
@@ -35,8 +35,7 @@ struct _GeditCollaborationBookmarkDialogClass
 GType gedit_collaboration_bookmark_dialog_get_type (void) G_GNUC_CONST;
 void _gedit_collaboration_bookmark_dialog_register_type (GTypeModule *module);
 
-GtkWidget	*gedit_collaboration_bookmark_dialog_new (const gchar                *data_dir,
-                                                          GeditCollaborationBookmark *bookmark);
+GtkWidget	*gedit_collaboration_bookmark_dialog_new (GeditCollaborationBookmark *bookmark);
 
 G_END_DECLS
 
diff --git a/src/gedit-collaboration-plugin.c b/src/gedit-collaboration-plugin.c
index 3de6fcd..7b9a6a3 100644
--- a/src/gedit-collaboration-plugin.c
+++ b/src/gedit-collaboration-plugin.c
@@ -114,16 +114,12 @@ static GtkWidget *
 gedit_collaboration_plugin_create_configure_widget (PeasGtkConfigurable *configurable)
 {
 	GtkBuilder *builder;
-	gchar *datadir;
 	GtkEntry *entry;
 	GeditCollaborationColorButton *color_button;
 	GeditCollaborationUser *user;
 	GtkWidget *ret;
 
-	datadir = peas_extension_base_get_data_dir (PEAS_EXTENSION_BASE (configurable));
-	builder = gedit_collaboration_create_builder (datadir,
-	                                              "gedit-collaboration-configuration.ui");
-	g_free (datadir);
+	builder = gedit_collaboration_create_builder ("gedit-collaboration-configuration.ui");
 
 	if (!builder)
 	{
diff --git a/src/gedit-collaboration-window-helper.c b/src/gedit-collaboration-window-helper.c
index 3670f6a..3af94d5 100644
--- a/src/gedit-collaboration-window-helper.c
+++ b/src/gedit-collaboration-window-helper.c
@@ -963,13 +963,9 @@ show_password_dialog (GeditCollaborationWindowHelper *helper,
 	gchar *name;
 	gchar *username;
 	gchar *remotename;
-	gchar *datadir;
 	PasswordInfo *info;
 
-	datadir = peas_extension_base_get_data_dir (PEAS_EXTENSION_BASE (helper));
-	builder = gedit_collaboration_create_builder (datadir,
-	                                              "gedit-collaboration-password-dialog.ui");
-	g_free (datadir);
+	builder = gedit_collaboration_create_builder ("gedit-collaboration-password-dialog.ui");
 
 	if (!builder)
 	{
@@ -1555,11 +1551,8 @@ build_ui (GeditCollaborationWindowHelper *helper)
 	GtkWidget *image;
 	GtkBuilder *builder;
 	GtkWidget *paned;
-	gchar *datadir;
 
-	datadir = peas_extension_base_get_data_dir (PEAS_EXTENSION_BASE (helper));
-	builder = gedit_collaboration_create_builder (datadir, XML_UI_FILE);
-	g_free (datadir);
+	builder = gedit_collaboration_create_builder (XML_UI_FILE);
 
 	if (!builder)
 	{
diff --git a/src/gedit-collaboration.c b/src/gedit-collaboration.c
index c058c57..b9cee5f 100644
--- a/src/gedit-collaboration.c
+++ b/src/gedit-collaboration.c
@@ -67,55 +67,30 @@ gedit_collaboration_rgba_to_hue (GdkRGBA *rgba)
 	return h;
 }
 
-static GtkBuilder *
-try_create_builder (const gchar  *data_dir,
-                    const gchar  *filename,
-                    GError      **error)
-{
-	GtkBuilder *builder;
-	gchar *path;
-
-	builder = gtk_builder_new ();
-	gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
-
-	path = g_build_filename (data_dir, filename, NULL);
-
-	if (!gtk_builder_add_from_file (builder, path, error))
-	{
-		g_object_unref (builder);
-		builder = NULL;
-	}
-
-	g_free (path);
-	return builder;
-}
-
 GtkBuilder *
-gedit_collaboration_create_builder (const gchar *data_dir,
-                                    const gchar *filename)
+gedit_collaboration_create_builder (const gchar *resource)
 {
 	GtkBuilder *builder;
+	gchar *full_resource;
 	GError *error = NULL;
 
-	builder = try_create_builder (data_dir, filename, NULL);
+	builder = gtk_builder_new ();
+	gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
 
-	if (builder == NULL)
-	{
-		builder = try_create_builder (GEDIT_PLUGINS_DATA_DIR "/collaboration",
-		                              filename,
-		                              &error);
-	}
+	full_resource = g_strdup_printf ("/org/gnome/gedit/plugins/collaboration/ui/%s",
+	                                 resource);
 
-	if (builder == NULL)
+	if (!gtk_builder_add_from_resource (builder, full_resource, &error))
 	{
-		g_warning ("Could not construct builder for file %s/%s: %s",
-		           data_dir,
-		           filename,
+		g_warning ("Could not construct builder for resource %s: %s",
+		           resource,
 		           error->message);
 
 		g_error_free (error);
 	}
 
+	g_free (full_resource);
+
 	return builder;
 }
 
diff --git a/src/gedit-collaboration.h b/src/gedit-collaboration.h
index cbe0c86..0278a7b 100644
--- a/src/gedit-collaboration.h
+++ b/src/gedit-collaboration.h
@@ -26,8 +26,7 @@ void gedit_collaboration_get_sv (GtkWidget *widget,
 void gedit_collaboration_hue_to_rgba (gdouble hue, GdkRGBA *rgba);
 gdouble gedit_collaboration_rgba_to_hue (GdkRGBA *rgba);
 
-GtkBuilder *gedit_collaboration_create_builder (const gchar *data_dir,
-                                                const gchar *filename);
+GtkBuilder *gedit_collaboration_create_builder (const gchar *resource);
 
 gchar *gedit_collaboration_generate_new_name (const gchar *name,
                                               gint        *name_failed_counter);



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