From 429b32fba6f5ad14db31fe2690974b57df858999 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Fri, 7 Oct 2011 18:55:01 +0000 Subject: make connect button a menu button with other profiles, also add a connection serial used to discard requests issued before a disconnect which get their callback invoked after a new one is established. add an experimental "repeater" flag on exec commands (eg. %{name}[, ]). --- src/trg-prefs.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/trg-prefs.c') diff --git a/src/trg-prefs.c b/src/trg-prefs.c index c54ed90..cf731f7 100644 --- a/src/trg-prefs.c +++ b/src/trg-prefs.c @@ -45,11 +45,17 @@ struct _TrgPrefsPrivate { enum { PREF_CHANGE, + PREF_PROFILE_CHANGE, PREFS_SIGNAL_COUNT }; static guint signals[PREFS_SIGNAL_COUNT] = { 0 }; +static void trg_prefs_profile_change_emit_signal(TrgPrefs *p) +{ + g_signal_emit(p, signals[PREF_PROFILE_CHANGE], 0); +} + void trg_prefs_changed_emit_signal(TrgPrefs *p, gchar *key) { g_signal_emit(p, signals[PREF_CHANGE], 0, key); @@ -133,6 +139,15 @@ static void trg_prefs_class_init(TrgPrefsClass *klass) { pref_changed), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + + signals[PREF_PROFILE_CHANGE] = + g_signal_new("pref-profile-changed", + G_TYPE_FROM_CLASS(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET(TrgPrefsClass, + pref_changed), NULL, + NULL, g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } static void trg_prefs_init(TrgPrefs *self) { @@ -285,6 +300,7 @@ void trg_prefs_set_profile(TrgPrefs *p, JsonObject *profile) { g_list_free(profiles); trg_prefs_changed_emit_signal(p, NULL); + trg_prefs_profile_change_emit_signal(p); } JsonObject *trg_prefs_new_profile(TrgPrefs *p) { @@ -312,6 +328,8 @@ void trg_prefs_del_profile(TrgPrefs *p, JsonObject *profile) { } g_list_free(profilesList); + + trg_prefs_profile_change_emit_signal(p); } JsonObject* trg_prefs_get_profile(TrgPrefs *p) { -- cgit v1.2.3