finch/gntaccount.c

Wed, 30 May 2007 06:23:06 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Wed, 30 May 2007 06:23:06 +0000
changeset 17857
bc85241727f8
parent 17848
7936a596a6fd
child 18108
cb8669f16994
permissions
-rw-r--r--

If there's no account at startup, sohw the 'New Account' dialog too.

14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
1 /**
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
2 * @file gntaccount.c GNT Account API
16255
fa61ee19f526 Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@pidgin.im>
parents: 15931
diff changeset
3 * @ingroup finch
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
4 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15906
diff changeset
5 * finch
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
6 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15906
diff changeset
7 * Finch is the legal property of its developers, whose names are too numerous
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
9 * source distribution.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
10 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
11 * This program is free software; you can redistribute it and/or modify
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
12 * it under the terms of the GNU General Public License as published by
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
14 * (at your option) any later version.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
15 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
16 * This program is distributed in the hope that it will be useful,
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
19 * GNU General Public License for more details.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
20 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
21 * You should have received a copy of the GNU General Public License
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
22 * along with this program; if not, write to the Free Software
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14484
diff changeset
24 */
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
25 #include <gnt.h>
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
26 #include <gntbox.h>
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27 #include <gntbutton.h>
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
28 #include <gntcheckbox.h>
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
29 #include <gntcombobox.h>
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
30 #include <gntentry.h>
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31 #include <gntlabel.h>
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
32 #include <gntline.h>
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
33 #include <gnttree.h>
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
34 #include <gntwindow.h>
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
35
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
36 #include <account.h>
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
37 #include <accountopt.h>
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38 #include <connection.h>
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39 #include <notify.h>
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
40 #include <plugin.h>
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
41 #include <request.h>
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
43 #include "gntaccount.h"
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
44 #include "gntblist.h"
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
45 #include "finch.h"
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
47 #include <string.h>
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
48
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49 typedef struct
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
51 GntWidget *window;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52 GntWidget *tree;
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
53 } FinchAccountList;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
54
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
55 static FinchAccountList accounts;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
56
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
57 typedef struct
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
58 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
59 PurpleAccount *account; /* NULL for a new account */
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
60
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
61 GntWidget *window;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
62
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
63 GntWidget *protocol;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
64 GntWidget *screenname;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
65 GntWidget *password;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
66 GntWidget *alias;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
67
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
68 GntWidget *splits;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
69 GList *split_entries;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
70
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
71 GList *prpl_entries;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
72 GntWidget *prpls;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
73
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
74 GntWidget *newmail;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
75 GntWidget *remember;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
76 } AccountEditDialog;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
77
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
78 /* This is necessary to close an edit-dialog when an account is deleted */
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
79 static GList *accountdialogs;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
80
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
81 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
82 account_add(PurpleAccount *account)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
83 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
84 gnt_tree_add_choice(GNT_TREE(accounts.tree), account,
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
85 gnt_tree_create_row(GNT_TREE(accounts.tree),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
86 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
87 purple_account_get_protocol_name(account)),
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
88 NULL, NULL);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
89 gnt_tree_set_choice(GNT_TREE(accounts.tree), account,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
90 purple_account_get_enabled(account, FINCH_UI));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
91 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
92
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
93 static void
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
94 edit_dialog_destroy(AccountEditDialog *dialog)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
95 {
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
96 accountdialogs = g_list_remove(accountdialogs, dialog);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
97 g_list_free(dialog->prpl_entries);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
98 g_list_free(dialog->split_entries);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
99 g_free(dialog);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
100 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
101
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
102 static void
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
103 save_account_cb(AccountEditDialog *dialog)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
104 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
105 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
106 PurplePlugin *plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
107 PurplePluginProtocolInfo *prplinfo;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
108 const char *value;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
109 GString *username;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
110
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
111 /* XXX: Do some error checking first. */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
112
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
113 plugin = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(dialog->protocol));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
114 prplinfo = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
115
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
116 /* Screenname && user-splits */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
117 value = gnt_entry_get_text(GNT_ENTRY(dialog->screenname));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
118
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
119 if (value == NULL || *value == '\0')
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
120 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
121 purple_notify_error(NULL, _("Error"), _("Account was not added"),
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
122 _("Screenname of an account must be non-empty."));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
123 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
124 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
125
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
126 username = g_string_new(value);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
127
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
128 if (prplinfo != NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
129 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
130 GList *iter, *entries;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
131 for (iter = prplinfo->user_splits, entries = dialog->split_entries;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
132 iter && entries; iter = iter->next, entries = entries->next)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
133 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
134 PurpleAccountUserSplit *split = iter->data;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
135 GntWidget *entry = entries->data;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
136
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
137 value = gnt_entry_get_text(GNT_ENTRY(entry));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
138 if (value == NULL || *value == '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
139 value = purple_account_user_split_get_default_value(split);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
140 g_string_append_printf(username, "%c%s",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
141 purple_account_user_split_get_separator(split),
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
142 value);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
143 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
144 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
145
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
146 if (dialog->account == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
147 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
148 account = purple_account_new(username->str, purple_plugin_get_id(plugin));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
149 purple_accounts_add(account);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
150 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
151 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
152 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
153 account = dialog->account;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
154
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
155 /* Protocol */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
156 purple_account_set_protocol_id(account, purple_plugin_get_id(plugin));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
157 purple_account_set_username(account, username->str);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
158 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
159 g_string_free(username, TRUE);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
160
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
161 /* Alias */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
162 value = gnt_entry_get_text(GNT_ENTRY(dialog->alias));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
163 if (value && *value)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
164 purple_account_set_alias(account, value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
165
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
166 /* Remember password and password */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
167 purple_account_set_remember_password(account,
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
168 gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->remember)));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
169 value = gnt_entry_get_text(GNT_ENTRY(dialog->password));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
170 if (value && *value && purple_account_get_remember_password(account))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
171 purple_account_set_password(account, value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
172 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
173 purple_account_set_password(account, NULL);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
174
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
175 /* Mail notification */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
176 purple_account_set_check_mail(account,
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
177 gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->newmail)));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
178
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
179 /* Protocol options */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
180 if (prplinfo)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
181 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
182 GList *iter, *entries;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
183
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
184 for (iter = prplinfo->protocol_options, entries = dialog->prpl_entries;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
185 iter && entries; iter = iter->next, entries = entries->next)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
186 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
187 PurpleAccountOption *option = iter->data;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
188 GntWidget *entry = entries->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
189 PurplePrefType type = purple_account_option_get_type(option);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
190 const char *setting = purple_account_option_get_setting(option);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
191
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
192 if (type == PURPLE_PREF_STRING)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
193 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
194 const char *value = gnt_entry_get_text(GNT_ENTRY(entry));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
195 purple_account_set_string(account, setting, value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
196 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
197 else if (type == PURPLE_PREF_INT)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
198 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
199 const char *str = gnt_entry_get_text(GNT_ENTRY(entry));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
200 int value = 0;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
201 if (str)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
202 value = atoi(str);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
203 purple_account_set_int(account, setting, value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
204 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
205 else if (type == PURPLE_PREF_BOOLEAN)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
206 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
207 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(entry));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
208 purple_account_set_bool(account, setting, value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
209 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
210 else if (type == PURPLE_PREF_STRING_LIST)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
211 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
212 /* TODO: */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
213 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
214 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
215 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
216 g_assert_not_reached();
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
217 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
218 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
219 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
220
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
221 /* XXX: Proxy options */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
222
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
223 gnt_widget_destroy(dialog->window);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
224 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
225
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
226 static void
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
227 update_user_splits(AccountEditDialog *dialog)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
228 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
229 GntWidget *hbox;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
230 PurplePlugin *plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
231 PurplePluginProtocolInfo *prplinfo;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
232 GList *iter, *entries;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
233 char *username = NULL;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
234
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
235 if (dialog->splits)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
236 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
237 gnt_box_remove_all(GNT_BOX(dialog->splits));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
238 g_list_free(dialog->split_entries);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
239 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
240 else
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
241 {
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
242 dialog->splits = gnt_vbox_new(FALSE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
243 gnt_box_set_pad(GNT_BOX(dialog->splits), 0);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
244 gnt_box_set_fill(GNT_BOX(dialog->splits), TRUE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
245 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
246
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
247 dialog->split_entries = NULL;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
248
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
249 plugin = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(dialog->protocol));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
250 if (!plugin)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
251 return;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
252 prplinfo = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
253
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
254 username = dialog->account ? g_strdup(purple_account_get_username(dialog->account)) : NULL;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
255
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
256 for (iter = prplinfo->user_splits; iter; iter = iter->next)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
257 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
258 PurpleAccountUserSplit *split = iter->data;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
259 GntWidget *entry;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
260 char *buf;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
261
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
262 hbox = gnt_hbox_new(TRUE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
263 gnt_box_add_widget(GNT_BOX(dialog->splits), hbox);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
264
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
265 buf = g_strdup_printf("%s:", purple_account_user_split_get_text(split));
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
266 gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(buf));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
267
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
268 entry = gnt_entry_new(NULL);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
269 gnt_box_add_widget(GNT_BOX(hbox), entry);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
270
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
271 dialog->split_entries = g_list_append(dialog->split_entries, entry);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
272 g_free(buf);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
273 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
274
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
275 for (iter = g_list_last(prplinfo->user_splits), entries = g_list_last(dialog->split_entries);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
276 iter && entries; iter = iter->prev, entries = entries->prev)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
277 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
278 GntWidget *entry = entries->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
279 PurpleAccountUserSplit *split = iter->data;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
280 const char *value = NULL;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
281 char *s;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
282
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
283 if (dialog->account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
284 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
285 s = strrchr(username, purple_account_user_split_get_separator(split));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
286 if (s != NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
287 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
288 *s = '\0';
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
289 s++;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
290 value = s;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
291 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
292 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
293 if (value == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
294 value = purple_account_user_split_get_default_value(split);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
295
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
296 if (value != NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
297 gnt_entry_set_text(GNT_ENTRY(entry), value);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
298 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
299
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
300 if (username != NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
301 gnt_entry_set_text(GNT_ENTRY(dialog->screenname), username);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
302
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
303 g_free(username);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
304 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
305
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
306 static void
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
307 add_protocol_options(AccountEditDialog *dialog)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
308 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
309 PurplePlugin *plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
310 PurplePluginProtocolInfo *prplinfo;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
311 GList *iter;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
312 GntWidget *vbox, *box;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
313 PurpleAccount *account;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
314
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
315 if (dialog->prpls)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
316 gnt_box_remove_all(GNT_BOX(dialog->prpls));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
317 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
318 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
319 dialog->prpls = vbox = gnt_vbox_new(FALSE);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
320 gnt_box_set_pad(GNT_BOX(vbox), 0);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
321 gnt_box_set_alignment(GNT_BOX(vbox), GNT_ALIGN_LEFT);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
322 gnt_box_set_fill(GNT_BOX(vbox), TRUE);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
323 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
324
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
325 if (dialog->prpl_entries)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
326 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
327 g_list_free(dialog->prpl_entries);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
328 dialog->prpl_entries = NULL;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
329 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
330
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
331 vbox = dialog->prpls;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
332
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
333 plugin = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(dialog->protocol));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
334 if (!plugin)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
335 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
336
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
337 prplinfo = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
338
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
339 account = dialog->account;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
340
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
341 for (iter = prplinfo->protocol_options; iter; iter = iter->next)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
342 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
343 PurpleAccountOption *option = iter->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
344 PurplePrefType type = purple_account_option_get_type(option);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
345
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
346 box = gnt_hbox_new(TRUE);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
347 gnt_box_set_pad(GNT_BOX(box), 0);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
348 gnt_box_add_widget(GNT_BOX(vbox), box);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
349
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
350 if (type == PURPLE_PREF_BOOLEAN)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
351 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
352 GntWidget *widget = gnt_check_box_new(purple_account_option_get_text(option));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
353 gnt_box_add_widget(GNT_BOX(box), widget);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
354 dialog->prpl_entries = g_list_append(dialog->prpl_entries, widget);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
355
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
356 if (account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
357 gnt_check_box_set_checked(GNT_CHECK_BOX(widget),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
358 purple_account_get_bool(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
359 purple_account_option_get_setting(option),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
360 purple_account_option_get_default_bool(option)));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
361 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
362 gnt_check_box_set_checked(GNT_CHECK_BOX(widget),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
363 purple_account_option_get_default_bool(option));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
364 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
365 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
366 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
367 gnt_box_add_widget(GNT_BOX(box),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
368 gnt_label_new(purple_account_option_get_text(option)));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
369
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
370 if (type == PURPLE_PREF_STRING_LIST)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
371 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
372 /* TODO: Use a combobox */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
373 /* Don't forget to append the widget to prpl_entries */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
374 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
375 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
376 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
377 GntWidget *entry = gnt_entry_new(NULL);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
378 gnt_box_add_widget(GNT_BOX(box), entry);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
379 dialog->prpl_entries = g_list_append(dialog->prpl_entries, entry);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
380
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
381 if (type == PURPLE_PREF_STRING)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
382 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
383 const char *dv = purple_account_option_get_default_string(option);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
384
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
385 if (account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
386 gnt_entry_set_text(GNT_ENTRY(entry),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
387 purple_account_get_string(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
388 purple_account_option_get_setting(option), dv));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
389 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
390 gnt_entry_set_text(GNT_ENTRY(entry), dv);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
391 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
392 else if (type == PURPLE_PREF_INT)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
393 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
394 char str[32];
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
395 int value = purple_account_option_get_default_int(option);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
396 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
397 value = purple_account_get_int(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
398 purple_account_option_get_setting(option), value);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
399 snprintf(str, sizeof(str), "%d", value);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
400 gnt_entry_set_flag(GNT_ENTRY(entry), GNT_ENTRY_FLAG_INT);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
401 gnt_entry_set_text(GNT_ENTRY(entry), str);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
402 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
403 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
404 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
405 g_assert_not_reached();
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
406 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
407 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
408 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
409 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
410 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
411
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
412 static void
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
413 update_user_options(AccountEditDialog *dialog)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
414 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
415 PurplePlugin *plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
416 PurplePluginProtocolInfo *prplinfo;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
417
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
418 plugin = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(dialog->protocol));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
419 if (!plugin)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
420 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
421
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
422 prplinfo = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
423
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
424 if (dialog->newmail == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
425 dialog->newmail = gnt_check_box_new(_("New mail notifications"));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
426 if (dialog->account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
427 gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->newmail),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
428 purple_account_get_check_mail(dialog->account));
14042
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
429 if (!prplinfo || !(prplinfo->options & OPT_PROTO_MAIL_CHECK))
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
430 gnt_widget_set_visible(dialog->newmail, FALSE);
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
431 else
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
432 gnt_widget_set_visible(dialog->newmail, TRUE);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
433
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
434 if (dialog->remember == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
435 dialog->remember = gnt_check_box_new(_("Remember password"));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
436 if (dialog->account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
437 gnt_check_box_set_checked(GNT_CHECK_BOX(dialog->remember),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
438 purple_account_get_remember_password(dialog->account));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
439 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
440
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
441 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
442 prpl_changed_cb(GntWidget *combo, PurplePlugin *old, PurplePlugin *new, AccountEditDialog *dialog)
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
443 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
444 update_user_splits(dialog);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
445 add_protocol_options(dialog);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
446 update_user_options(dialog); /* This may not be necessary here */
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
447 gnt_box_readjust(GNT_BOX(dialog->window));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
448 gnt_widget_draw(dialog->window);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
449 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
450
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
451 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
452 edit_account(PurpleAccount *account)
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
453 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
454 GntWidget *window, *hbox;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
455 GntWidget *combo, *button, *entry;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
456 GList *list, *iter;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
457 AccountEditDialog *dialog;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
458
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
459 if (account)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
460 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
461 GList *iter;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
462 for (iter = accountdialogs; iter; iter = iter->next)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
463 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
464 AccountEditDialog *dlg = iter->data;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
465 if (dlg->account == account)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
466 return;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
467 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
468 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
469
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
470 dialog = g_new0(AccountEditDialog, 1);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
471 accountdialogs = g_list_prepend(accountdialogs, dialog);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
472
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
473 dialog->window = window = gnt_vbox_new(FALSE);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
474 dialog->account = account;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
475 gnt_box_set_toplevel(GNT_BOX(window), TRUE);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
476 gnt_box_set_title(GNT_BOX(window), account ? _("Modify Account") : _("New Account"));
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
477 gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
478 gnt_box_set_pad(GNT_BOX(window), 0);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
479 gnt_widget_set_name(window, "edit-account");
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
480 gnt_box_set_fill(GNT_BOX(window), TRUE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
481
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
482 hbox = gnt_hbox_new(TRUE);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
483 gnt_box_set_pad(GNT_BOX(hbox), 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
484 gnt_box_add_widget(GNT_BOX(window), hbox);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
485
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
486 dialog->protocol = combo = gnt_combo_box_new();
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
487 list = purple_plugins_get_protocols();
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
488 for (iter = list; iter; iter = iter->next)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
489 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
490 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), iter->data,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
491 ((PurplePlugin*)iter->data)->info->name);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
492 }
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
493
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
494 if (account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
495 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
496 purple_plugins_find_with_id(purple_account_get_protocol_id(account)));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
497 else
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
498 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), list->data);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
499
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
500 g_signal_connect(G_OBJECT(combo), "selection-changed", G_CALLBACK(prpl_changed_cb), dialog);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
501
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
502 gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Protocol:")));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
503 gnt_box_add_widget(GNT_BOX(hbox), combo);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
504
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
505 hbox = gnt_hbox_new(TRUE);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
506 gnt_box_set_pad(GNT_BOX(hbox), 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
507 gnt_box_add_widget(GNT_BOX(window), hbox);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
508
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
509 dialog->screenname = entry = gnt_entry_new(NULL);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
510 gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Screen name:")));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
511 gnt_box_add_widget(GNT_BOX(hbox), entry);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
512
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
513 /* User splits */
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
514 update_user_splits(dialog);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
515 gnt_box_add_widget(GNT_BOX(window), dialog->splits);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
516
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
517 hbox = gnt_hbox_new(TRUE);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
518 gnt_box_set_pad(GNT_BOX(hbox), 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
519 gnt_box_add_widget(GNT_BOX(window), hbox);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
520
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
521 dialog->password = entry = gnt_entry_new(NULL);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
522 gnt_entry_set_masked(GNT_ENTRY(entry), TRUE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
523 gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Password:")));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
524 gnt_box_add_widget(GNT_BOX(hbox), entry);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
525 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
526 gnt_entry_set_text(GNT_ENTRY(entry), purple_account_get_password(account));
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
527
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
528 hbox = gnt_hbox_new(TRUE);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
529 gnt_box_set_pad(GNT_BOX(hbox), 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
530 gnt_box_add_widget(GNT_BOX(window), hbox);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
531
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
532 dialog->alias = entry = gnt_entry_new(NULL);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
533 gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Alias:")));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
534 gnt_box_add_widget(GNT_BOX(hbox), entry);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
535 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
536 gnt_entry_set_text(GNT_ENTRY(entry), purple_account_get_alias(account));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
537
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
538 /* User options */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
539 update_user_options(dialog);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
540 gnt_box_add_widget(GNT_BOX(window), dialog->remember);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
541 gnt_box_add_widget(GNT_BOX(window), dialog->newmail);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
542
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
543 gnt_box_add_widget(GNT_BOX(window), gnt_line_new(FALSE));
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
544
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
545 /* The advanced box */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
546 add_protocol_options(dialog);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
547 gnt_box_add_widget(GNT_BOX(window), dialog->prpls);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
548
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
549 /* TODO: Add proxy options */
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
550
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
551 /* The button box */
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
552 hbox = gnt_hbox_new(FALSE);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
553 gnt_box_add_widget(GNT_BOX(window), hbox);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
554 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
555
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
556 button = gnt_button_new(_("Cancel"));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
557 gnt_box_add_widget(GNT_BOX(hbox), button);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
558 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gnt_widget_destroy), window);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
559
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
560 button = gnt_button_new(_("Save"));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
561 gnt_box_add_widget(GNT_BOX(hbox), button);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
562 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(save_account_cb), dialog);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
563
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
564 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(edit_dialog_destroy), dialog);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
565
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
566 gnt_widget_show(window);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
567 gnt_box_readjust(GNT_BOX(window));
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
568 gnt_widget_draw(window);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
569 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
570
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
571 static void
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
572 add_account_cb(GntWidget *widget, gpointer null)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
573 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
574 edit_account(NULL);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
575 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
576
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
577 static void
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
578 modify_account_cb(GntWidget *widget, GntTree *tree)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
579 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
580 PurpleAccount *account = gnt_tree_get_selection_data(tree);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
581 if (!account)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
582 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
583 edit_account(account);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
584 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
585
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
586 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
587 really_delete_account(PurpleAccount *account)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
588 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
589 GList *iter;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
590 for (iter = accountdialogs; iter; iter = iter->next)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
591 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
592 AccountEditDialog *dlg = iter->data;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
593 if (dlg->account == account)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
594 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
595 gnt_widget_destroy(dlg->window);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
596 break;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
597 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
598 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
599 purple_request_close_with_handle(account); /* Close any other opened delete window */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
600 purple_accounts_delete(account);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
601 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
602
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
603 static void
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
604 delete_account_cb(GntWidget *widget, GntTree *tree)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
605 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
606 PurpleAccount *account;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
607 char *prompt;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
608
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
609 account = gnt_tree_get_selection_data(tree);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
610 if (!account)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
611 return;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
612
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
613 prompt = g_strdup_printf(_("Are you sure you want to delete %s?"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
614 purple_account_get_username(account));
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
615
16509
efe3b26f7eaf Fix a warning introduced with the request api changes.
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
616 purple_request_action(account, _("Delete Account"), prompt, NULL, 0,
efe3b26f7eaf Fix a warning introduced with the request api changes.
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
617 account, NULL, NULL, account, 2,
efe3b26f7eaf Fix a warning introduced with the request api changes.
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
618 _("Delete"), really_delete_account,
efe3b26f7eaf Fix a warning introduced with the request api changes.
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
619 _("Cancel"), NULL);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
620 g_free(prompt);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
621 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
622
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
623 static void
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
624 account_toggled(GntWidget *widget, void *key, gpointer null)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
625 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
626 PurpleAccount *account = key;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
627
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
628 purple_account_set_enabled(account, FINCH_UI, gnt_tree_get_choice(GNT_TREE(widget), key));
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
629 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
630
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
631 static void
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
632 reset_accounts_win(GntWidget *widget, gpointer null)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
633 {
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
634 accounts.window = NULL;
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
635 accounts.tree = NULL;
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
636 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
637
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
638 void finch_accounts_show_all()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
639 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
640 GList *iter;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
641 GntWidget *box, *button;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
642
14388
15a44e361ac4 [gaim-migrate @ 17021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
643 if (accounts.window)
15a44e361ac4 [gaim-migrate @ 17021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
644 return;
15a44e361ac4 [gaim-migrate @ 17021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
645
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
646 accounts.window = gnt_vbox_new(FALSE);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
647 gnt_box_set_toplevel(GNT_BOX(accounts.window), TRUE);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
648 gnt_box_set_title(GNT_BOX(accounts.window), _("Accounts"));
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
649 gnt_box_set_pad(GNT_BOX(accounts.window), 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
650 gnt_box_set_alignment(GNT_BOX(accounts.window), GNT_ALIGN_MID);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
651 gnt_widget_set_name(accounts.window, "accounts");
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
652
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
653 gnt_box_add_widget(GNT_BOX(accounts.window),
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
654 gnt_label_new(_("You can enable/disable accounts from the following list.")));
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
655
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
656 gnt_box_add_widget(GNT_BOX(accounts.window), gnt_line_new(FALSE));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
657
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
658 accounts.tree = gnt_tree_new_with_columns(2);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
659 GNT_WIDGET_SET_FLAGS(accounts.tree, GNT_WIDGET_NO_BORDER);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
660
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
661 for (iter = purple_accounts_get_all(); iter; iter = iter->next)
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
662 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
663 PurpleAccount *account = iter->data;
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
664 account_add(account);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
665 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
666
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
667 g_signal_connect(G_OBJECT(accounts.tree), "toggled", G_CALLBACK(account_toggled), NULL);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
668
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
669 gnt_tree_set_col_width(GNT_TREE(accounts.tree), 0, 40);
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
670 gnt_tree_set_col_width(GNT_TREE(accounts.tree), 1, 10);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
671 gnt_box_add_widget(GNT_BOX(accounts.window), accounts.tree);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
672
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
673 gnt_box_add_widget(GNT_BOX(accounts.window), gnt_line_new(FALSE));
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
674
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14103
diff changeset
675 box = gnt_hbox_new(FALSE);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
676
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
677 button = gnt_button_new(_("Add"));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
678 gnt_box_add_widget(GNT_BOX(box), button);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
679 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(add_account_cb), NULL);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
680
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
681 button = gnt_button_new(_("Modify"));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
682 gnt_box_add_widget(GNT_BOX(box), button);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
683 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(modify_account_cb), accounts.tree);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
684
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
685 button = gnt_button_new(_("Delete"));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
686 gnt_box_add_widget(GNT_BOX(box), button);
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
687 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(delete_account_cb), accounts.tree);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
688
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
689 gnt_box_add_widget(GNT_BOX(accounts.window), box);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
690
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
691 g_signal_connect(G_OBJECT(accounts.window), "destroy", G_CALLBACK(reset_accounts_win), NULL);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
692
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
693 gnt_widget_show(accounts.window);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
694 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
695
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
696 static gpointer
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
697 finch_accounts_get_handle()
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
698 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
699 static int handle;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
700
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
701 return &handle;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
702 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
703
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
704 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
705 account_added_callback(PurpleAccount *account)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
706 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
707 if (accounts.window == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
708 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
709 account_add(account);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
710 gnt_widget_draw(accounts.tree);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
711 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
712
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
713 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
714 account_removed_callback(PurpleAccount *account)
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
715 {
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
716 if (accounts.window == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
717 return;
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
718
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
719 gnt_tree_remove(GNT_TREE(accounts.tree), account);
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
720 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
721
17401
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
722 static void
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
723 account_abled_cb(PurpleAccount *account, gpointer user_data)
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
724 {
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
725 if (accounts.window == NULL)
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
726 return;
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
727 gnt_tree_set_choice(GNT_TREE(accounts.tree), account,
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
728 GPOINTER_TO_INT(user_data));
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
729 }
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
730
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
731 void finch_accounts_init()
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
732 {
14484
68626467b639 [gaim-migrate @ 17130]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14388
diff changeset
733 GList *iter;
68626467b639 [gaim-migrate @ 17130]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14388
diff changeset
734
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
735 purple_signal_connect(purple_accounts_get_handle(), "account-added",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
736 finch_accounts_get_handle(), PURPLE_CALLBACK(account_added_callback),
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
737 NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
738 purple_signal_connect(purple_accounts_get_handle(), "account-removed",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
739 finch_accounts_get_handle(), PURPLE_CALLBACK(account_removed_callback),
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
740 NULL);
17401
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
741 purple_signal_connect(purple_accounts_get_handle(), "account-disabled",
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
742 finch_accounts_get_handle(),
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
743 PURPLE_CALLBACK(account_abled_cb), GINT_TO_POINTER(FALSE));
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
744 purple_signal_connect(purple_accounts_get_handle(), "account-enabled",
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
745 finch_accounts_get_handle(),
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
746 PURPLE_CALLBACK(account_abled_cb), GINT_TO_POINTER(TRUE));
4db9d9d3e928 Finch autoreconnecting (largely copy/paste from pidgin)
Richard Nelson <wabz@pidgin.im>
parents: 17164
diff changeset
747
17857
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
748 iter = purple_accounts_get_all();
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
749 if (iter) {
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
750 for (; iter; iter = iter->next) {
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
751 if (purple_account_get_enabled(iter->data, FINCH_UI))
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
752 break;
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
753 }
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
754 if (!iter)
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
755 finch_accounts_show_all();
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
756 } else {
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
757 edit_account(NULL);
bc85241727f8 If there's no account at startup, sohw the 'New Account' dialog too.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17848
diff changeset
758 finch_accounts_show_all();
14484
68626467b639 [gaim-migrate @ 17130]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14388
diff changeset
759 }
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
760 }
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
761
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
762 void finch_accounts_uninit()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
763 {
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
764 if (accounts.window)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14047
diff changeset
765 gnt_widget_destroy(accounts.window);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
766 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
767
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
768 /* The following uiops stuff are copied from gtkaccount.c */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
769 typedef struct
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
770 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
771 PurpleAccount *account;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
772 char *username;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
773 char *alias;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
774 } AddUserData;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
775
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
776 static char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
777 make_info(PurpleAccount *account, PurpleConnection *gc, const char *remote_user,
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
778 const char *id, const char *alias, const char *msg)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
779 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
780 if (msg != NULL && *msg == '\0')
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
781 msg = NULL;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
782
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
783 return g_strdup_printf(_("%s%s%s%s has made %s his or her buddy%s%s"),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
784 remote_user,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
785 (alias != NULL ? " (" : ""),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
786 (alias != NULL ? alias : ""),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
787 (alias != NULL ? ")" : ""),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
788 (id != NULL
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
789 ? id
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
790 : (purple_connection_get_display_name(gc) != NULL
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
791 ? purple_connection_get_display_name(gc)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
792 : purple_account_get_username(account))),
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
793 (msg != NULL ? ": " : "."),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
794 (msg != NULL ? msg : ""));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
795 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
796
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
797 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
798 notify_added(PurpleAccount *account, const char *remote_user,
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
799 const char *id, const char *alias,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
800 const char *msg)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
801 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
802 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
803 PurpleConnection *gc;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
804
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
805 gc = purple_account_get_connection(account);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
806
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
807 buffer = make_info(account, gc, remote_user, id, alias, msg);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
808
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
809 purple_notify_info(NULL, NULL, buffer, NULL);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
810
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
811 g_free(buffer);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
812 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
813
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
814 static void
14047
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
815 free_add_user_data(AddUserData *data)
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
816 {
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
817 g_free(data->username);
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
818
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
819 if (data->alias != NULL)
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
820 g_free(data->alias);
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
821
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
822 g_free(data);
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
823 }
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
824
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
825 static void
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
826 add_user_cb(AddUserData *data)
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
827 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
828 PurpleConnection *gc = purple_account_get_connection(data->account);
14047
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
829
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
830 if (g_list_find(purple_connections_get_all(), gc))
14047
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
831 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
832 purple_blist_request_add_buddy(data->account, data->username,
14047
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
833 NULL, data->alias);
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
834 }
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
835
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
836 free_add_user_data(data);
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
837 }
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
838
764a70ebfdc5 [gaim-migrate @ 16555]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
839 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
840 request_add(PurpleAccount *account, const char *remote_user,
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
841 const char *id, const char *alias,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
842 const char *msg)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
843 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
844 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
845 PurpleConnection *gc;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
846 AddUserData *data;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
847
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
848 gc = purple_account_get_connection(account);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
849
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
850 data = g_new0(AddUserData, 1);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
851 data->account = account;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
852 data->username = g_strdup(remote_user);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
853 data->alias = (alias != NULL ? g_strdup(alias) : NULL);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
854
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
855 buffer = make_info(account, gc, remote_user, id, alias, msg);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
856 purple_request_action(NULL, NULL, _("Add buddy to your list?"),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
857 buffer, PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
858 account, remote_user, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
859 data, 2,
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
860 _("Add"), G_CALLBACK(add_user_cb),
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
861 _("Cancel"), G_CALLBACK(free_add_user_data));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
862 g_free(buffer);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
863 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
864
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
865 /* Copied from gtkaccount.c */
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
866 typedef struct {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
867 PurpleAccountRequestAuthorizationCb auth_cb;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
868 PurpleAccountRequestAuthorizationCb deny_cb;
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
869 void *data;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
870 char *username;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
871 char *alias;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
872 PurpleAccount *account;
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
873 } auth_and_add;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
874
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
875 static void
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
876 free_auth_and_add(auth_and_add *aa)
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
877 {
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
878 g_free(aa->username);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
879 g_free(aa->alias);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
880 g_free(aa);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
881 }
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
882
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
883 static void
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
884 authorize_and_add_cb(auth_and_add *aa)
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
885 {
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
886 aa->auth_cb(aa->data);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
887 purple_blist_request_add_buddy(aa->account, aa->username,
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
888 NULL, aa->alias);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
889 }
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
890
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
891 static void
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
892 deny_no_add_cb(auth_and_add *aa)
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
893 {
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
894 aa->deny_cb(aa->data);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
895 }
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
896
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
897 static void *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
898 finch_request_authorize(PurpleAccount *account, const char *remote_user,
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
899 const char *id, const char *alias, const char *message, gboolean on_list,
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
900 GCallback auth_cb, GCallback deny_cb, void *user_data)
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
901 {
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
902 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
903 PurpleConnection *gc;
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
904 void *uihandle;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
905
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
906 gc = purple_account_get_connection(account);
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
907 if (message != NULL && *message == '\0')
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
908 message = NULL;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
909
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
910 buffer = g_strdup_printf(_("%s%s%s%s wants to add %s to his or her buddy list%s%s"),
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
911 remote_user,
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
912 (alias != NULL ? " (" : ""),
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
913 (alias != NULL ? alias : ""),
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
914 (alias != NULL ? ")" : ""),
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
915 (id != NULL
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
916 ? id
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
917 : (purple_connection_get_display_name(gc) != NULL
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
918 ? purple_connection_get_display_name(gc)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
919 : purple_account_get_username(account))),
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
920 (message != NULL ? ": " : "."),
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
921 (message != NULL ? message : ""));
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
922 if (!on_list) {
17846
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
923 GntWidget *widget;
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
924 GList *iter;
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
925 auth_and_add *aa = g_new(auth_and_add, 1);
17846
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
926
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
927 aa->auth_cb = (PurpleAccountRequestAuthorizationCb)auth_cb;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
928 aa->deny_cb = (PurpleAccountRequestAuthorizationCb)deny_cb;
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
929 aa->data = user_data;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
930 aa->username = g_strdup(remote_user);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
931 aa->alias = g_strdup(alias);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
932 aa->account = account;
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
933
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
934 uihandle = gnt_vwindow_new(FALSE);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
935 gnt_box_set_title(GNT_BOX(uihandle), _("Authorize buddy?"));
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
936 gnt_box_set_pad(GNT_BOX(uihandle), 0);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
937
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
938 widget = purple_request_action(NULL, _("Authorize buddy?"), buffer, NULL,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
939 PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
940 account, remote_user, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
941 aa, 2,
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
942 _("Authorize"), authorize_and_add_cb,
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
943 _("Deny"), deny_no_add_cb);
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
944 gnt_screen_release(widget);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
945 gnt_box_set_toplevel(GNT_BOX(widget), FALSE);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
946 gnt_box_add_widget(GNT_BOX(uihandle), widget);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
947
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
948 gnt_box_add_widget(GNT_BOX(uihandle), gnt_hline_new());
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
949
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
950 widget = finch_retrieve_user_info(account->gc, remote_user);
17846
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
951 for (iter = GNT_BOX(widget)->list; iter; iter = iter->next) {
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
952 if (GNT_IS_BUTTON(iter->data)) {
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
953 gnt_widget_destroy(iter->data);
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
954 gnt_box_remove(GNT_BOX(widget), iter->data);
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
955 break;
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
956 }
e8ee63f71029 Remove the confusing 'OK' button from the auth dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
957 }
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
958 gnt_box_set_toplevel(GNT_BOX(widget), FALSE);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
959 gnt_screen_release(widget);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
960 gnt_box_add_widget(GNT_BOX(uihandle), widget);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
961 gnt_widget_show(uihandle);
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
962
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17164
diff changeset
963 g_signal_connect_swapped(G_OBJECT(uihandle), "destroy", G_CALLBACK(free_auth_and_add), aa);
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
964 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
965 uihandle = purple_request_action(NULL, _("Authorize buddy?"), buffer, NULL,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
966 PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
967 account, remote_user, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16255
diff changeset
968 user_data, 2,
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
969 _("Authorize"), auth_cb,
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
970 _("Deny"), deny_cb);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
971 }
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
972 g_free(buffer);
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
973 return uihandle;
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
974 }
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
975
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
976 static void
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15829
diff changeset
977 finch_request_close(void *uihandle)
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
978 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
979 purple_request_close(PURPLE_REQUEST_ACTION, uihandle);
15829
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
980 }
ee5af14dc815 Add request_authorize to gaim-text's account ui ops
Richard Nelson <wabz@pidgin.im>
parents: 15781
diff changeset
981
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
982 static PurpleAccountUiOps ui_ops =
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
983 {
17164
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
984 notify_added,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
985 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
986 request_add,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
987 finch_request_authorize,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
988 finch_request_close,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
989 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
990 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
991 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 16509
diff changeset
992 NULL
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
993 };
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
994
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
995 PurpleAccountUiOps *finch_accounts_get_ui_ops()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
996 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
997 return &ui_ops;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
998 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
999

mercurial