[gnome-builder] flatpak: Reload preferences addin on installation changes
- From: Matthew Leeds <mwleeds src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] flatpak: Reload preferences addin on installation changes
- Date: Sun, 23 Apr 2017 20:51:01 +0000 (UTC)
commit 99f180e2badd85fcf9d404bf0d1d20fcca90dbbb
Author: Matthew Leeds <mleeds redhat com>
Date: Sun Apr 23 14:19:51 2017 -0500
flatpak: Reload preferences addin on installation changes
Since the application addin is already monitoring the flatpak
installations for changes, the preferences addin can just connect to a
signal and reload whenever the app addin reloads. This means the flatpak
SDKs list in the Preferences pane will stay up to date.
plugins/flatpak/gbp-flatpak-application-addin.c | 18 ++++++++++++++++++
plugins/flatpak/gbp-flatpak-preferences-addin.c | 20 ++++++++++++++++++--
2 files changed, 36 insertions(+), 2 deletions(-)
---
diff --git a/plugins/flatpak/gbp-flatpak-application-addin.c b/plugins/flatpak/gbp-flatpak-application-addin.c
index c8a554a..9b326e5 100644
--- a/plugins/flatpak/gbp-flatpak-application-addin.c
+++ b/plugins/flatpak/gbp-flatpak-application-addin.c
@@ -73,6 +73,7 @@ typedef struct
enum {
RUNTIME_ADDED,
+ RELOAD,
N_SIGNALS
};
@@ -282,6 +283,8 @@ gbp_flatpak_application_addin_reload (GbpFlatpakApplicationAddin *self)
}
}
+ g_signal_emit (self, signals[RELOAD], 0);
+
IDE_EXIT;
}
@@ -767,6 +770,21 @@ gbp_flatpak_application_addin_class_init (GbpFlatpakApplicationAddinClass *klass
0,
NULL, NULL, NULL,
G_TYPE_NONE, 1, FLATPAK_TYPE_INSTALLED_REF);
+
+ /**
+ * GbpFlatpakApplicationAddin::reload:
+ * @self: An #GbpFlatpakApplicationAddin
+ *
+ * This signal is emitted when the addin reloads, which is generally
+ * triggered by one of the flatpak installations changing, so other
+ * components can indirectly monitor that.
+ */
+ signals [RELOAD] = g_signal_new ("reload",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
}
static void
diff --git a/plugins/flatpak/gbp-flatpak-preferences-addin.c b/plugins/flatpak/gbp-flatpak-preferences-addin.c
index 1473c61..82fe1f8 100644
--- a/plugins/flatpak/gbp-flatpak-preferences-addin.c
+++ b/plugins/flatpak/gbp-flatpak-preferences-addin.c
@@ -101,8 +101,6 @@ create_row (GbpFlatpakPreferencesAddin *self,
if (gbp_flatpak_application_addin_has_runtime (app_addin, name, arch, branch))
gtk_button_set_label (GTK_BUTTON (button), _("Update"));
- /* TODO: Update label after transfer completes */
-
gtk_container_add (GTK_CONTAINER (box), button);
return box;
@@ -340,10 +338,21 @@ gbp_flatpak_preferences_addin_reload (GbpFlatpakPreferencesAddin *self)
}
static void
+app_addin_reload (GbpFlatpakPreferencesAddin *self,
+ GbpFlatpakApplicationAddin *app_addin)
+{
+ g_assert (GBP_IS_FLATPAK_PREFERENCES_ADDIN (self));
+ g_assert (GBP_IS_FLATPAK_APPLICATION_ADDIN (app_addin));
+
+ gbp_flatpak_preferences_addin_reload (self);
+}
+
+static void
gbp_flatpak_preferences_addin_load (IdePreferencesAddin *addin,
IdePreferences *preferences)
{
GbpFlatpakPreferencesAddin *self = (GbpFlatpakPreferencesAddin *)addin;
+ GbpFlatpakApplicationAddin *app_addin;
IDE_ENTRY;
@@ -355,6 +364,13 @@ gbp_flatpak_preferences_addin_load (IdePreferencesAddin *addin,
ide_preferences_add_list_group (preferences, "sdk", "flatpak-runtimes", _("Flatpak Runtimes"),
GTK_SELECTION_NONE, 0);
+ app_addin = gbp_flatpak_application_addin_get_default ();
+ g_signal_connect_object (app_addin,
+ "reload",
+ G_CALLBACK (app_addin_reload),
+ self,
+ G_CONNECT_SWAPPED);
+
gbp_flatpak_preferences_addin_reload (self);
IDE_EXIT;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]