summaryrefslogtreecommitdiff
path: root/src/trg-client.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-19 17:32:46 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-19 17:32:46 +0000
commita04430bff79030690add518548677251816e3e71 (patch)
treecbc567bf9c2e6b44df87ab0b8f7c2889c5b5e0f3 /src/trg-client.c
parentee516bb3b42f42a1880de7b943c0e17a97da48ae (diff)
issue 155
Diffstat (limited to 'src/trg-client.c')
-rw-r--r--src/trg-client.c28
1 files changed, 25 insertions, 3 deletions
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);