/soc/2015/akronix/master: e8e13e8e8fe1: merged account related m...

Abel 'Akronix' Serrano Juste <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: e8e13e8e8fe16c2f76ffc53b467f294ab4e27720
Author:	 Abel 'Akronix' Serrano Juste <[email protected]>
Date:	 2015-06-25 02:30 +0200
Branch:	 release-2.x.y
URL: https://hg.pidgin.im/soc/2015/akronix/master/rev/e8e13e8e8fe1

Description:

merged account related management from Instantbird.

diffstat:

 libpurple/account.c |  28 ++++++++++++++++++++++++++--
 libpurple/account.h |   4 ++++
 2 files changed, 30 insertions(+), 2 deletions(-)

diffs (108 lines):

diff --git a/libpurple/account.c b/libpurple/account.c
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -41,6 +41,7 @@
 #include "util.h"
 #include "xmlnode.h"
 
+
 typedef struct
 {
 	PurpleConnectionErrorInfo *current_error;
@@ -2036,6 +2037,7 @@ void
 purple_account_set_int(PurpleAccount *account, const char *name, int value)
 {
 	PurpleAccountSetting *setting;
+  PurpleAccountUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2046,6 +2048,11 @@ purple_account_set_int(PurpleAccount *ac
 	setting->value.integer = value;
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
+  
+  ui_ops = purple_accounts_get_ui_ops();
+  
+  if (ui_ops != NULL && ui_ops->set_int != NULL)
+		ui_ops->set_int(account, name, value);
 
 	schedule_accounts_save();
 }
@@ -2055,6 +2062,7 @@ purple_account_set_string(PurpleAccount 
 						const char *value)
 {
 	PurpleAccountSetting *setting;
+	PurpleAccountUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2065,6 +2073,11 @@ purple_account_set_string(PurpleAccount 
 	setting->value.string = g_strdup(value);
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
+	
+	ui_ops = purple_accounts_get_ui_ops();
+  
+  if (ui_ops != NULL && ui_ops->set_string != NULL)
+		ui_ops->set_string(account, name, value);
 
 	schedule_accounts_save();
 }
@@ -2073,6 +2086,7 @@ void
 purple_account_set_bool(PurpleAccount *account, const char *name, gboolean value)
 {
 	PurpleAccountSetting *setting;
+	PurpleAccountUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2084,6 +2098,11 @@ purple_account_set_bool(PurpleAccount *a
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
 
+	ui_ops = purple_accounts_get_ui_ops();
+  
+  if (ui_ops != NULL && ui_ops->set_bool != NULL)
+		ui_ops->set_bool(account, name, value);
+
 	schedule_accounts_save();
 }
 
@@ -2455,6 +2474,7 @@ purple_account_get_string(const PurpleAc
 						const char *default_value)
 {
 	PurpleAccountSetting *setting;
+	const char *value;
 
 	g_return_val_if_fail(account != NULL, default_value);
 	g_return_val_if_fail(name    != NULL, default_value);
@@ -2465,8 +2485,12 @@ purple_account_get_string(const PurpleAc
 		return default_value;
 
 	g_return_val_if_fail(setting->type == PURPLE_PREF_STRING, default_value);
-
-	return setting->value.string;
+	
+	value = setting->value.string;
+	if (value == NULL || !*value)
+		return default_value;
+	
+	return value;
 }
 
 gboolean
diff --git a/libpurple/account.h b/libpurple/account.h
--- a/libpurple/account.h
+++ b/libpurple/account.h
@@ -115,6 +115,10 @@ struct _PurpleAccountUiOps
 	 */
 	void (*close_account_request)(void *ui_handle);
 
+	void (*set_int)(PurpleAccount *account, const char *name, int value);
+	void (*set_string)(PurpleAccount *account, const char *name, const char *value);
+	void (*set_bool)(PurpleAccount *account, const char *name, gboolean value);
+
 	void (*_purple_reserved1)(void);
 	void (*_purple_reserved2)(void);
 	void (*_purple_reserved3)(void);

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.