From 94e0ef33db995473e423527fa9ff8f6ddcd60a93 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 20 Apr 2022 09:34:31 +0200 Subject: [PATCH] nm: Load GtkBuilder data from resource instead of file This makes it easier to build a GTK4 version later. --- src/frontends/gnome/.gitignore | 2 ++ src/frontends/gnome/configure.ac | 1 + src/frontends/gnome/properties/Makefile.am | 28 +++++++++++++++---- .../nm-strongswan-dialog.gresource.xml | 6 ++++ .../gnome/properties/nm-strongswan.c | 11 ++------ 5 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 src/frontends/gnome/properties/nm-strongswan-dialog.gresource.xml diff --git a/src/frontends/gnome/.gitignore b/src/frontends/gnome/.gitignore index 386bd1eb2e..67309cafb6 100644 --- a/src/frontends/gnome/.gitignore +++ b/src/frontends/gnome/.gitignore @@ -11,3 +11,5 @@ config.guess.cdbs-orig config.sub.cdbs-orig NetworkManager-strongswan.metainfo.xml NetworkManager-strongswan.pot +properties/nm-strongswan-resources.c +properties/nm-strongswan-resources.h \ No newline at end of file diff --git a/src/frontends/gnome/configure.ac b/src/frontends/gnome/configure.ac index 8dd57ed882..61a9422313 100644 --- a/src/frontends/gnome/configure.ac +++ b/src/frontends/gnome/configure.ac @@ -15,6 +15,7 @@ AM_PROG_CC_C_O AC_PROG_INSTALL AC_PROG_LIBTOOL PKG_PROG_PKG_CONFIG +AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources) dnl dnl Required headers diff --git a/src/frontends/gnome/properties/Makefile.am b/src/frontends/gnome/properties/Makefile.am index 3906872527..0b4ccd77ef 100644 --- a/src/frontends/gnome/properties/Makefile.am +++ b/src/frontends/gnome/properties/Makefile.am @@ -1,15 +1,23 @@ nm_plugin_LTLIBRARIES = libnm-vpn-plugin-strongswan.la +nm-strongswan-resources.h: nm-strongswan-dialog.gresource.xml + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir) \ + --generate-header --internal + +nm-strongswan-resources.c: nm-strongswan-dialog.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/nm-strongswan-dialog.gresource.xml) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir) \ + --generate-source --internal + +nodist_libnm_vpn_plugin_strongswan_la_SOURCES = \ + nm-strongswan-resources.c \ + nm-strongswan-resources.h + libnm_vpn_plugin_strongswan_la_SOURCES = \ nm-strongswan.c \ nm-strongswan.h -uidir = $(datadir)/gnome-vpn-properties/strongswan -ui_DATA = nm-strongswan-dialog.ui - common_CFLAGS = \ $(GTK_CFLAGS) \ - -DUIDIR=\""$(uidir)"\" \ -DG_DISABLE_DEPRECATED \ -DGDK_DISABLE_DEPRECATED @@ -26,4 +34,14 @@ libnm_vpn_plugin_strongswan_la_LIBADD = \ libnm_vpn_plugin_strongswan_la_LDFLAGS = \ -avoid-version -EXTRA_DIST = $(ui_DATA) +BUILT_SOURCES = \ + nm-strongswan-resources.c \ + nm-strongswan-resources.h + +CLEANFILES = \ + nm-strongswan-resources.c \ + nm-strongswan-resources.h + +EXTRA_DIST = \ + nm-strongswan-dialog.ui \ + nm-strongswan-dialog.gresource.xml diff --git a/src/frontends/gnome/properties/nm-strongswan-dialog.gresource.xml b/src/frontends/gnome/properties/nm-strongswan-dialog.gresource.xml new file mode 100644 index 0000000000..2e4e167824 --- /dev/null +++ b/src/frontends/gnome/properties/nm-strongswan-dialog.gresource.xml @@ -0,0 +1,6 @@ + + + + nm-strongswan-dialog.ui + + diff --git a/src/frontends/gnome/properties/nm-strongswan.c b/src/frontends/gnome/properties/nm-strongswan.c index e42074ab64..e78d087ce0 100644 --- a/src/frontends/gnome/properties/nm-strongswan.c +++ b/src/frontends/gnome/properties/nm-strongswan.c @@ -36,6 +36,8 @@ #define STRONGSWAN_PLUGIN_DESC _("IPsec with the IKEv2 key exchange protocol.") #define STRONGSWAN_PLUGIN_SERVICE "org.freedesktop.NetworkManager.strongswan" #define NM_DBUS_SERVICE_STRONGSWAN "org.freedesktop.NetworkManager.strongswan" +#define NM_DBUS_PATH_STRONGSWAN "/org/freedesktop/NetworkManager/strongswan" +#define STRONGSWAN_UI_RESOURCE NM_DBUS_PATH_STRONGSWAN "/nm-strongswan-dialog.ui" /************** plugin class **************/ @@ -676,7 +678,6 @@ nm_vpn_plugin_ui_widget_interface_new (NMConnection *connection, GError **error) { NMVpnEditor *object; StrongswanPluginUiWidgetPrivate *priv; - char *ui_file; if (error) g_return_val_if_fail (*error == NULL, NULL); @@ -688,22 +689,16 @@ nm_vpn_plugin_ui_widget_interface_new (NMConnection *connection, GError **error) } priv = STRONGSWAN_PLUGIN_UI_WIDGET_GET_PRIVATE ((StrongswanPluginUiWidget*)object); - ui_file = g_strdup_printf ("%s/%s", UIDIR, "nm-strongswan-dialog.ui"); priv->builder = gtk_builder_new (); gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE); - if (!gtk_builder_add_from_file (priv->builder, ui_file, error)) { + if (!gtk_builder_add_from_resource (priv->builder, STRONGSWAN_UI_RESOURCE, error)) { g_warning ("Couldn't load builder file: %s", error && *error ? (*error)->message : "(unknown)"); - g_clear_error (error); - g_set_error (error, STRONGSWAN_PLUGIN_UI_ERROR, 0, - "could not load required resources at %s", ui_file); - g_free (ui_file); g_object_unref (object); return NULL; } - g_free (ui_file); priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "strongswan-vbox") ); if (!priv->widget) { -- 2.47.2