From a169a5c76e983532b4a0699bfc39cd510768a923 Mon Sep 17 00:00:00 2001 From: Emanuele Aina Date: Fri, 22 Mar 2013 16:39:22 +0100 Subject: [PATCH] account-widget: Embed .ui files with GResource https://bugzilla.gnome.org/show_bug.cgi?id=696978 --- libempathy-gtk/.gitignore | 1 + libempathy-gtk/Makefile.am | 25 ++++++++-- libempathy-gtk/empathy-account-widget-irc.c | 4 +- libempathy-gtk/empathy-account-widget-sip.c | 4 +- libempathy-gtk/empathy-account-widget.c | 48 ++++++++----------- .../empathy-account-widgets.gresource.xml | 16 +++++++ libempathy-gtk/empathy-irc-network-dialog.c | 6 +-- libempathy-gtk/empathy-ui-utils.h | 2 + 8 files changed, 64 insertions(+), 42 deletions(-) create mode 100644 libempathy-gtk/empathy-account-widgets.gresource.xml diff --git a/libempathy-gtk/.gitignore b/libempathy-gtk/.gitignore index 3e3f6f05..3e651d7f 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 902a5e57..2de397a5 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 c027fb25..be9c9930 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 4568cf17..7545efb1 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 794e7d52..9fa8c1ea 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 00000000..093cb2a9 --- /dev/null +++ b/libempathy-gtk/empathy-account-widgets.gresource.xml @@ -0,0 +1,16 @@ + + + + empathy-account-widget-generic.ui + empathy-account-widget-jabber.ui + empathy-account-widget-msn.ui + empathy-account-widget-sip.ui + empathy-account-widget-local-xmpp.ui + empathy-account-widget-irc.ui + empathy-account-widget-icq.ui + empathy-account-widget-yahoo.ui + empathy-account-widget-groupwise.ui + empathy-account-widget-aim.ui + + + diff --git a/libempathy-gtk/empathy-irc-network-dialog.c b/libempathy-gtk/empathy-irc-network-dialog.c index aedb5dc7..fe26ceb3 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 e5c3aa1f..d1712f59 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 () && \ -- 2.39.2