From a04430bff79030690add518548677251816e3e71 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Wed, 19 Oct 2011 17:32:46 +0000 Subject: issue 155 --- src/trg-client.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'src/trg-client.c') diff --git a/src/trg-client.c b/src/trg-client.c index 7e06189..481156c 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -60,6 +60,7 @@ struct _TrgClientPrivate { guint min_interval; gint64 updateSerial; JsonObject *session; + JsonObject *currentProfile; gboolean ssl; float version; char *url; @@ -196,6 +197,12 @@ TrgPrefs *trg_client_get_prefs(TrgClient *tc) return priv->prefs; } +JsonObject *trg_client_get_current_profile(TrgClient *tc) +{ + TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); + return priv->currentProfile; +} + int trg_client_populate_with_settings(TrgClient * tc) { TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); @@ -262,6 +269,8 @@ int trg_client_populate_with_settings(TrgClient * tc) trg_prefs_get_bool(prefs, TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, TRG_PREFS_PROFILE); + priv->currentProfile = trg_prefs_get_profile(prefs); + #ifdef HAVE_LIBPROXY if ((pf = px_proxy_factory_new())) { char **proxies = px_proxy_factory_get_proxies(pf, priv->url); @@ -328,9 +337,12 @@ void trg_client_status_change(TrgClient *tc, gboolean connected) { TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); - if (!connected && priv->session) { - json_object_unref(priv->session); - priv->session = NULL; + if (!connected) { + if (priv->session) { + json_object_unref(priv->session); + priv->session = NULL; + } + priv->currentProfile = NULL; } } @@ -340,6 +352,16 @@ JsonObject* trg_client_get_session(TrgClient *tc) return priv->session; } +void trg_client_del_profile(TrgClient *tc, JsonObject *profile) +{ + TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); + + if (profile == priv->currentProfile) + priv->currentProfile = NULL; + + trg_prefs_del_profile(priv->prefs, profile); +} + void trg_client_thread_pool_push(TrgClient *tc, gpointer data, GError **err) { TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); -- cgit v1.2.3