Moved logins to accounts module

This commit is contained in:
James Booth
2012-12-02 01:29:42 +00:00
parent 30e4786180
commit 6826a66f85
8 changed files with 153 additions and 76 deletions

View File

@@ -41,7 +41,6 @@ static gchar *prefs_loc;
static GKeyFile *prefs;
gint log_maxsize = 0;
static PAutocomplete login_ac;
static PAutocomplete boolean_choice_ac;
static void _save_prefs(void);
@@ -52,28 +51,12 @@ prefs_load(void)
GError *err;
log_info("Loading preferences");
login_ac = p_autocomplete_new();
prefs_loc = files_get_preferences_file();
prefs = g_key_file_new();
g_key_file_load_from_file(prefs, prefs_loc, G_KEY_FILE_KEEP_COMMENTS,
NULL);
// create the logins searchable list for autocompletion
gsize njids;
gchar **jids =
g_key_file_get_string_list(prefs, "connections", "logins", &njids, NULL);
gsize i;
for (i = 0; i < njids; i++) {
p_autocomplete_add(login_ac, strdup(jids[i]));
}
for (i = 0; i < njids; i++) {
free(jids[i]);
}
free(jids);
err = NULL;
log_maxsize = g_key_file_get_integer(prefs, "log", "maxsize", &err);
if (err != NULL) {
@@ -89,23 +72,10 @@ prefs_load(void)
void
prefs_close(void)
{
p_autocomplete_clear(login_ac);
p_autocomplete_clear(boolean_choice_ac);
g_key_file_free(prefs);
}
char *
prefs_find_login(char *prefix)
{
return p_autocomplete_complete(login_ac, prefix);
}
void
prefs_reset_login_search(void)
{
p_autocomplete_reset(login_ac);
}
char *
prefs_autocomplete_boolean_choice(char *prefix)
{
@@ -414,48 +384,6 @@ prefs_set_autoaway_check(gboolean value)
_save_prefs();
}
void
prefs_add_login(const char *jid)
{
gsize njids;
gchar **jids =
g_key_file_get_string_list(prefs, "connections", "logins", &njids, NULL);
// no logins remembered yet
if (jids == NULL) {
njids = 1;
jids = (gchar**) g_malloc(sizeof(gchar *) * 2);
jids[0] = g_strdup(jid);
jids[1] = NULL;
g_key_file_set_string_list(prefs, "connections", "logins",
(const gchar * const *)jids, njids);
_save_prefs();
g_strfreev(jids);
return;
} else {
gsize i;
for (i = 0; i < njids; i++) {
if (strcmp(jid, jids[i]) == 0) {
g_strfreev(jids);
return;
}
}
// jid not found, add to the list
jids = (gchar **) g_realloc(jids, (sizeof(gchar *) * (njids+2)));
jids[njids] = g_strdup(jid);
njids++;
jids[njids] = NULL;
g_key_file_set_string_list(prefs, "connections", "logins",
(const gchar * const *)jids, njids);
_save_prefs();
g_strfreev(jids);
return;
}
}
gboolean
prefs_get_showsplash(void)
{