aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmanuele Aina <emanuele.aina@collabora.com>2013-03-22 23:39:22 +0800
committerEmanuele Aina <emanuele.aina@collabora.com>2013-04-01 17:50:28 +0800
commita169a5c76e983532b4a0699bfc39cd510768a923 (patch)
tree5112d15ff58ffdc5989543e7e2955054c30c693a
parent788d278853ee3ac061f84b611a3290d5adc31577 (diff)
downloadgsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar.gz
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar.bz2
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar.lz
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar.xz
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.tar.zst
gsoc2013-empathy-a169a5c76e983532b4a0699bfc39cd510768a923.zip
account-widget: Embed .ui files with GResource
https://bugzilla.gnome.org/show_bug.cgi?id=696978
-rw-r--r--libempathy-gtk/.gitignore1
-rw-r--r--libempathy-gtk/Makefile.am25
-rw-r--r--libempathy-gtk/empathy-account-widget-irc.c4
-rw-r--r--libempathy-gtk/empathy-account-widget-sip.c4
-rw-r--r--libempathy-gtk/empathy-account-widget.c48
-rw-r--r--libempathy-gtk/empathy-account-widgets.gresource.xml16
-rw-r--r--libempathy-gtk/empathy-irc-network-dialog.c6
-rw-r--r--libempathy-gtk/empathy-ui-utils.h2
8 files changed, 64 insertions, 42 deletions
diff --git a/libempathy-gtk/.gitignore b/libempathy-gtk/.gitignore
index 3e3f6f051..3e651d7f4 100644
--- a/libempathy-gtk/.gitignore
+++ b/libempathy-gtk/.gitignore
@@ -1,2 +1,3 @@
+empathy-account-widgets-resources.[ch]
empathy-gtk-marshal.*
*.gladep
diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am
index 902a5e57f..2de397a57 100644
--- a/libempathy-gtk/Makefile.am
+++ b/libempathy-gtk/Makefile.am
@@ -22,6 +22,8 @@ AM_CPPFLAGS = \
$(DISABLE_DEPRECATED)
BUILT_SOURCES = \
+ empathy-account-widgets-resources.c \
+ empathy-account-widgets-resources.h \
empathy-gtk-enum-types.h \
empathy-gtk-enum-types.c
@@ -209,10 +211,7 @@ check_c_sources = \
include $(top_srcdir)/tools/check-coding-style.mk
check-local: check-coding-style
-uidir = $(datadir)/empathy
-ui_DATA = \
- empathy-contact-widget.ui \
- empathy-contact-blocking-dialog.ui \
+account_widgets_ui_files = \
empathy-account-widget-generic.ui \
empathy-account-widget-jabber.ui \
empathy-account-widget-msn.ui \
@@ -223,6 +222,12 @@ ui_DATA = \
empathy-account-widget-yahoo.ui \
empathy-account-widget-groupwise.ui \
empathy-account-widget-aim.ui \
+ $(NULL)
+
+uidir = $(datadir)/empathy
+ui_DATA = \
+ empathy-contact-widget.ui \
+ empathy-contact-blocking-dialog.ui \
empathy-status-preset-dialog.ui \
empathy-log-window.ui \
empathy-chat.ui \
@@ -267,7 +272,17 @@ empathy-gtk-enum-types.c: Makefile $(libempathy_gtk_headers)
&& cp xgen-gtc $(@F) \
&& rm -f xgen-gtc
-EXTRA_DIST = \
+account_widgets_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(srcdir) $(srcdir)/empathy-account-widgets.gresource.xml)
+
+empathy-account-widgets-resources.c: empathy-account-widgets.gresource.xml $(account_widgets_resource_files)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $<
+
+empathy-account-widgets-resources.h: empathy-account-widgets.gresource.xml $(account_widgets_resource_files)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header $<
+
+EXTRA_DIST = \
+ empathy-account-widgets.gresource.xml \
+ $(account_widgets_ui_files) \
$(ui_DATA)
if HAVE_GEOCLUE
diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c
index c027fb250..be9c99301 100644
--- a/libempathy-gtk/empathy-account-widget-irc.c
+++ b/libempathy-gtk/empathy-account-widget-irc.c
@@ -142,7 +142,7 @@ empathy_account_widget_irc_build (EmpathyAccountWidget *self,
settings = g_slice_new0 (EmpathyAccountWidgetIrc);
settings->self = self;
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"table_irc_settings", table_common_settings,
"vbox_irc", box,
"table_irc_settings", &settings->vbox_settings,
@@ -209,7 +209,7 @@ empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self,
settings = g_slice_new0 (EmpathyAccountWidgetIrc);
settings->self = self;
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_irc_simple", box,
"alignment_network_simple", &alignment,
NULL);
diff --git a/libempathy-gtk/empathy-account-widget-sip.c b/libempathy-gtk/empathy-account-widget-sip.c
index 4568cf175..7545efb11 100644
--- a/libempathy-gtk/empathy-account-widget-sip.c
+++ b/libempathy-gtk/empathy-account-widget-sip.c
@@ -113,7 +113,7 @@ empathy_account_widget_sip_build (EmpathyAccountWidget *self,
if (is_simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_sip_simple", &vbox_settings,
NULL);
@@ -133,7 +133,7 @@ empathy_account_widget_sip_build (EmpathyAccountWidget *self,
settings = g_slice_new0 (EmpathyAccountWidgetSip);
settings->self = self;
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", grid_common_settings,
"grid_advanced_sip_settings", &grid_advanced,
"vbox_sip_settings", &vbox_settings,
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 794e7d524..9fa8c1eaf 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -1060,7 +1060,7 @@ account_widget_build_generic (EmpathyAccountWidget *self,
{
GtkWidget *expander_advanced, *box;
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_generic_settings", &box,
"expander_advanced_settings", &expander_advanced,
@@ -1086,7 +1086,7 @@ account_widget_build_salut (EmpathyAccountWidget *self,
{
GtkWidget *expander_advanced, *box;
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_salut_settings", &box,
"expander_advanced_settings", &expander_advanced,
@@ -1167,7 +1167,7 @@ account_widget_build_msn (EmpathyAccountWidget *self,
if (self->priv->simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_msn_simple", &box,
NULL);
@@ -1184,7 +1184,7 @@ account_widget_build_msn (EmpathyAccountWidget *self,
}
else
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_msn_settings", &self->priv->grid_common_settings,
"vbox_msn_settings", &box,
NULL);
@@ -1323,7 +1323,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
if (self->priv->simple && service == NO_SERVICE)
{
/* Simple widget for XMPP */
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_jabber_simple", &box,
"label_id_simple", &label_id,
"label_id_create", &label_id_create,
@@ -1354,7 +1354,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
else if (self->priv->simple && service == GTALK_SERVICE)
{
/* Simple widget for Google Talk */
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_gtalk_simple", &box,
NULL);
@@ -1372,7 +1372,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
else if (self->priv->simple && service == FACEBOOK_SERVICE)
{
/* Simple widget for Facebook */
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_fb_simple", &box,
"entry_id_fb_simple", &entry_id,
NULL);
@@ -1394,7 +1394,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
ServiceInfo info = services_infos[service];
/* Full widget for XMPP, Google Talk and Facebook*/
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_jabber_settings", &box,
"spinbutton_port", &spinbutton_port,
@@ -1474,7 +1474,7 @@ account_widget_build_icq (EmpathyAccountWidget *self,
if (self->priv->simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_icq_simple", &box,
NULL);
@@ -1491,7 +1491,7 @@ account_widget_build_icq (EmpathyAccountWidget *self,
}
else
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_icq_settings", &box,
"spinbutton_port", &spinbutton_port,
@@ -1522,7 +1522,7 @@ account_widget_build_aim (EmpathyAccountWidget *self,
if (self->priv->simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_aim_simple", &box,
NULL);
@@ -1539,7 +1539,7 @@ account_widget_build_aim (EmpathyAccountWidget *self,
}
else
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_aim_settings", &box,
"spinbutton_port", &spinbutton_port,
@@ -1572,7 +1572,7 @@ account_widget_build_yahoo (EmpathyAccountWidget *self,
if (self->priv->simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_yahoo_simple", &box,
NULL);
@@ -1589,7 +1589,7 @@ account_widget_build_yahoo (EmpathyAccountWidget *self,
}
else
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_settings", &self->priv->grid_common_settings,
"vbox_yahoo_settings", &box,
NULL);
@@ -1620,7 +1620,7 @@ account_widget_build_groupwise (EmpathyAccountWidget *self,
if (self->priv->simple)
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"vbox_groupwise_simple", &box,
NULL);
@@ -1637,7 +1637,7 @@ account_widget_build_groupwise (EmpathyAccountWidget *self,
}
else
{
- self->ui_details->gui = empathy_builder_get_file (filename,
+ self->ui_details->gui = empathy_builder_get_resource (filename,
"grid_common_groupwise_settings", &self->priv->grid_common_settings,
"vbox_groupwise_settings", &box,
NULL);
@@ -1808,7 +1808,7 @@ out:
}
#define WIDGET(cm, proto) \
- { #cm, #proto, "empathy-account-widget-"#proto".ui", \
+ { #cm, #proto, ACCOUNT_WIDGETS_RESOURCES_PREFIX "/empathy-account-widget-"#proto".ui", \
account_widget_build_##proto }
static void
@@ -1904,7 +1904,7 @@ do_constructed (GObject *obj)
const char *file;
GtkWidget * (*func)(EmpathyAccountWidget *self, const gchar *filename);
} widgets [] = {
- { "salut", "local-xmpp", "empathy-account-widget-local-xmpp.ui",
+ { "salut", "local-xmpp", ACCOUNT_WIDGETS_RESOURCES_PREFIX "/empathy-account-widget-local-xmpp.ui",
account_widget_build_salut },
WIDGET (gabble, jabber),
WIDGET (haze, msn),
@@ -1928,23 +1928,15 @@ do_constructed (GObject *obj)
if (!tp_strdiff (widgets[i].cm_name, cm_name) &&
!tp_strdiff (widgets[i].protocol, protocol))
{
- gchar *filename;
-
- filename = empathy_file_lookup (widgets[i].file,
- "libempathy-gtk");
- box = widgets[i].func (self, filename);
- g_free (filename);
-
+ box = widgets[i].func (self, widgets[i].file);
break;
}
}
if (i == G_N_ELEMENTS (widgets))
{
- gchar *filename = empathy_file_lookup (
- "empathy-account-widget-generic.ui", "libempathy-gtk");
+ gchar *filename = ACCOUNT_WIDGETS_RESOURCES_PREFIX "/empathy-account-widget-generic.ui";
box = account_widget_build_generic (self, filename);
- g_free (filename);
}
gtk_container_add (GTK_CONTAINER (self), box);
diff --git a/libempathy-gtk/empathy-account-widgets.gresource.xml b/libempathy-gtk/empathy-account-widgets.gresource.xml
new file mode 100644
index 000000000..093cb2a93
--- /dev/null
+++ b/libempathy-gtk/empathy-account-widgets.gresource.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/AccountWidgets">
+ <file compressed="true">empathy-account-widget-generic.ui</file>
+ <file compressed="true">empathy-account-widget-jabber.ui</file>
+ <file compressed="true">empathy-account-widget-msn.ui</file>
+ <file compressed="true">empathy-account-widget-sip.ui</file>
+ <file compressed="true">empathy-account-widget-local-xmpp.ui</file>
+ <file compressed="true">empathy-account-widget-irc.ui</file>
+ <file compressed="true">empathy-account-widget-icq.ui</file>
+ <file compressed="true">empathy-account-widget-yahoo.ui</file>
+ <file compressed="true">empathy-account-widget-groupwise.ui</file>
+ <file compressed="true">empathy-account-widget-aim.ui</file>
+ </gresource>
+</gresources>
+
diff --git a/libempathy-gtk/empathy-irc-network-dialog.c b/libempathy-gtk/empathy-irc-network-dialog.c
index aedb5dc79..fe26ceb34 100644
--- a/libempathy-gtk/empathy-irc-network-dialog.c
+++ b/libempathy-gtk/empathy-irc-network-dialog.c
@@ -453,7 +453,6 @@ empathy_irc_network_dialog_show (EmpathyIrcNetwork *network,
GtkAdjustment *adjustment;
GtkTreeSelection *selection;
GtkTreeViewColumn *column;
- gchar *filename;
GtkWidget *sw, *toolbar;
GtkStyleContext *context;
@@ -472,9 +471,7 @@ empathy_irc_network_dialog_show (EmpathyIrcNetwork *network,
dialog->network = network;
g_object_ref (dialog->network);
- filename = empathy_file_lookup ("empathy-account-widget-irc.ui",
- "libempathy-gtk");
- gui = empathy_builder_get_file (filename,
+ gui = empathy_builder_get_resource (ACCOUNT_WIDGETS_RESOURCES_PREFIX "/empathy-account-widget-irc.ui",
"irc_network_dialog", &dialog->dialog,
"button_close", &dialog->button_close,
"entry_network", &dialog->entry_network,
@@ -487,7 +484,6 @@ empathy_irc_network_dialog_show (EmpathyIrcNetwork *network,
"scrolledwindow_network_server", &sw,
"toolbar_network_server", &toolbar,
NULL);
- g_free (filename);
store = gtk_list_store_new (4, G_TYPE_OBJECT, G_TYPE_STRING,
G_TYPE_UINT, G_TYPE_BOOLEAN);
diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h
index e5c3aa1fa..d1712f595 100644
--- a/libempathy-gtk/empathy-ui-utils.h
+++ b/libempathy-gtk/empathy-ui-utils.h
@@ -41,6 +41,8 @@
G_BEGIN_DECLS
+#define ACCOUNT_WIDGETS_RESOURCES_PREFIX "/org/gnome/AccountWidgets"
+
#define EMPATHY_RECT_IS_ON_SCREEN(x,y,w,h) ((x) + (w) > 0 && \
(y) + (h) > 0 && \
(x) < gdk_screen_width () && \