[gedit-collaboration] Use GResource
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-collaboration] Use GResource
- Date: Fri, 2 Mar 2012 21:36:11 +0000 (UTC)
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]