pidgin/gtkaccount.c

Fri, 14 Sep 2007 17:55:05 +0000

author
Daniel Atallah <datallah@pidgin.im>
date
Fri, 14 Sep 2007 17:55:05 +0000
changeset 20073
dbea205441ea
parent 19859
71d37b57eff2
child 19997
24bc4ea43075
child 20092
814ecfc91244
child 20330
650a7af9c238
permissions
-rw-r--r--

Fix proxy settings to be loaded correctly when libpurple is initialized. This was broken because it relied on the prefs being loaded after proxy initialization so that the pref callbacks would be triggered and I changed the prefs loading to happen right at the beginning to fix other issues. Fixes #3092.

5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
7820
06fc9f66d2cb [gaim-migrate @ 8472]
Mark Doliner <markdoliner@pidgin.im>
parents: 7810
diff changeset
2 * @file gtkaccount.c GTK+ Account Editor UI
16254
eeb2bba4dc94 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents: 16192
diff changeset
3 * @ingroup pidgin
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
5 * pidgin
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
7 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
9 * source distribution.
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
10 *
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19773
diff changeset
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
25
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9710
diff changeset
26 #include "internal.h"
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15570
diff changeset
27 #include "pidgin.h"
5717
2f3a377de638 [gaim-migrate @ 6138]
Nathan Walp <nwalp@pidgin.im>
parents: 5715
diff changeset
28
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #include "account.h"
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
30 #include "accountopt.h"
6229
1704facbe9a5 [gaim-migrate @ 6722]
Mark Doliner <markdoliner@pidgin.im>
parents: 6179
diff changeset
31 #include "core.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
32 #include "debug.h"
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
33 #include "notify.h"
5852
33a438531278 [gaim-migrate @ 6283]
Christian Hammond <chipx86@chipx86.com>
parents: 5851
diff changeset
34 #include "plugin.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
35 #include "prefs.h"
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
36 #include "prpl.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
37 #include "request.h"
11724
d3f71bc34b4f [gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents: 11654
diff changeset
38 #include "savedstatuses.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
39 #include "signals.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
40 #include "util.h"
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
41
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
42 #include "gtkaccount.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
43 #include "gtkblist.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9705
diff changeset
44 #include "gtkdialogs.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
45 #include "gtkutils.h"
10649
cd536d7aff51 [gaim-migrate @ 12167]
Sean Egan <seanegan@pidgin.im>
parents: 10646
diff changeset
46 #include "gtkstatusbox.h"
15883
969b74a3e27a According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
47 #include "pidginstock.h"
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
48
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
49 enum
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
50 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
51 COLUMN_ICON,
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
52 COLUMN_BUDDYICON,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
53 COLUMN_SCREENNAME,
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
54 COLUMN_ENABLED,
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
55 COLUMN_PROTOCOL,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
56 COLUMN_DATA,
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
57 COLUMN_PULSE_DATA,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
58 NUM_COLUMNS
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
59 };
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 typedef struct
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
63 PurpleAccount *account;
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
64 char *username;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
65 char *alias;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
66
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
67 } PidginAccountAddUserData;
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
68
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
69 typedef struct
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
70 {
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 GtkWidget *window;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
72 GtkWidget *treeview;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
74 GtkWidget *modify_button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
75 GtkWidget *delete_button;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
76 GtkWidget *notebook;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
77
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
78 GtkListStore *model;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
79 GtkTreeIter drag_iter;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
80
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
81 GtkTreeViewColumn *screenname_col;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
82
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
83 } AccountsWindow;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
85 typedef struct
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
86 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
87 PidginAccountDialogType type;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
88
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
89 PurpleAccount *account;
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
90 char *protocol_id;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
91 PurplePlugin *plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
92 PurplePluginProtocolInfo *prpl_info;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
93
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
94 PurpleProxyType new_proxy_type;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
95
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
96 GList *user_split_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
97 GList *protocol_opt_entries;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
98
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
99 GtkSizeGroup *sg;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
100 GtkWidget *window;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
101
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
102 GtkWidget *top_vbox;
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
103 GtkWidget *bottom_vbox;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
104 GtkWidget *ok_button;
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
105 GtkWidget *register_button;
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
106
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
107 /* Login Options */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
108 GtkWidget *login_frame;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
109 GtkWidget *protocol_menu;
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
110 GtkWidget *password_box;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
111 GtkWidget *screenname_entry;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
112 GtkWidget *password_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
113 GtkWidget *alias_entry;
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
114 GtkWidget *remember_pass_check;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
115
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
116 /* User Options */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
117 GtkWidget *user_frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
118 GtkWidget *new_mail_check;
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
119 GtkWidget *icon_hbox;
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
120 GtkWidget *icon_check;
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
121 GtkWidget *icon_entry;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
122 GtkWidget *icon_filesel;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
123 GtkWidget *icon_preview;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
124 GtkWidget *icon_text;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
125 PurpleStoredImage *icon_img;
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
126
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
127 /* Protocol Options */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
128 GtkWidget *protocol_frame;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
129
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
130 /* Proxy Options */
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
131 GtkWidget *proxy_frame;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
132 GtkWidget *proxy_vbox;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
133 GtkWidget *proxy_dropdown;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
134 GtkWidget *proxy_host_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
135 GtkWidget *proxy_port_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
136 GtkWidget *proxy_user_entry;
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
137 GtkWidget *proxy_pass_entry;
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
138
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
139 } AccountPrefsDialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
140
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
141 typedef struct
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
142 {
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
143 GdkPixbuf *online_pixbuf;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
144 gboolean pulse_to_grey;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
145 float pulse_value;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
146 int timeout;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
147 PurpleAccount *account;
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
148 GtkTreeModel *model;
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
149
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
150 } PidginPulseData;
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
151
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
152
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
153 static AccountsWindow *accounts_window = NULL;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
154 static GHashTable *account_pref_wins;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
155
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
156 static void add_account_to_liststore(PurpleAccount *account, gpointer user_data);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
157 static void set_account(GtkListStore *store, GtkTreeIter *iter,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
158 PurpleAccount *account, GdkPixbuf *global_buddyicon);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
159
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
160 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
161 * Add/Modify Account dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
162 **************************************************************************/
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
163 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
164 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
165 static void add_protocol_options(AccountPrefsDialog *dialog,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
166 GtkWidget *parent);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
167 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
168
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
169 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
170 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
171 const char *text, GtkWidget *widget)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
172 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
173 GtkWidget *hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
174 GtkWidget *label;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
175
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
176 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
177 gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
178 gtk_widget_show(hbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
179
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
180 label = gtk_label_new_with_mnemonic(text);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
181 gtk_size_group_add_widget(dialog->sg, label);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
182 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
183 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
17562
8809f683cf67 Tie the proxy mnemonic to the proxy type selector, taken from an opensolaris
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17526
diff changeset
184 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
185 gtk_widget_show(label);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
186
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
187 gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, PIDGIN_HIG_BORDER);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
188 gtk_widget_show(widget);
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
189 pidgin_set_accessible_label (widget, label);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
190
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
191 return hbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
192 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
193
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
194 static void
16658
d5b9b112b758 Part of the patch in ticket #383:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16545
diff changeset
195 set_dialog_icon(AccountPrefsDialog *dialog, gpointer data, size_t len, gchar *new_icon_path)
11286
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
196 {
14248
caf7bdfc3e0f [gaim-migrate @ 16849]
Daniel Atallah <datallah@pidgin.im>
parents: 14235
diff changeset
197 GdkPixbuf *pixbuf = NULL;
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
198
16658
d5b9b112b758 Part of the patch in ticket #383:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16545
diff changeset
199 dialog->icon_img = purple_imgstore_unref(dialog->icon_img);
16539
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
200 if (data != NULL)
16544
945caa0d6436 Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents: 16539
diff changeset
201 {
16539
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
202 if (len > 0)
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
203 dialog->icon_img = purple_imgstore_add(data, len, new_icon_path);
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
204 else
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
205 g_free(data);
16544
945caa0d6436 Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents: 16539
diff changeset
206 }
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
207
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
208 if (dialog->icon_img != NULL) {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
209 GdkPixbufLoader *loader = gdk_pixbuf_loader_new();
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
210 gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(dialog->icon_img),
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
211 purple_imgstore_get_size(dialog->icon_img), NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
212 gdk_pixbuf_loader_close(loader, NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
213 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
214 }
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
215
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
216 if (pixbuf && dialog->prpl_info &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
217 (dialog->prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY))
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
218 {
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
219 /* Scale the icon to something reasonable */
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
220 int width, height;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
221 GdkPixbuf *scale;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
222
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
223 pidgin_buddy_icon_get_scale_size(pixbuf, &dialog->prpl_info->icon_spec,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
224 PURPLE_ICON_SCALE_DISPLAY, &width, &height);
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
225 scale = gdk_pixbuf_scale_simple(pixbuf, width, height, GDK_INTERP_BILINEAR);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
226
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
227 g_object_unref(G_OBJECT(pixbuf));
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
228 pixbuf = scale;
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
229 }
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
230
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
231 if (pixbuf == NULL)
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
232 {
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
233 /* Show a placeholder icon */
16386
416b510e691e New select-avatar image from hbons
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16351
diff changeset
234 GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL);
416b510e691e New select-avatar image from hbons
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16351
diff changeset
235 pixbuf = gtk_widget_render_icon(dialog->window, PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR,
16351
1ac1dbbeb665 References #219
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16254
diff changeset
236 icon_size, "PidginAccount");
14671
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
237 }
4981d4ab59f8 [gaim-migrate @ 17337]
Mark Doliner <markdoliner@pidgin.im>
parents: 14670
diff changeset
238
13222
03cf8fa2f29e [gaim-migrate @ 15585]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13091
diff changeset
239 gtk_image_set_from_pixbuf(GTK_IMAGE(dialog->icon_entry), pixbuf);
14150
b9617d019b31 [gaim-migrate @ 16711]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
240 if (pixbuf != NULL)
b9617d019b31 [gaim-migrate @ 16711]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
241 g_object_unref(G_OBJECT(pixbuf));
11286
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
242 }
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
243
148a24541acd [gaim-migrate @ 13483]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
244 static void
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
245 set_account_protocol_cb(GtkWidget *item, const char *id,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
246 AccountPrefsDialog *dialog)
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
247 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
248 PurplePlugin *new_plugin;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
249
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
250 new_plugin = purple_find_prpl(id);
9304
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
251
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
252 if (new_plugin == dialog->plugin)
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
253 return;
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
254
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
255 dialog->plugin = new_plugin;
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
256
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
257 if (dialog->plugin != NULL)
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
258 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
259 dialog->prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
260
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
261 g_free(dialog->protocol_id);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
262 dialog->protocol_id = g_strdup(dialog->plugin->info->id);
5955
4f964635c095 [gaim-migrate @ 6399]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
263 }
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
264
9304
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
265 if (dialog->account != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
266 purple_account_clear_settings(dialog->account);
9304
5077b31f5526 [gaim-migrate @ 10112]
Christian Hammond <chipx86@chipx86.com>
parents: 8903
diff changeset
267
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
268 add_login_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
269 add_user_options(dialog, dialog->top_vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
270 add_protocol_options(dialog, dialog->bottom_vbox);
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
271
19575
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
272 if (!dialog->prpl_info || !dialog->prpl_info->register_user ||
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
273 g_object_get_data(G_OBJECT(item), "fake")) {
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
274 gtk_widget_hide(dialog->register_button);
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
275 } else {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
276 if (dialog->prpl_info != NULL &&
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
277 (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME)) {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
278 gtk_widget_set_sensitive(dialog->register_button, TRUE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
279 } else {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
280 gtk_widget_set_sensitive(dialog->register_button, FALSE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
281 }
6141
7c17ebf651e3 [gaim-migrate @ 6615]
Nathan Walp <nwalp@pidgin.im>
parents: 6123
diff changeset
282 gtk_widget_show(dialog->register_button);
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
283 }
5688
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
284 }
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
285
c185c90d9811 [gaim-migrate @ 6109]
Christian Hammond <chipx86@chipx86.com>
parents: 5687
diff changeset
286 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
287 screenname_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
288 {
6732
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
289 if (dialog->ok_button)
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
290 gtk_widget_set_sensitive(dialog->ok_button,
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
291 *gtk_entry_get_text(entry) != '\0');
11358
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
292 if (dialog->register_button) {
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
293 if (dialog->prpl_info != NULL && (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME))
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
294 gtk_widget_set_sensitive(dialog->register_button, TRUE);
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
295 else
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
296 gtk_widget_set_sensitive(dialog->register_button,
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
297 *gtk_entry_get_text(entry) != '\0');
531a16c883c0 [gaim-migrate @ 13580]
Bartosz Oler <bartosz@pidgin.im>
parents: 11304
diff changeset
298 }
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
299 }
6732
b49ddd2d299b [gaim-migrate @ 7259]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
300
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
301 static void
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
302 icon_filesel_choose_cb(const char *filename, gpointer data)
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
303 {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
304 AccountPrefsDialog *dialog = data;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
305
14765
c5c0c325481d [gaim-migrate @ 17455]
Mark Doliner <markdoliner@pidgin.im>
parents: 14764
diff changeset
306 if (filename != NULL)
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
307 {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
308 size_t len;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
309 gpointer data = pidgin_convert_buddy_icon(dialog->plugin, filename, &len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
310 set_dialog_icon(dialog, data, len, g_strdup(filename));
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
311 }
14203
f3a50c328ddc [gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents: 14195
diff changeset
312
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
313 dialog->icon_filesel = NULL;
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
314 }
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
315
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
316 static void
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
317 icon_select_cb(GtkWidget *button, AccountPrefsDialog *dialog)
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
318 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
319 dialog->icon_filesel = pidgin_buddy_icon_chooser_new(GTK_WINDOW(dialog->window), icon_filesel_choose_cb, dialog);
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
320 gtk_widget_show_all(dialog->icon_filesel);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
321 }
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
322
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
323 static void
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
324 icon_reset_cb(GtkWidget *button, AccountPrefsDialog *dialog)
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
325 {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
326 set_dialog_icon(dialog, NULL, 0, NULL);
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
327 }
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
328
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
329 static void
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
330 account_dnd_recv(GtkWidget *widget, GdkDragContext *dc, gint x, gint y,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
331 GtkSelectionData *sd, guint info, guint t, AccountPrefsDialog *dialog)
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
332 {
11137
cf40226ddff7 [gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents: 11113
diff changeset
333 gchar *name = (gchar *)sd->data;
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
334
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
335 if ((sd->length >= 0) && (sd->format == 8)) {
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
336 /* Well, it looks like the drag event was cool.
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
337 * Let's do something with it */
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
338 if (!g_ascii_strncasecmp(name, "file://", 7)) {
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
339 GError *converr = NULL;
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
340 gchar *tmp, *rtmp;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
341 gpointer data;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
342 size_t len;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
343
16412
ee04eb24fcb9 A comment in here mentions "untar", so I think it was copied from the
Richard Laager <rlaager@pidgin.im>
parents: 16386
diff changeset
344 /* It looks like we're dealing with a local file. */
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
345 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
346 purple_debug(PURPLE_DEBUG_ERROR, "buddyicon", "%s\n",
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
347 (converr ? converr->message :
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
348 "g_filename_from_uri error"));
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
349 return;
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
350 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
351 if ((rtmp = strchr(tmp, '\r')) || (rtmp = strchr(tmp, '\n')))
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
352 *rtmp = '\0';
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
353
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
354 data = pidgin_convert_buddy_icon(dialog->plugin, tmp, &len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
355 /* This takes ownership of tmp */
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
356 set_dialog_icon(dialog, data, len, tmp);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
357 }
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
358 gtk_drag_finish(dc, TRUE, FALSE, t);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
359 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
360 gtk_drag_finish(dc, FALSE, FALSE, t);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
361 }
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
362
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
363 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
364 update_editable(PurpleConnection *gc, AccountPrefsDialog *dialog)
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
365 {
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
366 gboolean set;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
367 GList *l;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
368
12843
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
369 if (dialog->account == NULL)
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
370 return;
323bd864a6f1 [gaim-migrate @ 15191]
Richard Laager <rlaager@pidgin.im>
parents: 12671
diff changeset
371
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
372 if (gc != NULL && dialog->account != purple_connection_get_account(gc))
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
373 return;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
374
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
375 set = !(purple_account_is_connected(dialog->account) || purple_account_is_connecting(dialog->account));
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
376 gtk_widget_set_sensitive(dialog->protocol_menu, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
377 gtk_widget_set_sensitive(dialog->screenname_entry, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
378
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
379 for (l = dialog->user_split_entries ; l != NULL ; l = l->next)
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
380 gtk_widget_set_sensitive((GtkWidget *)l->data, set);
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
381 }
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
382
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
383 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
384 add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
385 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
386 GtkWidget *frame;
17035
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
387 GtkWidget *hbox;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
388 GtkWidget *vbox;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
389 GtkWidget *entry;
17301
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
390 GtkWidget *menu;
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
391 GtkWidget *item;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
392 GList *user_splits;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
393 GList *l, *l2;
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
394 char *username = NULL;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
395
17035
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
396 if (dialog->protocol_menu != NULL)
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
397 {
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
398 gtk_widget_ref(dialog->protocol_menu);
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
399 hbox = g_object_get_data(G_OBJECT(dialog->protocol_menu), "container");
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
400 gtk_container_remove(GTK_CONTAINER(hbox), dialog->protocol_menu);
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
401 }
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
402
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
403 if (dialog->login_frame != NULL)
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
404 gtk_widget_destroy(dialog->login_frame);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
405
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
406 /* Build the login options frame. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
407 frame = pidgin_make_frame(parent, _("Login Options"));
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
408
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
409 /* cringe */
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
410 dialog->login_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
411
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
412 gtk_box_reorder_child(GTK_BOX(parent), dialog->login_frame, 0);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
413 gtk_widget_show(dialog->login_frame);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
414
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
415 /* Main vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
416 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
417 gtk_container_add(GTK_CONTAINER(frame), vbox);
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
418 gtk_widget_show(vbox);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
419
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
420 /* Protocol */
17035
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
421 if (dialog->protocol_menu == NULL)
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
422 {
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
423 dialog->protocol_menu = pidgin_protocol_option_menu_new(
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
424 dialog->protocol_id, G_CALLBACK(set_account_protocol_cb), dialog);
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
425 gtk_widget_ref(dialog->protocol_menu);
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
426 }
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
427
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
428 hbox = add_pref_box(dialog, vbox, _("Pro_tocol:"), dialog->protocol_menu);
17035
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
429 g_object_set_data(G_OBJECT(dialog->protocol_menu), "container", hbox);
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
430
c3070e07f6a7 Make Google Talk stick when chosen, rather than jumping right to XMPP.
Richard Laager <rlaager@pidgin.im>
parents: 16889
diff changeset
431 gtk_widget_unref(dialog->protocol_menu);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
432
12152
e663abedf464 [gaim-migrate @ 14453]
Richard Laager <rlaager@pidgin.im>
parents: 12125
diff changeset
433 /* Screen name */
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
434 dialog->screenname_entry = gtk_entry_new();
17526
86463627e892 "truncate-multiline" property for GtkEntry was added in Gtk 2.10
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17484
diff changeset
435 #if GTK_CHECK_VERSION(2,10,0)
17416
613bf4dd3b8c Fixes #1208
Sean Egan <seanegan@pidgin.im>
parents: 17302
diff changeset
436 g_object_set(G_OBJECT(dialog->screenname_entry), "truncate-multiline", TRUE, NULL);
17526
86463627e892 "truncate-multiline" property for GtkEntry was added in Gtk 2.10
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17484
diff changeset
437 #endif
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
438
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
439 add_pref_box(dialog, vbox, _("Screen _name:"), dialog->screenname_entry);
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
440
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
441 g_signal_connect(G_OBJECT(dialog->screenname_entry), "changed",
10420
7277ae4229e9 [gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
442 G_CALLBACK(screenname_changed_cb), dialog);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
443
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
444 /* Do the user split thang */
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
445 if (dialog->plugin == NULL) /* Yeah right. */
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
446 user_splits = NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
447 else
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
448 user_splits = dialog->prpl_info->user_splits;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
449
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
450 if (dialog->account != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
451 username = g_strdup(purple_account_get_username(dialog->account));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
452
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
453 if (dialog->user_split_entries != NULL) {
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
454 g_list_free(dialog->user_split_entries);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
455 dialog->user_split_entries = NULL;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
456 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
457
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
458 for (l = user_splits; l != NULL; l = l->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
459 PurpleAccountUserSplit *split = l->data;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
460 char *buf;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
461
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
462 buf = g_strdup_printf("_%s:", purple_account_user_split_get_text(split));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
463
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
464 entry = gtk_entry_new();
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
465
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
466 add_pref_box(dialog, vbox, buf, entry);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
467
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
468 g_free(buf);
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
469
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
470 dialog->user_split_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
471 g_list_append(dialog->user_split_entries, entry);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
472 }
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
473
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
474 for (l = g_list_last(dialog->user_split_entries),
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
475 l2 = g_list_last(user_splits);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
476 l != NULL && l2 != NULL;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
477 l = l->prev, l2 = l2->prev) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
478
5708
43f6fbb894d5 [gaim-migrate @ 6129]
Christian Hammond <chipx86@chipx86.com>
parents: 5705
diff changeset
479 GtkWidget *entry = l->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
480 PurpleAccountUserSplit *split = l2->data;
17851
02fbbecd95f5 Make sure if some plugin used pidgin_protocol_option_menu_new, they continue
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17302
diff changeset
481 const char *value = NULL;
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
482 char *c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
483
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
484 if (dialog->account != NULL) {
18099
f38988d232f7 jabber can contain @ symbols and / in the resource, so we have to look for
Nathan Walp <nwalp@pidgin.im>
parents: 18096
diff changeset
485 if(purple_account_user_split_get_reverse(split))
f38988d232f7 jabber can contain @ symbols and / in the resource, so we have to look for
Nathan Walp <nwalp@pidgin.im>
parents: 18096
diff changeset
486 c = strrchr(username,
f38988d232f7 jabber can contain @ symbols and / in the resource, so we have to look for
Nathan Walp <nwalp@pidgin.im>
parents: 18096
diff changeset
487 purple_account_user_split_get_separator(split));
f38988d232f7 jabber can contain @ symbols and / in the resource, so we have to look for
Nathan Walp <nwalp@pidgin.im>
parents: 18096
diff changeset
488 else
f38988d232f7 jabber can contain @ symbols and / in the resource, so we have to look for
Nathan Walp <nwalp@pidgin.im>
parents: 18096
diff changeset
489 c = strchr(username,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
490 purple_account_user_split_get_separator(split));
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
491
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
492 if (c != NULL) {
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
493 *c = '\0';
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
494 c++;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
495
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
496 value = c;
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
497 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
498 }
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
499 if (value == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
500 value = purple_account_user_split_get_default_value(split);
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
501
17301
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
502 /* Google Talk default domain hackery! */
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
503 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
504 item = gtk_menu_get_active(GTK_MENU(menu));
18841
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
505 if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") &&
17301
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
506 !strcmp(purple_account_user_split_get_text(split), _("Domain")))
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
507 value = "gmail.com";
7af76e506062 Use gmail.com as the default domain for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17035
diff changeset
508
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
509 if (value != NULL)
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
510 gtk_entry_set_text(GTK_ENTRY(entry), value);
5653
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
511 }
a9e3cbee4d0c [gaim-migrate @ 6067]
Christian Hammond <chipx86@chipx86.com>
parents: 5651
diff changeset
512
5656
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
513 if (username != NULL)
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
514 gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
515
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
516 g_free(username);
b3eb9f503cdc [gaim-migrate @ 6070]
Christian Hammond <chipx86@chipx86.com>
parents: 5653
diff changeset
517
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
518
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
519 /* Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
520 dialog->password_entry = gtk_entry_new();
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
521 gtk_entry_set_visibility(GTK_ENTRY(dialog->password_entry), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15352
diff changeset
522 if (gtk_entry_get_invisible_char(GTK_ENTRY(dialog->password_entry)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
523 gtk_entry_set_invisible_char(GTK_ENTRY(dialog->password_entry), PIDGIN_INVISIBLE_CHAR);
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
524 dialog->password_box = add_pref_box(dialog, vbox, _("_Password:"),
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
525 dialog->password_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
526
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
527 /* Alias */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
528 dialog->alias_entry = gtk_entry_new();
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
529 add_pref_box(dialog, vbox, _("_Local alias:"), dialog->alias_entry);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
530
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
531 /* Remember Password */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
532 dialog->remember_pass_check =
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
533 gtk_check_button_new_with_mnemonic(_("Remember pass_word"));
5783
0f26dee8622e [gaim-migrate @ 6208]
Christian Hammond <chipx86@chipx86.com>
parents: 5782
diff changeset
534 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
7810
63e622ceacf1 [gaim-migrate @ 8457]
Mark Doliner <markdoliner@pidgin.im>
parents: 7762
diff changeset
535 FALSE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
536 gtk_box_pack_start(GTK_BOX(vbox), dialog->remember_pass_check,
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
537 FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
538 gtk_widget_show(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
539
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
540 /* Set the fields. */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
541 if (dialog->account != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
542 if (purple_account_get_password(dialog->account))
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
543 gtk_entry_set_text(GTK_ENTRY(dialog->password_entry),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
544 purple_account_get_password(dialog->account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
545
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
546 if (purple_account_get_alias(dialog->account))
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
547 gtk_entry_set_text(GTK_ENTRY(dialog->alias_entry),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
548 purple_account_get_alias(dialog->account));
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
549
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
550 gtk_toggle_button_set_active(
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
551 GTK_TOGGLE_BUTTON(dialog->remember_pass_check),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
552 purple_account_get_remember_password(dialog->account));
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
553 }
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
554
5662
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
555 if (dialog->prpl_info != NULL &&
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
556 (dialog->prpl_info->options & OPT_PROTO_NO_PASSWORD)) {
e938bbeef62c [gaim-migrate @ 6076]
Christian Hammond <chipx86@chipx86.com>
parents: 5661
diff changeset
557
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
558 gtk_widget_hide(dialog->password_box);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
559 gtk_widget_hide(dialog->remember_pass_check);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
560 }
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
561
12555
3c978a4400f2 [gaim-migrate @ 14874]
Richard Laager <rlaager@pidgin.im>
parents: 12521
diff changeset
562 /* Do not let the user change the protocol/screenname while connected. */
3c978a4400f2 [gaim-migrate @ 14874]
Richard Laager <rlaager@pidgin.im>
parents: 12521
diff changeset
563 update_editable(NULL, dialog);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
564 purple_signal_connect(purple_connections_get_handle(), "signing-on", dialog,
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
565 G_CALLBACK(update_editable), dialog);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
566 purple_signal_connect(purple_connections_get_handle(), "signed-off", dialog,
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
567 G_CALLBACK(update_editable), dialog);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
568 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
569
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
570 static void
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
571 icon_check_cb(GtkWidget *checkbox, AccountPrefsDialog *dialog)
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
572 {
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
573 gtk_widget_set_sensitive(dialog->icon_hbox, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
574 }
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
575
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
576 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
577 add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
578 {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
579 GtkWidget *frame;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
580 GtkWidget *vbox;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
581 GtkWidget *vbox2;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
582 GtkWidget *hbox;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
583 GtkWidget *hbox2;
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
584 GtkWidget *button;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
585 GtkWidget *label;
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
586
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
587 if (dialog->user_frame != NULL)
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
588 gtk_widget_destroy(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
589
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
590 /* Build the user options frame. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
591 frame = pidgin_make_frame(parent, _("User Options"));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
592 dialog->user_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
593
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
594 gtk_box_reorder_child(GTK_BOX(parent), dialog->user_frame, 1);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
595 gtk_widget_show(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
596
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
597 /* Main vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
598 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
599 gtk_container_add(GTK_CONTAINER(frame), vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
600 gtk_widget_show(vbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
601
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
602 /* New mail notifications */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
603 dialog->new_mail_check =
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
604 gtk_check_button_new_with_mnemonic(_("New _mail notifications"));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
605 gtk_box_pack_start(GTK_BOX(vbox), dialog->new_mail_check, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
606 gtk_widget_show(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
607
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
608 /* Buddy icon */
17563
eb3c8a19ceff Add some mnemonics to the new/modify account dialog. These are also taken
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17562
diff changeset
609 dialog->icon_check = gtk_check_button_new_with_mnemonic(_("Use this buddy _icon for this account:"));
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
610 g_signal_connect(G_OBJECT(dialog->icon_check), "toggled", G_CALLBACK(icon_check_cb), dialog);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
611 gtk_widget_show(dialog->icon_check);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
612 gtk_box_pack_start(GTK_BOX(vbox), dialog->icon_check, FALSE, FALSE, 0);
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
613
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
614 dialog->icon_hbox = hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
615 gtk_widget_set_sensitive(hbox, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
616 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
617 gtk_widget_show(hbox);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
618
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
619 label = gtk_label_new(" ");
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
620 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
621 gtk_widget_show(label);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
622
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
623 button = gtk_button_new();
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
624 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
625 gtk_widget_show(button);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
626 g_signal_connect(G_OBJECT(button), "clicked",
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
627 G_CALLBACK(icon_select_cb), dialog);
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
628
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
629 dialog->icon_entry = gtk_image_new();
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
630 gtk_container_add(GTK_CONTAINER(button), dialog->icon_entry);
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
631 gtk_widget_show(dialog->icon_entry);
14764
1a07873891aa [gaim-migrate @ 17454]
Mark Doliner <markdoliner@pidgin.im>
parents: 14671
diff changeset
632 /* TODO: Uh, isn't this next line pretty useless? */
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
633 pidgin_set_accessible_label (dialog->icon_entry, label);
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
634 purple_imgstore_unref(dialog->icon_img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
635 dialog->icon_img = NULL;
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
636
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
637 vbox2 = gtk_vbox_new(FALSE, 0);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
638 gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 0);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
639 gtk_widget_show(vbox2);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
640
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
641 hbox2 = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
642 gtk_box_pack_start(GTK_BOX(vbox2), hbox2, FALSE, FALSE, PIDGIN_HIG_BORDER);
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
643 gtk_widget_show(hbox2);
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
644
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
645 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
646 g_signal_connect(G_OBJECT(button), "clicked",
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
647 G_CALLBACK(icon_reset_cb), dialog);
9333
d8b5ebef7b28 [gaim-migrate @ 10141]
Christian Hammond <chipx86@chipx86.com>
parents: 9318
diff changeset
648 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 0);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
649 gtk_widget_show(button);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
650
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
651 if (dialog->prpl_info != NULL) {
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
652 if (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK))
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
653 gtk_widget_hide(dialog->new_mail_check);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
654
19773
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19764
diff changeset
655 if (dialog->prpl_info->icon_spec.format == NULL) {
19764
9485b7cccfca If a prpl doesn't support icons then hide the "use a custom icon?"
Mark Doliner <markdoliner@pidgin.im>
parents: 19683
diff changeset
656 gtk_widget_hide(dialog->icon_check);
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
657 gtk_widget_hide(dialog->icon_hbox);
19773
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19764
diff changeset
658 }
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
659 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
660
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
661 if (dialog->account != NULL) {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
662 PurpleStoredImage *img;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
663 gpointer data = NULL;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
664 size_t len = 0;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
665
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
666 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->new_mail_check),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
667 purple_account_get_check_mail(dialog->account));
14670
011e0da9c2a8 [gaim-migrate @ 17336]
Mark Doliner <markdoliner@pidgin.im>
parents: 14625
diff changeset
668
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
669 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->icon_check),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
670 !purple_account_get_bool(dialog->account, "use-global-buddyicon",
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
671 TRUE));
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
672
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
673 img = purple_buddy_icons_find_account_icon(dialog->account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
674 if (img)
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
675 {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
676 len = purple_imgstore_get_size(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
677 data = g_memdup(purple_imgstore_get_data(img), len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
678 }
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
679 set_dialog_icon(dialog, data, len,
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
680 g_strdup(purple_account_get_buddy_icon_path(dialog->account)));
15132
672c39839af1 [gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15119
diff changeset
681 } else {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
682 set_dialog_icon(dialog, NULL, 0, NULL);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
683 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
684
7207
d59fb691238c [gaim-migrate @ 7776]
Nathan Walp <nwalp@pidgin.im>
parents: 7179
diff changeset
685 if (!dialog->prpl_info ||
d59fb691238c [gaim-migrate @ 7776]
Nathan Walp <nwalp@pidgin.im>
parents: 7179
diff changeset
686 (!(dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK) &&
9308
4ea759d72d37 [gaim-migrate @ 10116]
Sean Egan <seanegan@pidgin.im>
parents: 9304
diff changeset
687 (dialog->prpl_info->icon_spec.format == NULL))) {
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
688
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
689 /* Nothing to see :( aww. */
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
690 gtk_widget_hide(dialog->user_frame);
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
691 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
692 }
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
693
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
694 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
695 add_protocol_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
696 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
697 PurpleAccountOption *option;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
698 PurpleAccount *account;
17302
073f3871ef48 Use talk.google.com as the default server for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17301
diff changeset
699 GtkWidget *frame, *vbox, *check, *entry, *combo, *menu, *item;
18190
bcf28ef7e8ff Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents: 18186
diff changeset
700 GList *list, *node;
12185
e693dd57141c [gaim-migrate @ 14487]
Etan Reisner <deryni@pidgin.im>
parents: 12172
diff changeset
701 gint i, idx, int_value;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
702 GtkListStore *model;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
703 GtkTreeIter iter;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
704 GtkCellRenderer *renderer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
705 PurpleKeyValuePair *kvp;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
706 GList *l;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
707 char buf[1024];
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
708 char *title, *tmp;
17851
02fbbecd95f5 Make sure if some plugin used pidgin_protocol_option_menu_new, they continue
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17302
diff changeset
709 const char *str_value;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
710 gboolean bool_value;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
711
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
712 if (dialog->protocol_frame != NULL) {
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
713 gtk_widget_destroy(dialog->protocol_frame);
5689
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
714 dialog->protocol_frame = NULL;
340d70c1ba9d [gaim-migrate @ 6110]
Christian Hammond <chipx86@chipx86.com>
parents: 5688
diff changeset
715 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
716
14235
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
717 if (dialog->protocol_opt_entries != NULL) {
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
718 g_list_free(dialog->protocol_opt_entries);
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
719 dialog->protocol_opt_entries = NULL;
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
720 }
f67127cab32f [gaim-migrate @ 16823]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14220
diff changeset
721
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
722 if (dialog->prpl_info == NULL ||
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
723 dialog->prpl_info->protocol_options == NULL) {
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
724
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
725 return;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
726 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
727
5690
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
728 account = dialog->account;
282596819f53 [gaim-migrate @ 6111]
Christian Hammond <chipx86@chipx86.com>
parents: 5689
diff changeset
729
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
730 /* Build the protocol options frame. */
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
731 g_snprintf(buf, sizeof(buf), _("%s Options"), dialog->plugin->info->name);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
732
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
733 frame = pidgin_make_frame(parent, buf);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
734 dialog->protocol_frame =
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
735 gtk_widget_get_parent(gtk_widget_get_parent(frame));
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
736
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
737 gtk_box_reorder_child(GTK_BOX(parent), dialog->protocol_frame, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
738 gtk_widget_show(dialog->protocol_frame);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
739
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
740 /* Main vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
741 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
742 gtk_container_add(GTK_CONTAINER(frame), vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
743 gtk_widget_show(vbox);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
744
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
745 for (l = dialog->prpl_info->protocol_options; l != NULL; l = l->next)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
746 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
747 option = (PurpleAccountOption *)l->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
748
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
749 switch (purple_account_option_get_type(option))
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
750 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
751 case PURPLE_PREF_BOOLEAN:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
752 if (account == NULL ||
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
753 strcmp(purple_account_get_protocol_id(account),
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
754 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
755 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
756 bool_value = purple_account_option_get_default_bool(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
757 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
758 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
759 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
760 bool_value = purple_account_get_bool(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
761 purple_account_option_get_setting(option),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
762 purple_account_option_get_default_bool(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
763 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
764
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
765 tmp = g_strconcat("_", purple_account_option_get_text(option), NULL);
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
766 check = gtk_check_button_new_with_mnemonic(tmp);
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
767 g_free(tmp);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
768
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
769 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
770 bool_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
771
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
772 gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
773 gtk_widget_show(check);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
774
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
775 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
776 g_list_append(dialog->protocol_opt_entries, check);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
777
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
778 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
779
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
780 case PURPLE_PREF_INT:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
781 if (account == NULL ||
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
782 strcmp(purple_account_get_protocol_id(account),
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
783 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
784 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
785 int_value = purple_account_option_get_default_int(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
786 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
787 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
788 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
789 int_value = purple_account_get_int(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
790 purple_account_option_get_setting(option),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
791 purple_account_option_get_default_int(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
792 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
793
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
794 g_snprintf(buf, sizeof(buf), "%d", int_value);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
795
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
796 entry = gtk_entry_new();
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
797 gtk_entry_set_text(GTK_ENTRY(entry), buf);
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
798
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
799 title = g_strdup_printf("_%s:",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
800 purple_account_option_get_text(option));
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
801
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
802 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
803
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
804 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
805
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
806 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
807 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
808
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
809 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
810
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
811 case PURPLE_PREF_STRING:
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
812 if (account == NULL ||
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
813 strcmp(purple_account_get_protocol_id(account),
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
814 dialog->protocol_id))
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
815 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
816 str_value = purple_account_option_get_default_string(option);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
817 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
818 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
819 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
820 str_value = purple_account_get_string(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
821 purple_account_option_get_setting(option),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
822 purple_account_option_get_default_string(option));
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7859
diff changeset
823 }
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
824
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
825 entry = gtk_entry_new();
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
826 if (purple_account_option_get_masked(option))
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
827 {
10658
6223ea383921 [gaim-migrate @ 12190]
Richard Laager <rlaager@pidgin.im>
parents: 10649
diff changeset
828 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15352
diff changeset
829 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
830 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11985
diff changeset
831 }
5663
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
832
17302
073f3871ef48 Use talk.google.com as the default server for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17301
diff changeset
833 /* Google Talk default domain hackery! */
073f3871ef48 Use talk.google.com as the default server for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17301
diff changeset
834 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
073f3871ef48 Use talk.google.com as the default server for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17301
diff changeset
835 item = gtk_menu_get_active(GTK_MENU(menu));
17851
02fbbecd95f5 Make sure if some plugin used pidgin_protocol_option_menu_new, they continue
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17302
diff changeset
836 if (str_value == NULL && g_object_get_data(G_OBJECT(item), "fake") &&
17302
073f3871ef48 Use talk.google.com as the default server for Google Talk accounts
Sean Egan <seanegan@pidgin.im>
parents: 17301
diff changeset
837 !strcmp(_("Connect server"), purple_account_option_get_text(option)))
17484
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
838 str_value = "talk.google.com";
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
839
5663
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
840 if (str_value != NULL)
05c9effe5b5f [gaim-migrate @ 6077]
Christian Hammond <chipx86@chipx86.com>
parents: 5662
diff changeset
841 gtk_entry_set_text(GTK_ENTRY(entry), str_value);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
842
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
843 title = g_strdup_printf("_%s:",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
844 purple_account_option_get_text(option));
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
845
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
846 add_pref_box(dialog, vbox, title, entry);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
847
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
848 g_free(title);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
849
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
850 dialog->protocol_opt_entries =
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
851 g_list_append(dialog->protocol_opt_entries, entry);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
852
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
853 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
854
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
855 case PURPLE_PREF_STRING_LIST:
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
856 i = 0;
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
857 idx = 0;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
858
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
859 if (account == NULL ||
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
860 strcmp(purple_account_get_protocol_id(account),
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
861 dialog->protocol_id))
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
862 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
863 str_value = purple_account_option_get_default_list_value(option);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
864 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
865 else
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
866 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
867 str_value = purple_account_get_string(account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
868 purple_account_option_get_setting(option),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
869 purple_account_option_get_default_list_value(option));
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
870 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
871
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
872 list = purple_account_option_get_list(option);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
873 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
874 combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
875
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
876 /* Loop through list of PurpleKeyValuePair items */
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
877 for (node = list; node != NULL; node = node->next) {
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
878 if (node->data != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
879 kvp = (PurpleKeyValuePair *) node->data;
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
880 if ((kvp->value != NULL) && (str_value != NULL) &&
15080
bb09a291a99b [gaim-migrate @ 17800]
Daniel Atallah <datallah@pidgin.im>
parents: 15054
diff changeset
881 !g_utf8_collate(kvp->value, str_value))
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
882 idx = i;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
883
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
884 gtk_list_store_append(model, &iter);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
885 gtk_list_store_set(model, &iter,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
886 0, kvp->key,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
887 1, kvp->value,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
888 -1);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
889 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
890
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
891 i++;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
892 }
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
893
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
894 /* Set default */
12172
717fa0ec02c4 [gaim-migrate @ 14474]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12152
diff changeset
895 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), idx);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
896
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
897 /* Define renderer */
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
898 renderer = gtk_cell_renderer_text_new();
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
899 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer,
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
900 TRUE);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
901 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
902 renderer, "text", 0, NULL);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
903
17672
a5c4e192659a Add mnemonics to prpl provided account options, from OpenSolaris patch
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17654
diff changeset
904 title = g_strdup_printf("_%s:",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
905 purple_account_option_get_text(option));
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
906
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
907 add_pref_box(dialog, vbox, title, combo);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
908
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
909 g_free(title);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
910
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
911 dialog->protocol_opt_entries =
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
912 g_list_append(dialog->protocol_opt_entries, combo);
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
913
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
914 break;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
915
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
916
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
917 default:
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
918 break;
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
919 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
920 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
921 }
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
922
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
923 static GtkWidget *
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
924 make_proxy_dropdown(void)
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
925 {
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
926 GtkWidget *dropdown;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
927 GtkListStore *model;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
928 GtkTreeIter iter;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
929 GtkCellRenderer *renderer;
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
930
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
931 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
932 dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
933
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
934 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
935 gtk_list_store_set(model, &iter,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
936 0, purple_running_gnome() ? _("Use GNOME Proxy Settings")
15109
2c5f1d3e8db7 [gaim-migrate @ 17831]
Sean Egan <seanegan@pidgin.im>
parents: 15100
diff changeset
937 :_("Use Global Proxy Settings"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
938 1, PURPLE_PROXY_USE_GLOBAL,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
939 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
940
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
941 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
942 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
943 0, _("No Proxy"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
944 1, PURPLE_PROXY_NONE,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
945 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
946
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
947 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
948 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
949 0, _("HTTP"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
950 1, PURPLE_PROXY_HTTP,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
951 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
952
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
953 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
954 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
955 0, _("SOCKS 4"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
956 1, PURPLE_PROXY_SOCKS4,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
957 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
958
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
959 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
960 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
961 0, _("SOCKS 5"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
962 1, PURPLE_PROXY_SOCKS5,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
963 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
964
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
965 gtk_list_store_append(model, &iter);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
966 gtk_list_store_set(model, &iter,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
967 0, _("Use Environmental Settings"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
968 1, PURPLE_PROXY_USE_ENVVAR,
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
969 -1);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
970
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
971 renderer = gtk_cell_renderer_text_new();
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
972 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
973 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer,
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
974 "text", 0, NULL);
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
975
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
976 return dropdown;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
977 }
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
978
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
979 static void
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
980 proxy_type_changed_cb(GtkWidget *menu, AccountPrefsDialog *dialog)
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
981 {
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
982 dialog->new_proxy_type =
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
983 gtk_combo_box_get_active(GTK_COMBO_BOX(menu)) - 1;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
984
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
985 if (dialog->new_proxy_type == PURPLE_PROXY_USE_GLOBAL ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
986 dialog->new_proxy_type == PURPLE_PROXY_NONE ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
987 dialog->new_proxy_type == PURPLE_PROXY_USE_ENVVAR) {
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
988
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
989 gtk_widget_hide_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
990 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
991 else
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
992 gtk_widget_show_all(dialog->proxy_vbox);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
993 }
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
994
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
995 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
996 port_popup_cb(GtkWidget *w, GtkMenu *menu, gpointer data)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
997 {
13702
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
998 GtkWidget *item1;
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
999 GtkWidget *item2;
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1000
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1001 /* This is an easter egg.
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1002 It means one of two things, both intended as humourus:
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1003 A) your network is really slow and you have nothing better to do than
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1004 look at butterflies.
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1005 B)You are looking really closely at something that shouldn't matter. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1006 item1 = gtk_menu_item_new_with_label(_("If you look real closely"));
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1007
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1008 /* This is an easter egg. See the comment on the previous line in the source. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1009 item2 = gtk_menu_item_new_with_label(_("you can see the butterflies mating"));
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1010
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1011 gtk_widget_show(item1);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1012 gtk_widget_show(item2);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1013
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1014 /* Prepend these in reverse order so they appear correctly. */
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1015 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item2);
35310965f38a [gaim-migrate @ 16103]
Richard Laager <rlaager@pidgin.im>
parents: 13640
diff changeset
1016 gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), item1);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1017 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1018
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1019 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1020 add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1021 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1022 PurpleProxyInfo *proxy_info;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1023 GtkWidget *frame;
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1024 GtkWidget *vbox;
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1025 GtkWidget *vbox2;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1026
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1027 if (dialog->proxy_frame != NULL)
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1028 gtk_widget_destroy(dialog->proxy_frame);
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1029
17654
d4d31a6defa0 The underscore in "Proxy Options" wasn't actually rendering as a mnemonic.
Richard Laager <rlaager@pidgin.im>
parents: 17563
diff changeset
1030 frame = pidgin_make_frame(parent, _("Proxy Options"));
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1031 dialog->proxy_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame));
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1032
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1033 gtk_box_reorder_child(GTK_BOX(parent), dialog->proxy_frame, 1);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1034 gtk_widget_show(dialog->proxy_frame);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1035
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1036 /* Main vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1037 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1038 gtk_container_add(GTK_CONTAINER(frame), vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1039 gtk_widget_show(vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1040
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1041 /* Proxy Type drop-down. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1042 dialog->proxy_dropdown = make_proxy_dropdown();
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1043
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1044 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1045
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1046 /* Setup the second vbox, which may be hidden at times. */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1047 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1048 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, PIDGIN_HIG_BORDER);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1049 gtk_widget_show(vbox2);
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1050
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1051 /* Host */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1052 dialog->proxy_host_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1053 add_pref_box(dialog, vbox2, _("_Host:"), dialog->proxy_host_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1054
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1055 /* Port */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1056 dialog->proxy_port_entry = gtk_entry_new();
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1057 add_pref_box(dialog, vbox2, _("_Port:"), dialog->proxy_port_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1058
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1059 g_signal_connect(G_OBJECT(dialog->proxy_port_entry), "populate-popup",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1060 G_CALLBACK(port_popup_cb), NULL);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1061
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1062 /* User */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1063 dialog->proxy_user_entry = gtk_entry_new();
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1064
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1065 add_pref_box(dialog, vbox2, _("_Username:"), dialog->proxy_user_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1066
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1067 /* Password */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1068 dialog->proxy_pass_entry = gtk_entry_new();
5700
8a0df68ba664 [gaim-migrate @ 6121]
Christian Hammond <chipx86@chipx86.com>
parents: 5699
diff changeset
1069 gtk_entry_set_visibility(GTK_ENTRY(dialog->proxy_pass_entry), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15352
diff changeset
1070 if (gtk_entry_get_invisible_char(GTK_ENTRY(dialog->proxy_pass_entry)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1071 gtk_entry_set_invisible_char(GTK_ENTRY(dialog->proxy_pass_entry), PIDGIN_INVISIBLE_CHAR);
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1072 add_pref_box(dialog, vbox2, _("Pa_ssword:"), dialog->proxy_pass_entry);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1073
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1074 if (dialog->account != NULL &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1075 (proxy_info = purple_account_get_proxy_info(dialog->account)) != NULL) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1076
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1077 PurpleProxyType type = purple_proxy_info_get_type(proxy_info);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1078 const char *value;
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1079 int int_val;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1080
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1081 /* Hah! */
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
1082 /* I dunno what you're laughing about, fuzz ball. */
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6581
diff changeset
1083 dialog->new_proxy_type = type;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1084 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
9662
c8c09944d2e6 [gaim-migrate @ 10510]
Joe Shaw <joe@joeshaw.org>
parents: 9617
diff changeset
1085 type + 1);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1086
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1087 if (type == PURPLE_PROXY_USE_GLOBAL || type == PURPLE_PROXY_NONE ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1088 type == PURPLE_PROXY_USE_ENVVAR)
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1089 gtk_widget_hide_all(vbox2);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1090
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1091
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1092 if ((value = purple_proxy_info_get_host(proxy_info)) != NULL)
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1093 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_host_entry), value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1094
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1095 if ((int_val = purple_proxy_info_get_port(proxy_info)) != 0) {
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1096 char buf[11];
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1097
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1098 g_snprintf(buf, sizeof(buf), "%d", int_val);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1099
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1100 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_port_entry), buf);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1101 }
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1102
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1103 if ((value = purple_proxy_info_get_username(proxy_info)) != NULL)
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1104 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_user_entry), value);
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1105
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1106 if ((value = purple_proxy_info_get_password(proxy_info)) != NULL)
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1107 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1108 }
6856
5ed6b8356ebc [gaim-migrate @ 7401]
Mark Doliner <markdoliner@pidgin.im>
parents: 6751
diff changeset
1109 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1110 dialog->new_proxy_type = PURPLE_PROXY_USE_GLOBAL;
8555
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1111 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
0f6f88300b00 [gaim-migrate @ 9298]
Nathan Walp <nwalp@pidgin.im>
parents: 8454
diff changeset
1112 dialog->new_proxy_type + 1);
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1113 gtk_widget_hide_all(vbox2);
6856
5ed6b8356ebc [gaim-migrate @ 7401]
Mark Doliner <markdoliner@pidgin.im>
parents: 6751
diff changeset
1114 }
5687
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1115
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1116 /* Connect signals. */
2c8a3137f1b8 [gaim-migrate @ 6108]
Christian Hammond <chipx86@chipx86.com>
parents: 5686
diff changeset
1117 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1118 G_CALLBACK(proxy_type_changed_cb), dialog);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1119 }
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1120
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5664
diff changeset
1121 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1122 account_win_destroy_cb(GtkWidget *w, GdkEvent *event,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1123 AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1124 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1125 g_hash_table_remove(account_pref_wins, dialog->account);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1126
7450
d12556040468 [gaim-migrate @ 8061]
zuperdeei
parents: 7269
diff changeset
1127 gtk_widget_destroy(dialog->window);
d12556040468 [gaim-migrate @ 8061]
zuperdeei
parents: 7269
diff changeset
1128
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1129 g_list_free(dialog->user_split_entries);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1130 g_list_free(dialog->protocol_opt_entries);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
1131 g_free(dialog->protocol_id);
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1132
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1133 purple_imgstore_unref(dialog->icon_img);
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10432
diff changeset
1134
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
1135 if (dialog->icon_filesel)
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
1136 gtk_widget_destroy(dialog->icon_filesel);
5826
32bbc37943f4 [gaim-migrate @ 6256]
Sean Egan <seanegan@pidgin.im>
parents: 5804
diff changeset
1137
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1138 purple_signals_disconnect_by_handle(dialog);
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
1139
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1140 g_free(dialog);
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1141 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1142
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1143 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1144 cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1145 {
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1146 account_win_destroy_cb(NULL, NULL, dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1147 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1148
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1149 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1150 ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1151 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1152 PurpleProxyInfo *proxy_info = NULL;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1153 GList *l, *l2;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1154 const char *value;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1155 char *username;
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1156 char *tmp;
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1157 gboolean new_acct = FALSE, icon_change = FALSE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1158 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1159 PurplePluginProtocolInfo *prpl_info;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1160
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1161 /* Build the username string. */
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1162 username = g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->screenname_entry)));
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1163
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1164 if (dialog->prpl_info != NULL)
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1165 {
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1166 for (l = dialog->prpl_info->user_splits,
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1167 l2 = dialog->user_split_entries;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1168 l != NULL && l2 != NULL;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1169 l = l->next, l2 = l2->next)
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1170 {
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1171 PurpleAccountUserSplit *split = l->data;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1172 GtkEntry *entry = l2->data;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1173 char sep[2] = " ";
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1174
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1175 value = gtk_entry_get_text(entry);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1176
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1177 *sep = purple_account_user_split_get_separator(split);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1178
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1179 tmp = g_strconcat(username, sep,
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1180 (*value ? value :
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1181 purple_account_user_split_get_default_value(split)),
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1182 NULL);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1183
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1184 g_free(username);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1185 username = tmp;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1186 }
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1187 }
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1188
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1189 if (dialog->account == NULL)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1190 {
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1191 if (purple_accounts_find(username, dialog->protocol_id) != NULL) {
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1192 purple_debug_warning("gtkaccount", "Trying to add a duplicate %s account (%s).\n",
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1193 dialog->protocol_id, username);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1194
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1195 purple_notify_error(NULL, NULL, _("Unable to save new account"),
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1196 _("An account already exists with the specified criteria."));
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1197
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1198 g_free(username);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1199 return;
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1200 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1201
19049
63cbab1c4036 When a new user starts Pidgin we hide the buddy list so that they only
Mark Doliner <markdoliner@pidgin.im>
parents: 18841
diff changeset
1202 if (purple_accounts_get_all() == NULL) {
63cbab1c4036 When a new user starts Pidgin we hide the buddy list so that they only
Mark Doliner <markdoliner@pidgin.im>
parents: 18841
diff changeset
1203 /* We're adding our first account. Be polite and show the buddy list */
63cbab1c4036 When a new user starts Pidgin we hide the buddy list so that they only
Mark Doliner <markdoliner@pidgin.im>
parents: 18841
diff changeset
1204 purple_blist_set_visible(TRUE);
63cbab1c4036 When a new user starts Pidgin we hide the buddy list so that they only
Mark Doliner <markdoliner@pidgin.im>
parents: 18841
diff changeset
1205 }
63cbab1c4036 When a new user starts Pidgin we hide the buddy list so that they only
Mark Doliner <markdoliner@pidgin.im>
parents: 18841
diff changeset
1206
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1207 account = purple_account_new(username, dialog->protocol_id);
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1208 new_acct = TRUE;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1209 }
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1210 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1211 {
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1212 account = dialog->account;
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1213
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
1214 /* Protocol */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1215 purple_account_set_protocol_id(account, dialog->protocol_id);
5699
b47a3b7d1247 [gaim-migrate @ 6120]
Christian Hammond <chipx86@chipx86.com>
parents: 5698
diff changeset
1216 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1217
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1218 /* Alias */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1219 value = gtk_entry_get_text(GTK_ENTRY(dialog->alias_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1220
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1221 if (*value != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1222 purple_account_set_alias(account, value);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1223 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1224 purple_account_set_alias(account, NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1225
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1226 /* Buddy Icon */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1227 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin);
14625
670a2d2a5eb3 [gaim-migrate @ 17286]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14313
diff changeset
1228 if (prpl_info != NULL && prpl_info->icon_spec.format != NULL)
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1229 {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1230 const char *filename;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1231
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1232 if (new_acct || purple_account_get_bool(account, "use-global-buddyicon", TRUE) ==
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1233 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)))
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1234 {
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1235 icon_change = TRUE;
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1236 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1237 purple_account_set_bool(account, "use-global-buddyicon", !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)));
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1238
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1239 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->icon_check)))
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1240 {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1241 if (dialog->icon_img)
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1242 {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1243 size_t len = purple_imgstore_get_size(dialog->icon_img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1244 purple_buddy_icons_set_account_icon(account,
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1245 g_memdup(purple_imgstore_get_data(dialog->icon_img), len),
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1246 len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1247 purple_account_set_buddy_icon_path(account, purple_imgstore_get_filename(dialog->icon_img));
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1248 }
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1249 else
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1250 {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1251 purple_buddy_icons_set_account_icon(account, NULL, 0);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1252 purple_account_set_buddy_icon_path(account, NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1253 }
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1254 }
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1255 else if ((filename = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon")) && icon_change)
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1256 {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1257 size_t len;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1258 gpointer data = pidgin_convert_buddy_icon(dialog->plugin, filename, &len);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1259 purple_account_set_buddy_icon_path(account, filename);
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
1260 purple_buddy_icons_set_account_icon(account, data, len);
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1261 }
14195
0f7cb3b272b2 [gaim-migrate @ 16775]
Sean Egan <seanegan@pidgin.im>
parents: 14150
diff changeset
1262 }
14313
c766ccc907f7 [gaim-migrate @ 16933]
Mark Doliner <markdoliner@pidgin.im>
parents: 14258
diff changeset
1263
10432
da2df724be56 [gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents: 10420
diff changeset
1264
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1265 /* Remember Password */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1266 purple_account_set_remember_password(account,
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1267 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1268 GTK_TOGGLE_BUTTON(dialog->remember_pass_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1269
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1270 /* Check Mail */
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1271 if (dialog->prpl_info && dialog->prpl_info->options & OPT_PROTO_MAIL_CHECK)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1272 purple_account_set_check_mail(account,
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1273 gtk_toggle_button_get_active(
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1274 GTK_TOGGLE_BUTTON(dialog->new_mail_check)));
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1275
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1276 /* Password */
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1277 value = gtk_entry_get_text(GTK_ENTRY(dialog->password_entry));
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1278
11985
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1279 /*
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1280 * We set the password if this is a new account because new accounts
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1281 * will be set to online, and if the user has entered a password into
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1282 * the account editor (but has not checked the 'save' box), then we
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1283 * don't want to prompt them.
d4a210fb43e9 [gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents: 11789
diff changeset
1284 */
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1285 if ((purple_account_get_remember_password(account) || new_acct) && (*value != '\0'))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1286 purple_account_set_password(account, value);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1287 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1288 purple_account_set_password(account, NULL);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1289
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1290 purple_account_set_username(account, username);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1291 g_free(username);
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1292
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1293 /* Add the protocol settings */
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1294 if (dialog->prpl_info) {
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1295 for (l = dialog->prpl_info->protocol_options,
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1296 l2 = dialog->protocol_opt_entries;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1297 l != NULL && l2 != NULL;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1298 l = l->next, l2 = l2->next) {
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1299
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1300 PurplePrefType type;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1301 PurpleAccountOption *option = l->data;
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1302 GtkWidget *widget = l2->data;
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1303 GtkTreeIter iter;
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1304 const char *setting;
13640
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1305 char *value2;
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1306 int int_value;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1307 gboolean bool_value;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1308
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1309 type = purple_account_option_get_type(option);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1310
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1311 setting = purple_account_option_get_setting(option);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1312
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1313 switch (type) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1314 case PURPLE_PREF_STRING:
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1315 value = gtk_entry_get_text(GTK_ENTRY(widget));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1316 purple_account_set_string(account, setting, value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1317 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1318
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1319 case PURPLE_PREF_INT:
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1320 int_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget)));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1321 purple_account_set_int(account, setting, int_value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1322 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1323
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1324 case PURPLE_PREF_BOOLEAN:
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1325 bool_value =
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1326 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1327 purple_account_set_bool(account, setting, bool_value);
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1328 break;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1329
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1330 case PURPLE_PREF_STRING_LIST:
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1331 gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter);
13640
99dba9bf3686 [gaim-migrate @ 16037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13222
diff changeset
1332 gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(widget)), &iter, 1, &value2, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1333 purple_account_set_string(account, setting, value2);
12106
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1334 break;
d7593d9b8bc9 [gaim-migrate @ 14403]
Sean Egan <seanegan@pidgin.im>
parents: 12073
diff changeset
1335
7208
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1336 default:
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1337 break;
3e883d5c246b [gaim-migrate @ 7777]
Nathan Walp <nwalp@pidgin.im>
parents: 7207
diff changeset
1338 }
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1339 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1340 }
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1341
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1342 /* Set the proxy stuff. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1343 proxy_info = purple_account_get_proxy_info(account);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1344
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1345 /* Create the proxy info if it doesn't exist. */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1346 if (proxy_info == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1347 proxy_info = purple_proxy_info_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1348 purple_account_set_proxy_info(account, proxy_info);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1349 }
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1350
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1351 /* Set the proxy info type. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1352 purple_proxy_info_set_type(proxy_info, dialog->new_proxy_type);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1353
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1354 /* Host */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1355 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_host_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1356
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1357 if (*value != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1358 purple_proxy_info_set_host(proxy_info, value);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1359 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1360 purple_proxy_info_set_host(proxy_info, NULL);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1361
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1362 /* Port */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1363 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_port_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1364
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1365 if (*value != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1366 purple_proxy_info_set_port(proxy_info, atoi(value));
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1367 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1368 purple_proxy_info_set_port(proxy_info, 0);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1369
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1370 /* Username */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1371 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_user_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1372
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1373 if (*value != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1374 purple_proxy_info_set_username(proxy_info, value);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1375 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1376 purple_proxy_info_set_username(proxy_info, NULL);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1377
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1378 /* Password */
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1379 value = gtk_entry_get_text(GTK_ENTRY(dialog->proxy_pass_entry));
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1380
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1381 if (*value != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1382 purple_proxy_info_set_password(proxy_info, value);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1383 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1384 purple_proxy_info_set_password(proxy_info, NULL);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1385
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1386 /* If there are no values set then proxy_info NULL */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1387 if ((purple_proxy_info_get_type(proxy_info) == PURPLE_PROXY_USE_GLOBAL) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1388 (purple_proxy_info_get_host(proxy_info) == NULL) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1389 (purple_proxy_info_get_port(proxy_info) == 0) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1390 (purple_proxy_info_get_username(proxy_info) == NULL) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1391 (purple_proxy_info_get_password(proxy_info) == NULL))
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1392 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1393 purple_account_set_proxy_info(account, NULL);
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 14921
diff changeset
1394 proxy_info = NULL;
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1395 }
5697
146c609c3733 [gaim-migrate @ 6118]
Christian Hammond <chipx86@chipx86.com>
parents: 5696
diff changeset
1396
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1397 /* If this is a new account, add it to our list */
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1398 if (new_acct)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1399 purple_accounts_add(account);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1400 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1401 purple_signal_emit(pidgin_account_get_handle(), "account-modified", account);
11739
cc15987b3937 [gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents: 11733
diff changeset
1402
11987
a6eb4a3f1136 [gaim-migrate @ 14280]
Mark Doliner <markdoliner@pidgin.im>
parents: 11986
diff changeset
1403 /* If this is a new account, then sign on! */
19575
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1404 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->register_button))) {
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1405 purple_account_register(account);
19669
999fdd697e69 Don't allow duplicate accounts to be added. Ideally some of these checks should be in the core, but I don't see a way of doing that without forcing 3.0.0. Fixes #2269 (the part that was actually broken).
Daniel Atallah <datallah@pidgin.im>
parents: 19575
diff changeset
1406 } else if (new_acct) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1407 const PurpleSavedStatus *saved_status;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1408
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1409 saved_status = purple_savedstatus_get_current();
12125
c1e55f812ded [gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents: 12123
diff changeset
1410 if (saved_status != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1411 purple_savedstatus_activate_for_account(saved_status, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1412 purple_account_set_enabled(account, PIDGIN_UI, TRUE);
12121
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
1413 }
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1414 }
10932
a38fb730e964 [gaim-migrate @ 12711]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10931
diff changeset
1415
16889
6fdc2341055c Fixes #601
Sean Egan <seanegan@pidgin.im>
parents: 16752
diff changeset
1416 /* We no longer need the data from the dialog window */
6fdc2341055c Fixes #601
Sean Egan <seanegan@pidgin.im>
parents: 16752
diff changeset
1417 account_win_destroy_cb(NULL, NULL, dialog);
6fdc2341055c Fixes #601
Sean Egan <seanegan@pidgin.im>
parents: 16752
diff changeset
1418
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1419 }
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1420
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1421 static const GtkTargetEntry dnd_targets[] = {
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
1422 {"text/plain", 0, 0},
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1423 {"text/uri-list", 0, 1},
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1424 {"STRING", 0, 2}
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1425 };
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1426
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1427 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1428 pidgin_account_dialog_show(PidginAccountDialogType type,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1429 PurpleAccount *account)
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1430 {
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1431 AccountPrefsDialog *dialog;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1432 GtkWidget *win;
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1433 GtkWidget *main_vbox;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1434 GtkWidget *vbox;
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1435 GtkWidget *bbox;
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1436 GtkWidget *dbox;
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1437 GtkWidget *notebook;
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1438 GtkWidget *button;
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1439
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1440 if (accounts_window != NULL && account != NULL &&
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1441 (dialog = g_hash_table_lookup(account_pref_wins, account)) != NULL)
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1442 {
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1443 gtk_window_present(GTK_WINDOW(dialog->window));
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1444 return;
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1445 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1446
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1447 dialog = g_new0(AccountPrefsDialog, 1);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1448
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1449 if (accounts_window != NULL && account != NULL)
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1450 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1451 g_hash_table_insert(account_pref_wins, account, dialog);
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1452 }
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1453
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1454 dialog->account = account;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1455 dialog->type = type;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1456 dialog->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1457
9971
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1458 if (dialog->account == NULL) {
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1459 /* Select the first prpl in the list*/
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1460 GList *prpl_list = purple_plugins_get_protocols();
9971
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1461 if (prpl_list != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1462 dialog->protocol_id = g_strdup(((PurplePlugin *) prpl_list->data)->info->id);
9971
8291bafb0025 [gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
1463 }
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1464 else
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1465 {
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1466 dialog->protocol_id =
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1467 g_strdup(purple_account_get_protocol_id(dialog->account));
5978
e9bbb1ec8c89 [gaim-migrate @ 6425]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
1468 }
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1469
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1470 if ((dialog->plugin = purple_find_prpl(dialog->protocol_id)) != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1471 dialog->prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1472
17213
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 17035
diff changeset
1473 dialog->window = win = pidgin_create_window((type == PIDGIN_ADD_ACCOUNT_DIALOG) ? _("Add Account") : _("Modify Account"),
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 17035
diff changeset
1474 PIDGIN_HIG_BORDER, "account", FALSE);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1475
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1476 g_signal_connect(G_OBJECT(win), "delete_event",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1477 G_CALLBACK(account_win_destroy_cb), dialog);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1478
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1479 /* Setup the vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1480 main_vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1481 gtk_container_add(GTK_CONTAINER(win), main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1482 gtk_widget_show(main_vbox);
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1483
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1484 notebook = gtk_notebook_new();
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1485 gtk_box_pack_start(GTK_BOX(main_vbox), notebook, FALSE, FALSE, 0);
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1486 gtk_widget_show(GTK_WIDGET(notebook));
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1487
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1488 /* Setup the inner vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1489 dialog->top_vbox = vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1490 gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1491 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox,
12240
194dc3367706 [gaim-migrate @ 14542]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 12185
diff changeset
1492 gtk_label_new_with_mnemonic(_("_Basic")));
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1493 gtk_widget_show(vbox);
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1494
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1495 /* Setup the top frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1496 add_login_options(dialog, vbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1497 add_user_options(dialog, vbox);
5658
c50a2c4faf9c [gaim-migrate @ 6072]
Christian Hammond <chipx86@chipx86.com>
parents: 5657
diff changeset
1498
19575
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1499 button = gtk_check_button_new_with_label(_("Create this new account on the server"));
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1500 gtk_box_pack_start(GTK_BOX(main_vbox), button, FALSE, FALSE, 0);
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1501 gtk_widget_show(button);
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1502 dialog->register_button = button;
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1503 if (dialog->account == NULL)
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1504 gtk_widget_set_sensitive(button, FALSE);
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1505
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1506 if (!dialog->prpl_info || !dialog->prpl_info->register_user)
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1507 gtk_widget_hide(button);
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1508
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1509
b1829eda1afa Instead of a Register button, show a checkbox between the Notebook and the button box. But don't show it if we're using the fake Google Talk prpl. Fixes #1647
Sean Egan <seanegan@pidgin.im>
parents: 19125
diff changeset
1510
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1511 /* Setup the page with 'Advanced'. */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1512 dialog->bottom_vbox = dbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1513 gtk_container_set_border_width(GTK_CONTAINER(dbox), PIDGIN_HIG_BORDER);
11008
35900a535c11 [gaim-migrate @ 12868]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 10967
diff changeset
1514 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox,
12240
194dc3367706 [gaim-migrate @ 14542]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 12185
diff changeset
1515 gtk_label_new_with_mnemonic(_("_Advanced")));
11638
1821b40269a3 [gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11358
diff changeset
1516 gtk_widget_show(dbox);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1517
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1518 /** Setup the bottom frames. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1519 add_protocol_options(dialog, dbox);
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1520 add_proxy_options(dialog, dbox);
5660
90787278c739 [gaim-migrate @ 6074]
Christian Hammond <chipx86@chipx86.com>
parents: 5658
diff changeset
1521
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1522 /* Setup the button box */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1523 bbox = gtk_hbutton_box_new();
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
1524 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1525 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
5686
45ae373be142 [gaim-migrate @ 6107]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
1526 gtk_box_pack_end(GTK_BOX(main_vbox), bbox, FALSE, TRUE, 0);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1527 gtk_widget_show(bbox);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1528
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1529 /* Cancel button */
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1530 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1531 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1532 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1533
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1534 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1535 G_CALLBACK(cancel_account_prefs_cb), dialog);
5692
0ec004b516c2 [gaim-migrate @ 6113]
Christian Hammond <chipx86@chipx86.com>
parents: 5690
diff changeset
1536
5850
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1537 /* Save button */
9537237a7a87 [gaim-migrate @ 6281]
Christian Hammond <chipx86@chipx86.com>
parents: 5842
diff changeset
1538 button = gtk_button_new_from_stock(GTK_STOCK_SAVE);
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1539 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1540
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1541 if (dialog->account == NULL)
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1542 gtk_widget_set_sensitive(button, FALSE);
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1543
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1544 gtk_widget_show(button);
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1545
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1546 dialog->ok_button = button;
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
1547
9314
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1548 /* Set up DND */
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1549 gtk_drag_dest_set(dialog->window,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1550 GTK_DEST_DEFAULT_MOTION |
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1551 GTK_DEST_DEFAULT_DROP,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1552 dnd_targets,
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1553 sizeof(dnd_targets) / sizeof(GtkTargetEntry),
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1554 GDK_ACTION_COPY);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1555
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1556 g_signal_connect(G_OBJECT(dialog->window), "drag_data_received",
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1557 G_CALLBACK(account_dnd_recv), dialog);
923722bd5c11 [gaim-migrate @ 10122]
Sean Egan <seanegan@pidgin.im>
parents: 9312
diff changeset
1558
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1559 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1560 G_CALLBACK(ok_account_prefs_cb), dialog);
5696
3f0ee30f10ff [gaim-migrate @ 6117]
Christian Hammond <chipx86@chipx86.com>
parents: 5693
diff changeset
1561
5657
6c1febf7aca1 [gaim-migrate @ 6071]
Christian Hammond <chipx86@chipx86.com>
parents: 5656
diff changeset
1562 /* Show the window. */
5641
a9d1f7917dd4 [gaim-migrate @ 6054]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
1563 gtk_widget_show(win);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1564 }
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1565
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1566 /**************************************************************************
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1567 * Accounts Dialog
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5637
diff changeset
1568 **************************************************************************/
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1569 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1570 signed_on_off_cb(PurpleConnection *gc, gpointer user_data)
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1571 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1572 PurpleAccount *account;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1573 PidginPulseData *pulse_data;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1574 GtkTreeModel *model;
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1575 GtkTreeIter iter;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1576 GdkPixbuf *pixbuf;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1577 size_t index;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1578
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1579 /* Don't need to do anything if the accounts window is not visible */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1580 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1581 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1582
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1583 account = purple_connection_get_account(gc);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1584 model = GTK_TREE_MODEL(accounts_window->model);
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
1585 index = g_list_index(purple_accounts_get_all(), account);
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1586
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1587 if (gtk_tree_model_iter_nth_child(model, &iter, NULL, index))
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1588 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1589 gtk_tree_model_get(GTK_TREE_MODEL(accounts_window->model), &iter,
7179
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1590 COLUMN_PULSE_DATA, &pulse_data, -1);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1591
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1592 if (pulse_data != NULL)
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1593 {
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1594 if (pulse_data->timeout > 0)
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1595 g_source_remove(pulse_data->timeout);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1596
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1597 g_object_unref(G_OBJECT(pulse_data->online_pixbuf));
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1598
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1599 g_free(pulse_data);
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1600 }
1769277c6e15 [gaim-migrate @ 7747]
Christian Hammond <chipx86@chipx86.com>
parents: 7159
diff changeset
1601
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1602 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1603 if ((pixbuf != NULL) && purple_account_is_disconnected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1604 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1605
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1606 gtk_list_store_set(accounts_window->model, &iter,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1607 COLUMN_ICON, pixbuf,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1608 COLUMN_PULSE_DATA, NULL,
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1609 -1);
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1610
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1611
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
1612 if (pixbuf != NULL)
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
1613 g_object_unref(G_OBJECT(pixbuf));
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1614 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1615 }
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
1616
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1617 /*
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1618 * Get the GtkTreeIter of the specified account in the
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1619 * GtkListStore
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1620 */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1621 static gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1622 accounts_window_find_account_in_treemodel(GtkTreeIter *iter, PurpleAccount *account)
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1623 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1624 GtkTreeModel *model;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1625 PurpleAccount *cur;
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1626
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1627 g_return_val_if_fail(account != NULL, FALSE);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1628 g_return_val_if_fail(accounts_window != NULL, FALSE);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1629
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1630 model = GTK_TREE_MODEL(accounts_window->model);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1631
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1632 if (!gtk_tree_model_get_iter_first(model, iter))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1633 return FALSE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1634
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1635 gtk_tree_model_get(model, iter, COLUMN_DATA, &cur, -1);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1636 if (cur == account)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1637 return TRUE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1638
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1639 while (gtk_tree_model_iter_next(model, iter))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1640 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1641 gtk_tree_model_get(model, iter, COLUMN_DATA, &cur, -1);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1642 if (cur == account)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1643 return TRUE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1644 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1645
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1646 return FALSE;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1647 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1648
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1649 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1650 account_removed_cb(PurpleAccount *account, gpointer user_data)
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1651 {
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1652 AccountPrefsDialog *dialog;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1653 GtkTreeIter iter;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1654
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1655 /* If the account was being modified, close the edit window */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1656 if ((dialog = g_hash_table_lookup(account_pref_wins, account)) != NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1657 account_win_destroy_cb(NULL, NULL, dialog);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1658
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1659 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1660 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1661
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1662 /* Remove the account from the GtkListStore */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1663 if (accounts_window_find_account_in_treemodel(&iter, account))
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1664 gtk_list_store_remove(accounts_window->model, &iter);
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
1665
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1666 if (purple_accounts_get_all() == NULL)
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
1667 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 0);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1668 }
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
1669
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1670 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1671 account_abled_cb(PurpleAccount *account, gpointer user_data)
12070
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1672 {
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1673 GtkTreeIter iter;
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1674
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1675 if (accounts_window == NULL)
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1676 return;
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1677
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1678 /* update the account in the GtkListStore */
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1679 if (accounts_window_find_account_in_treemodel(&iter, account))
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1680 gtk_list_store_set(accounts_window->model, &iter,
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1681 COLUMN_ENABLED, GPOINTER_TO_INT(user_data),
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1682 -1);
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1683 }
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1684
e678eea4d899 [gaim-migrate @ 14365]
Tim Ringenbach <marv@pidgin.im>
parents: 11987
diff changeset
1685 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1686 drag_data_get_cb(GtkWidget *widget, GdkDragContext *ctx,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1687 GtkSelectionData *data, guint info, guint time,
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1688 AccountsWindow *dialog)
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1689 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1690 if (data->target == gdk_atom_intern("PURPLE_ACCOUNT", FALSE)) {
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1691 GtkTreeRowReference *ref;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1692 GtkTreePath *source_row;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1693 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1694 PurpleAccount *account = NULL;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1695 GValue val;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1696
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1697 ref = g_object_get_data(G_OBJECT(ctx), "gtk-tree-view-source-row");
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1698 source_row = gtk_tree_row_reference_get_path(ref);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1699
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1700 if (source_row == NULL)
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1701 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1702
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1703 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1704 source_row);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1705 val.g_type = 0;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1706 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1707 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1708
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1709 dialog->drag_iter = iter;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1710
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1711 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1712
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1713 gtk_selection_data_set(data, gdk_atom_intern("PURPLE_ACCOUNT", FALSE),
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1714 8, (void *)&account, sizeof(account));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1715
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1716 gtk_tree_path_free(source_row);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1717 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1718 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1719
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1720 static void
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1721 move_account_after(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1722 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1723 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1724 GtkTreeIter new_iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1725 PurpleAccount *account;
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1726
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1727 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1728 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1729 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1730
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1731 gtk_list_store_insert_after(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1732
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
1733 set_account(store, &new_iter, account, NULL);
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1734
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1735 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1736 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1737
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1738 static void
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1739 move_account_before(GtkListStore *store, GtkTreeIter *iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1740 GtkTreeIter *position)
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1741 {
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1742 GtkTreeIter new_iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1743 PurpleAccount *account;
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1744
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1745 gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1746 COLUMN_DATA, &account,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1747 -1);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1748
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1749 gtk_list_store_insert_before(store, &new_iter, position);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1750
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
1751 set_account(store, &new_iter, account, NULL);
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1752
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1753 gtk_list_store_remove(store, iter);
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1754 }
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1755
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1756 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1757 drag_data_received_cb(GtkWidget *widget, GdkDragContext *ctx,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1758 guint x, guint y, GtkSelectionData *sd,
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1759 guint info, guint t, AccountsWindow *dialog)
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1760 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1761 if (sd->target == gdk_atom_intern("PURPLE_ACCOUNT", FALSE) && sd->data) {
12420
00bd43a1ac8a [gaim-migrate @ 14727]
Richard Laager <rlaager@pidgin.im>
parents: 12376
diff changeset
1762 gint dest_index;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1763 PurpleAccount *a = NULL;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1764 GtkTreePath *path = NULL;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1765 GtkTreeViewDropPosition position;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1766
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1767 memcpy(&a, sd->data, sizeof(a));
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1768
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1769 if (gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(widget), x, y,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1770 &path, &position)) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1771
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1772 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1773 PurpleAccount *account;
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1774 GValue val;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1775
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1776 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12555
diff changeset
1777 val.g_type = 0;
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1778 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), &iter,
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1779 COLUMN_DATA, &val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1780
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1781 account = g_value_get_pointer(&val);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1782
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1783 switch (position) {
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1784 case GTK_TREE_VIEW_DROP_AFTER:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1785 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1786 move_account_after(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1787 &iter);
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
1788 dest_index = g_list_index(purple_accounts_get_all(),
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1789 account) + 1;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1790 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1791
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1792 case GTK_TREE_VIEW_DROP_BEFORE:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1793 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
1794 dest_index = g_list_index(purple_accounts_get_all(),
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1795 account);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1796
5802
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1797 move_account_before(dialog->model, &dialog->drag_iter,
3f6144df9d97 [gaim-migrate @ 6232]
Christian Hammond <chipx86@chipx86.com>
parents: 5783
diff changeset
1798 &iter);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1799 break;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1800
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1801 default:
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1802 return;
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1803 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1804
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1805 purple_accounts_reorder(a, dest_index);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1806 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1807 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1808 }
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
1809
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1810 static gint
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1811 accedit_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1812 {
18841
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
1813 /* Since this is called as the window is closing, we don't need
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
1814 * pidgin_accounts_window_hide() to also dispose of the window */
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
1815 dialog->window = NULL;
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
1816
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1817 pidgin_accounts_window_hide();
7159
7b8db8de4054 [gaim-migrate @ 7726]
Mark Doliner <markdoliner@pidgin.im>
parents: 7107
diff changeset
1818
6123
f6e1ae37ef35 [gaim-migrate @ 6597]
Mark Doliner <markdoliner@pidgin.im>
parents: 6122
diff changeset
1819 return 0;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1820 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1821
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1822 static gboolean
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1823 configure_cb(GtkWidget *w, GdkEventConfigure *event, AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1824 {
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1825 if (GTK_WIDGET_VISIBLE(w)) {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1826 int old_width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width");
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1827 int col_width;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1828 int difference;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1829
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1830 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width", event->width);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
1831 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height", event->height);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1832
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1833 col_width = gtk_tree_view_column_get_width(dialog->screenname_col);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1834
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1835 if (col_width == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1836 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1837
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1838 difference = (MAX(old_width, event->width) -
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1839 MIN(old_width, event->width));
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1840
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1841 if (difference == 0)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1842 return FALSE;
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1843
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1844 if (old_width < event->width)
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1845 gtk_tree_view_column_set_min_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1846 col_width + difference);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1847 else
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1848 gtk_tree_view_column_set_max_width(dialog->screenname_col,
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1849 col_width - difference);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1850 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1851
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1852 return FALSE;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1853 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1854
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1855 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1856 add_account_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1857 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1858 pidgin_account_dialog_show(PIDGIN_ADD_ACCOUNT_DIALOG, NULL);
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1859 }
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1860
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1861 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1862 modify_account_sel(GtkTreeModel *model, GtkTreePath *path,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1863 GtkTreeIter *iter, gpointer data)
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1864 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1865 PurpleAccount *account;
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1866
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1867 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1868
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1869 if (account != NULL)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1870 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, account);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1871 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1872
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1873 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1874 modify_account_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1875 {
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1876 GtkTreeSelection *selection;
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1877
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1878 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
1879
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1880 gtk_tree_selection_selected_foreach(selection, modify_account_sel, dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1881 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1882
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1883 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1884 delete_account_cb(PurpleAccount *account)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1885 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1886 purple_accounts_delete(account);
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1887 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1888
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1889 static void
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1890 ask_delete_account_sel(GtkTreeModel *model, GtkTreePath *path,
8405
1893bfff3b82 [gaim-migrate @ 9135]
Christian Hammond <chipx86@chipx86.com>
parents: 8363
diff changeset
1891 GtkTreeIter *iter, gpointer data)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1892 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1893 PurpleAccount *account;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1894
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1895 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1);
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1896
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1897 if (account != NULL) {
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1898 char *buf;
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1899
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1900 buf = 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: 15883
diff changeset
1901 purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1902
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1903 purple_request_close_with_handle(account);
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: 16412
diff changeset
1904 purple_request_action(account, NULL, buf, NULL, 0,
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: 16412
diff changeset
1905 account, NULL, 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: 16412
diff changeset
1906 account, 2,
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1907 _("Delete"), delete_account_cb,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1908 _("Cancel"), NULL);
7677
4f40f17e1ad9 [gaim-migrate @ 8321]
Mark Doliner <markdoliner@pidgin.im>
parents: 7480
diff changeset
1909 g_free(buf);
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1910 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1911 }
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1912
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1913 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1914 ask_delete_account_cb(GtkWidget *w, AccountsWindow *dialog)
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1915 {
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1916 GtkTreeSelection *selection;
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1917
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1918 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1919
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
1920 gtk_tree_selection_selected_foreach(selection, ask_delete_account_sel,
5701
4b941cc008c5 [gaim-migrate @ 6122]
Christian Hammond <chipx86@chipx86.com>
parents: 5700
diff changeset
1921 dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1922 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1923
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1924 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1925 close_accounts_cb(GtkWidget *w, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1926 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
1927 pidgin_accounts_window_hide();
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1928 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1929
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1930
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1931 static void
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1932 enabled_cb(GtkCellRendererToggle *renderer, gchar *path_str,
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1933 gpointer data)
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1934 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1935 AccountsWindow *dialog = (AccountsWindow *)data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1936 PurpleAccount *account;
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1937 GtkTreeModel *model = GTK_TREE_MODEL(dialog->model);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1938 GtkTreeIter iter;
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1939 gboolean enabled;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1940 const PurpleSavedStatus *saved_status;
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1941
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1942 gtk_tree_model_get_iter_from_string(model, &iter, path_str);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1943 gtk_tree_model_get(model, &iter,
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1944 COLUMN_DATA, &account,
10400
5f11925078e5 [gaim-migrate @ 11631]
Sean Egan <seanegan@pidgin.im>
parents: 10315
diff changeset
1945 COLUMN_ENABLED, &enabled,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1946 -1);
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
1947
14044
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1948 /*
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1949 * If we just enabled the account, then set the statuses
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1950 * to the current status.
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1951 */
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1952 if (!enabled)
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1953 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1954 saved_status = purple_savedstatus_get_current();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1955 purple_savedstatus_activate_for_account(saved_status, account);
14044
024d74b6bb08 [gaim-migrate @ 16550]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
1956 }
11724
d3f71bc34b4f [gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents: 11654
diff changeset
1957
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1958 purple_account_set_enabled(account, PIDGIN_UI, !enabled);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1959 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1960
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1961 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
1962 add_columns(GtkWidget *treeview, AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1963 {
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1964 GtkCellRenderer *renderer;
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1965 GtkTreeViewColumn *column;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1966
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1967 /* Enabled */
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1968 renderer = gtk_cell_renderer_toggle_new();
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1969
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1970 g_signal_connect(G_OBJECT(renderer), "toggled",
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1971 G_CALLBACK(enabled_cb), dialog);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1972
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1973 column = gtk_tree_view_column_new_with_attributes(_("Enabled"),
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1974 renderer, "active", COLUMN_ENABLED, NULL);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1975
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1976 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1977 gtk_tree_view_column_set_resizable(column, TRUE);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1978
10159
5e8afc7db137 [gaim-migrate @ 11240]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
1979 /* Screen Name column */
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1980 column = gtk_tree_view_column_new();
6623
75ba9eb9d3f8 [gaim-migrate @ 7147]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6621
diff changeset
1981 gtk_tree_view_column_set_title(column, _("Screen Name"));
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1982 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
9519
a01fc1d5872d [gaim-migrate @ 10346]
Luke Schierer <lschiere@pidgin.im>
parents: 9496
diff changeset
1983 gtk_tree_view_column_set_resizable(column, TRUE);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
1984
15496
76b5ca00a36c I think this takes care of protocol icons. Note there are still places
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1985 /* Buddy Icon */
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1986 renderer = gtk_cell_renderer_pixbuf_new();
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1987 gtk_tree_view_column_pack_start(column, renderer, FALSE);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1988 gtk_tree_view_column_add_attribute(column, renderer,
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1989 "pixbuf", COLUMN_BUDDYICON);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1990
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1991 /* Screen Name */
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1992 renderer = gtk_cell_renderer_text_new();
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1993 gtk_tree_view_column_pack_start(column, renderer, TRUE);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1994 gtk_tree_view_column_add_attribute(column, renderer,
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1995 "text", COLUMN_SCREENNAME);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1996 dialog->screenname_col = column;
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1997
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1998
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
1999 /* Protocol name */
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2000 column = gtk_tree_view_column_new();
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2001 gtk_tree_view_column_set_title(column, _("Protocol"));
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2002 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2003 gtk_tree_view_column_set_resizable(column, TRUE);
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2004
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
2005 /* Icon */
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2006 renderer = gtk_cell_renderer_pixbuf_new();
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
2007 gtk_tree_view_column_pack_start(column, renderer, FALSE);
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
2008 gtk_tree_view_column_add_attribute(column, renderer,
5693
8a0b86347b23 [gaim-migrate @ 6114]
Sean Egan <seanegan@pidgin.im>
parents: 5692
diff changeset
2009 "pixbuf", COLUMN_ICON);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
2010
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2011 renderer = gtk_cell_renderer_text_new();
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2012 gtk_tree_view_column_pack_start(column, renderer, TRUE);
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2013 gtk_tree_view_column_add_attribute(column, renderer,
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2014 "text", COLUMN_PROTOCOL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2015 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2016
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2017 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2018 set_account(GtkListStore *store, GtkTreeIter *iter, PurpleAccount *account, GdkPixbuf *global_buddyicon)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2019 {
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2020 GdkPixbuf *pixbuf, *buddyicon = NULL;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2021 PurpleStoredImage *img = NULL;
17484
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2022 PurplePlugin *prpl;
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2023 PurplePluginProtocolInfo *prpl_info = NULL;
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
2024
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2025 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2026 if ((pixbuf != NULL) && purple_account_is_disconnected(account))
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
2027 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE);
6751
0edfd15b9f10 [gaim-migrate @ 7283]
Christian Hammond <chipx86@chipx86.com>
parents: 6732
diff changeset
2028
17484
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2029 prpl = purple_find_prpl(purple_account_get_protocol_id(account));
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2030 if (prpl != NULL)
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2031 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2032 if (prpl_info != NULL && prpl_info->icon_spec.format != NULL) {
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2033 if (purple_account_get_bool(account, "use-global-buddyicon", TRUE)) {
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2034 if (global_buddyicon != NULL)
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2035 buddyicon = g_object_ref(G_OBJECT(global_buddyicon));
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2036 /* This is for when set_account() is called for a single account */
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2037 else
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2038 img = purple_buddy_icons_find_account_icon(account);
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2039 } else {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2040 img = purple_buddy_icons_find_account_icon(account);
17484
9e134e98b42c Don't display the buddy icon for accounts that don't support buddy icons. Fixes #1414. This also includes a fix for crashing caused by the gtalk hackery (the crashing is fixed, but the hackery still doesn't work).
Daniel Atallah <datallah@pidgin.im>
parents: 17416
diff changeset
2041 }
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2042 }
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2043
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2044 if (img != NULL) {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2045 GdkPixbufLoader *loader = gdk_pixbuf_loader_new();
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2046 GdkPixbuf *buddyicon_pixbuf;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2047
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2048 gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(img),
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2049 purple_imgstore_get_size(img), NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2050 gdk_pixbuf_loader_close(loader, NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2051 buddyicon_pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2052
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2053 purple_imgstore_unref(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16446
diff changeset
2054
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2055 if (buddyicon_pixbuf != NULL) {
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2056 buddyicon = gdk_pixbuf_scale_simple(buddyicon_pixbuf, 22, 22, GDK_INTERP_HYPER);
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2057 g_object_unref(G_OBJECT(buddyicon_pixbuf));
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2058 }
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2059 }
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2060
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2061 gtk_list_store_set(store, iter,
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
2062 COLUMN_ICON, pixbuf,
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2063 COLUMN_BUDDYICON, buddyicon,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2064 COLUMN_SCREENNAME, purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2065 COLUMN_ENABLED, purple_account_get_enabled(account, PIDGIN_UI),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2066 COLUMN_PROTOCOL, purple_account_get_protocol_name(account),
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2067 COLUMN_DATA, account,
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2068 -1);
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2069
13091
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
2070 if (pixbuf != NULL)
b5ed878998dd [gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents: 13014
diff changeset
2071 g_object_unref(G_OBJECT(pixbuf));
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2072 if (buddyicon != NULL)
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2073 g_object_unref(G_OBJECT(buddyicon));
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2074 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2075
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2076 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2077 add_account_to_liststore(PurpleAccount *account, gpointer user_data)
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2078 {
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2079 GtkTreeIter iter;
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2080 GdkPixbuf *global_buddyicon = user_data;
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2081
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2082 if (accounts_window == NULL)
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2083 return;
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2084
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2085 gtk_list_store_append(accounts_window->model, &iter);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2086 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook),1);
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2087
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2088 set_account(accounts_window->model, &iter, account, global_buddyicon);
5698
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2089 }
3066afeab46d [gaim-migrate @ 6119]
Christian Hammond <chipx86@chipx86.com>
parents: 5697
diff changeset
2090
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2091 static gboolean
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2092 populate_accounts_list(AccountsWindow *dialog)
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2093 {
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
2094 GList *l;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2095 gboolean ret = FALSE;
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2096 GdkPixbuf *global_buddyicon = NULL;
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2097 const char *path;
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2098
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2099 gtk_list_store_clear(dialog->model);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2100
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2101 if ((path = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon")) != NULL) {
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2102 GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL);
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2103 if (pixbuf != NULL) {
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2104 global_buddyicon = gdk_pixbuf_scale_simple(pixbuf, 22, 22, GDK_INTERP_HYPER);
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2105 g_object_unref(G_OBJECT(pixbuf));
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2106 }
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2107 }
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2108
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2109 for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2110 ret = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2111 add_account_to_liststore((PurpleAccount *)l->data, global_buddyicon);
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2112 }
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2113
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2114 if (global_buddyicon != NULL)
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2115 g_object_unref(G_OBJECT(global_buddyicon));
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2116
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2117 return ret;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2118 }
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2119
8406
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2120 #if !GTK_CHECK_VERSION(2,2,0)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2121 static void
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2122 get_selected_helper(GtkTreeModel *model, GtkTreePath *path,
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2123 GtkTreeIter *iter, gpointer user_data)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2124 {
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2125 *((gboolean *)user_data) = TRUE;
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2126 }
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2127 #endif
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2128
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2129 static void
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2130 account_selected_cb(GtkTreeSelection *sel, AccountsWindow *dialog)
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2131 {
8406
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2132 gboolean selected = FALSE;
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2133
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2134 #if GTK_CHECK_VERSION(2,2,0)
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2135 selected = (gtk_tree_selection_count_selected_rows(sel) > 0);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2136 #else
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2137 gtk_tree_selection_selected_foreach(sel, get_selected_helper, &selected);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2138 #endif
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2139
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2140 gtk_widget_set_sensitive(dialog->modify_button, selected);
4c764d24f29d [gaim-migrate @ 9136]
Christian Hammond <chipx86@chipx86.com>
parents: 8405
diff changeset
2141 gtk_widget_set_sensitive(dialog->delete_button, selected);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2142 }
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2143
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2144 static gboolean
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2145 account_treeview_double_click_cb(GtkTreeView *treeview, GdkEventButton *event, gpointer user_data)
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2146 {
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2147 AccountsWindow *dialog;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2148 GtkTreePath *path;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2149 GtkTreeViewColumn *column;
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2150 GtkTreeIter iter;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2151 PurpleAccount *account;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2152 const gchar *title;
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2153
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2154 dialog = (AccountsWindow *)user_data;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2155
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2156 /* Figure out which node was clicked */
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2157 if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(dialog->treeview), event->x, event->y, &path, &column, NULL, NULL))
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2158 return FALSE;
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2159 title = gtk_tree_view_column_get_title(column);
12671
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2160 /* The -1 is required because the first two columns of the list
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2161 * store are displayed as only one column in the tree view. */
6297334c5e74 [gaim-migrate @ 15014]
Will Thompson <resiak@pidgin.im>
parents: 12601
diff changeset
2162 column = gtk_tree_view_get_column(treeview, COLUMN_ENABLED-1);
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2163 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
10641
0a83c0aea347 [gaim-migrate @ 12149]
Mark Doliner <markdoliner@pidgin.im>
parents: 10640
diff changeset
2164 gtk_tree_path_free(path);
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2165 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, COLUMN_DATA, &account, -1);
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2166
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2167 if ((account != NULL) && (event->button == 1) &&
12121
cc63210cdc8b [gaim-migrate @ 14421]
Daniel Atallah <datallah@pidgin.im>
parents: 12106
diff changeset
2168 (event->type == GDK_2BUTTON_PRESS) &&
11113
9bca076de658 [gaim-migrate @ 13166]
Levi Bard <levi@bard.sytes.net>
parents: 11037
diff changeset
2169 (strcmp(gtk_tree_view_column_get_title(column), title)))
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2170 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2171 pidgin_account_dialog_show(PIDGIN_MODIFY_ACCOUNT_DIALOG, account);
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2172 return TRUE;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2173 }
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2174
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2175 return FALSE;
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2176 }
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2177
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2178 static GtkWidget *
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2179 create_accounts_list(AccountsWindow *dialog)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2180 {
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2181 GtkWidget *frame;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2182 GtkWidget *sw;
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2183 GtkWidget *label;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2184 GtkWidget *treeview;
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2185 GtkTreeSelection *sel;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2186 GtkTargetEntry gte[] = {{"PURPLE_ACCOUNT", GTK_TARGET_SAME_APP, 0}};
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2187 char *pretty, *tmp;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2188
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2189 frame = gtk_frame_new(NULL);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2190 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2191
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2192 accounts_window->notebook = gtk_notebook_new();
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2193 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(accounts_window->notebook), FALSE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2194 gtk_notebook_set_show_border(GTK_NOTEBOOK(accounts_window->notebook), FALSE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2195 gtk_container_add(GTK_CONTAINER(frame), accounts_window->notebook);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2196
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2197 /* Create a helpful first-time-use label */
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2198 label = gtk_label_new(NULL);
15084
6cb675dea5fb [gaim-migrate @ 17804]
Sean Egan <seanegan@pidgin.im>
parents: 15080
diff changeset
2199 /* Translators: Please maintain the use of -> or <- to represent the menu heirarchy */
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2200 tmp = g_strdup_printf(_(
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2201 "<span size='larger' weight='bold'>Welcome to %s!</span>\n\n"
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2202
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2203 "You have no IM accounts configured. To start connecting with %s "
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2204 "press the <b>Add</b> button below and configure your first "
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2205 "account. If you want %s to connect to multiple IM accounts, "
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2206 "press <b>Add</b> again to configure them all.\n\n"
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2207
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2208 "You can come back to this window to add, edit, or remove "
15084
6cb675dea5fb [gaim-migrate @ 17804]
Sean Egan <seanegan@pidgin.im>
parents: 15080
diff changeset
2209 "accounts from <b>Accounts->Add/Edit</b> in the Buddy "
16071
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2210 "List window"), PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2211 pretty = pidgin_make_pretty_arrows(tmp);
044392e01c96 make things cleaner for translators
Nathan Walp <nwalp@pidgin.im>
parents: 15999
diff changeset
2212 g_free(tmp);
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15084
diff changeset
2213 gtk_label_set_markup(GTK_LABEL(label), pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15084
diff changeset
2214 g_free(pretty);
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 15084
diff changeset
2215
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2216 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2217 gtk_widget_show(label);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2218
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2219 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2220 gtk_notebook_append_page(GTK_NOTEBOOK(accounts_window->notebook), label, NULL);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2221
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2222 /* Create the scrolled window. */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2223 sw = gtk_scrolled_window_new(0, 0);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2224 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
13775
aac9281f8da3 [gaim-migrate @ 16185]
Marc E. <santusmarc@gmail.com>
parents: 13702
diff changeset
2225 GTK_POLICY_AUTOMATIC,
aac9281f8da3 [gaim-migrate @ 16185]
Marc E. <santusmarc@gmail.com>
parents: 13702
diff changeset
2226 GTK_POLICY_AUTOMATIC);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2227 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2228 GTK_SHADOW_NONE);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2229 gtk_notebook_append_page(GTK_NOTEBOOK(accounts_window->notebook), sw, NULL);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2230 gtk_widget_show(sw);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2231
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2232 /* Create the list model. */
5781
7c5b3e132a6d [gaim-migrate @ 6206]
Christian Hammond <chipx86@chipx86.com>
parents: 5779
diff changeset
2233 dialog->model = gtk_list_store_new(NUM_COLUMNS,
14921
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2234 GDK_TYPE_PIXBUF, /* COLUMN_ICON */
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15201
diff changeset
2235 GDK_TYPE_PIXBUF, /* COLUMN_BUDDYICON */
14921
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2236 G_TYPE_STRING, /* COLUMN_SCREENNAME */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2237 G_TYPE_BOOLEAN, /* COLUMN_ENABLED */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2238 G_TYPE_STRING, /* COLUMN_PROTOCOL */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2239 G_TYPE_POINTER, /* COLUMN_DATA */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2240 G_TYPE_POINTER /* COLUMN_PULSE_DATA */
6db4b2320423 [gaim-migrate @ 17628]
Eduardo Pérez
parents: 14765
diff changeset
2241 );
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2242
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2243 /* And now the actual treeview */
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2244 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model));
5651
ae0744d896bc [gaim-migrate @ 6065]
Christian Hammond <chipx86@chipx86.com>
parents: 5648
diff changeset
2245 dialog->treeview = treeview;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2246 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2247
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2248 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2249 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2250 g_signal_connect(G_OBJECT(sel), "changed",
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10413
diff changeset
2251 G_CALLBACK(account_selected_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2252
10640
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2253 /* Handle double-clicking */
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2254 g_signal_connect(G_OBJECT(treeview), "button_press_event",
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2255 G_CALLBACK(account_treeview_double_click_cb), dialog);
440a5c056725 [gaim-migrate @ 12145]
Cestonaro Thilo <ephraim@users.sourceforge.net>
parents: 10605
diff changeset
2256
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2257 gtk_container_add(GTK_CONTAINER(sw), treeview);
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2258
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2259 add_columns(treeview, dialog);
5581
646cda748437 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
2260
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2261 if (populate_accounts_list(dialog))
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2262 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 1);
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2263 else
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2264 gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 0);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2265
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2266 /* Setup DND. I wanna be an orc! */
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2267 gtk_tree_view_enable_model_drag_source(
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2268 GTK_TREE_VIEW(treeview), GDK_BUTTON1_MASK, gte,
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
2269 1, GDK_ACTION_COPY);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2270 gtk_tree_view_enable_model_drag_dest(
5779
8c8b8c8139c2 [gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents: 5774
diff changeset
2271 GTK_TREE_VIEW(treeview), gte, 1,
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2272 GDK_ACTION_COPY | GDK_ACTION_MOVE);
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2273
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2274 g_signal_connect(G_OBJECT(treeview), "drag-data-received",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2275 G_CALLBACK(drag_data_received_cb), dialog);
5620
c5f0a3c434fd [gaim-migrate @ 6027]
Christian Hammond <chipx86@chipx86.com>
parents: 5617
diff changeset
2276 g_signal_connect(G_OBJECT(treeview), "drag-data-get",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2277 G_CALLBACK(drag_data_get_cb), dialog);
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2278
15053
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2279 gtk_widget_show_all(frame);
6b35684275a6 [gaim-migrate @ 17770]
Sean Egan <seanegan@pidgin.im>
parents: 15041
diff changeset
2280 return frame;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2281 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2282
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2283 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2284 account_modified_cb(PurpleAccount *account, AccountsWindow *window)
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2285 {
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2286 GtkTreeIter iter;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2287
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2288 if (!accounts_window_find_account_in_treemodel(&iter, account))
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2289 return;
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2290
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2291 set_account(window->model, &iter, account, NULL);
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2292 }
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2293
15352
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2294 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2295 global_buddyicon_changed(const char *name, PurplePrefType type,
15352
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2296 gconstpointer value, gpointer window)
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2297 {
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
2298 GList *list;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2299 for (list = purple_accounts_get_all(); list; list = list->next) {
15352
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2300 account_modified_cb(list->data, window);
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2301 }
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2302 }
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2303
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2304 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2305 pidgin_accounts_window_show(void)
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2306 {
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2307 AccountsWindow *dialog;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2308 GtkWidget *win;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2309 GtkWidget *vbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2310 GtkWidget *bbox;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2311 GtkWidget *sw;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2312 GtkWidget *button;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2313 int width, height;
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2314
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6368
diff changeset
2315 if (accounts_window != NULL) {
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9337
diff changeset
2316 gtk_window_present(GTK_WINDOW(accounts_window->window));
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2317 return;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6368
diff changeset
2318 }
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2319
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2320 accounts_window = dialog = g_new0(AccountsWindow, 1);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2321
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2322 width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2323 height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height");
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2324
17213
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 17035
diff changeset
2325 dialog->window = win = pidgin_create_window(_("Accounts"), PIDGIN_HIG_BORDER, "accounts", TRUE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2326 gtk_window_set_default_size(GTK_WINDOW(win), width, height);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2327
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2328 g_signal_connect(G_OBJECT(win), "delete_event",
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2329 G_CALLBACK(accedit_win_destroy_cb), accounts_window);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2330 g_signal_connect(G_OBJECT(win), "configure_event",
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2331 G_CALLBACK(configure_cb), accounts_window);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2332
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2333 /* Setup the vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
2334 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2335 gtk_container_add(GTK_CONTAINER(win), vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2336 gtk_widget_show(vbox);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2337
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2338 /* Setup the scrolled window that will contain the list of accounts. */
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2339 sw = create_accounts_list(dialog);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2340 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2341 gtk_widget_show(sw);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2342
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2343 /* Button box. */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2344 bbox = gtk_hbutton_box_new();
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15796
diff changeset
2345 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2346 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2347 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2348 gtk_widget_show(bbox);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2349
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2350 /* Add button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2351 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2352 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2353 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2354
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2355 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2356 G_CALLBACK(add_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2357
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2358 /* Modify button */
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
2359 button = gtk_button_new_from_stock(PIDGIN_STOCK_MODIFY);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2360 dialog->modify_button = button;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2361 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2362 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2363 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2364
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2365 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2366 G_CALLBACK(modify_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2367
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2368 /* Delete button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2369 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2370 dialog->delete_button = button;
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2371 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5703
3d4600423773 [gaim-migrate @ 6124]
Christian Hammond <chipx86@chipx86.com>
parents: 5702
diff changeset
2372 gtk_widget_set_sensitive(button, FALSE);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2373 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2374
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2375 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2376 G_CALLBACK(ask_delete_account_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2377
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2378 /* Close button */
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2379 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2380 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2381 gtk_widget_show(button);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2382
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2383 g_signal_connect(G_OBJECT(button), "clicked",
5774
a6f97556fe51 [gaim-migrate @ 6199]
Sean Egan <seanegan@pidgin.im>
parents: 5725
diff changeset
2384 G_CALLBACK(close_accounts_cb), dialog);
5569
c0e413ace539 [gaim-migrate @ 5971]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2385
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2386 purple_signal_connect(pidgin_account_get_handle(), "account-modified",
12521
0284088b422d [gaim-migrate @ 14833]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12493
diff changeset
2387 accounts_window,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2388 PURPLE_CALLBACK(account_modified_cb), accounts_window);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2389 purple_prefs_connect_callback(accounts_window,
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2390 PIDGIN_PREFS_ROOT "/accounts/buddyicon",
15352
81a10752d5e0 [gaim-migrate @ 18080]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15301
diff changeset
2391 global_buddyicon_changed, accounts_window);
5615
2eb715cbbd9b [gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents: 5592
diff changeset
2392
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2393 gtk_widget_show(win);
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2394 }
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2395
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2396 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2397 pidgin_accounts_window_hide(void)
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2398 {
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2399 if (accounts_window == NULL)
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2400 return;
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2401
18841
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
2402 if (accounts_window->window != NULL)
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
2403 gtk_widget_destroy(accounts_window->window);
71c4218684cb pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
Daniel Atallah <datallah@pidgin.im>
parents: 18706
diff changeset
2404
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2405 purple_signals_disconnect_by_handle(accounts_window);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2406 purple_prefs_disconnect_by_handle(accounts_window);
6119
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2407
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2408 g_free(accounts_window);
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2409 accounts_window = NULL;
5b4c66789a8c [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6092
diff changeset
2410 }
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2411
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2412 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2413 free_add_user_data(PidginAccountAddUserData *data)
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2414 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2415 g_free(data->username);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
2416 g_free(data->alias);
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2417 g_free(data);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2418 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2419
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2420 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2421 add_user_cb(PidginAccountAddUserData *data)
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2422 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2423 PurpleConnection *gc = purple_account_get_connection(data->account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2424
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
2425 if (g_list_find(purple_connections_get_all(), gc))
7060
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2426 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2427 purple_blist_request_add_buddy(data->account, data->username,
7060
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2428 NULL, data->alias);
717cbeb22b6d [gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
2429 }
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2430
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2431 free_add_user_data(data);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2432 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2433
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2434 static char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2435 make_info(PurpleAccount *account, PurpleConnection *gc, const char *remote_user,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2436 const char *id, const char *alias, const char *msg)
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2437 {
12976
aedbdb6f9adb [gaim-migrate @ 15329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12960
diff changeset
2438 if (msg != NULL && *msg == '\0')
12960
69571cc82fda [gaim-migrate @ 15313]
Richard Laager <rlaager@pidgin.im>
parents: 12843
diff changeset
2439 msg = NULL;
69571cc82fda [gaim-migrate @ 15313]
Richard Laager <rlaager@pidgin.im>
parents: 12843
diff changeset
2440
12286
08d994091c36 [gaim-migrate @ 14590]
Etan Reisner <deryni@pidgin.im>
parents: 12285
diff changeset
2441 return g_strdup_printf(_("%s%s%s%s has made %s his or her buddy%s%s"),
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2442 remote_user,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2443 (alias != NULL ? " (" : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2444 (alias != NULL ? alias : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2445 (alias != NULL ? ")" : ""),
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2446 (id != NULL
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2447 ? id
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2448 : (purple_connection_get_display_name(gc) != NULL
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2449 ? purple_connection_get_display_name(gc)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2450 : purple_account_get_username(account))),
15096
128dd2bdf71d [gaim-migrate @ 17817]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
2451 (msg != NULL ? ": " : "."),
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2452 (msg != NULL ? msg : ""));
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2453 }
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2454
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2455 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2456 pidgin_accounts_notify_added(PurpleAccount *account, const char *remote_user,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2457 const char *id, const char *alias,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2458 const char *msg)
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2459 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2460 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2461 PurpleConnection *gc;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
2462 GtkWidget *alert;
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2463
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2464 gc = purple_account_get_connection(account);
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2465
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2466 buffer = make_info(account, gc, remote_user, id, alias, msg);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2467 alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_INFO, buffer,
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
2468 NULL, NULL, _("Close"), NULL, NULL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2469 pidgin_blist_add_alert(alert);
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2470
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2471 g_free(buffer);
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2472 }
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2473
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2474 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2475 pidgin_accounts_request_add(PurpleAccount *account, const char *remote_user,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2476 const char *id, const char *alias,
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2477 const char *msg)
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2478 {
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2479 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2480 PurpleConnection *gc;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2481 PidginAccountAddUserData *data;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
2482 GtkWidget *alert;
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2483
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2484 gc = purple_account_get_connection(account);
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2485
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2486 data = g_new0(PidginAccountAddUserData, 1);
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2487 data->account = account;
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2488 data->username = g_strdup(remote_user);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14087
diff changeset
2489 data->alias = g_strdup(alias);
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2490
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2491 buffer = make_info(account, gc, remote_user, id, alias, msg);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2492 alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2493 _("Add buddy to your list?"), buffer, data,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2494 _("Add"), G_CALLBACK(add_user_cb),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2495 _("Cancel"), G_CALLBACK(free_add_user_data), NULL);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2496 pidgin_blist_add_alert(alert);
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2497
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2498 g_free(buffer);
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2499 }
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2500
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2501 struct auth_and_add {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2502 PurpleAccountRequestAuthorizationCb auth_cb;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2503 PurpleAccountRequestAuthorizationCb deny_cb;
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2504 void *data;
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2505 char *username;
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2506 char *alias;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2507 PurpleAccount *account;
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2508 };
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2509
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2510 static void
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2511 authorize_and_add_cb(struct auth_and_add *aa)
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2512 {
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2513 aa->auth_cb(aa->data);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2514 purple_blist_request_add_buddy(aa->account, aa->username,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2515 NULL, aa->alias);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2516
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2517 g_free(aa->username);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2518 g_free(aa->alias);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2519 g_free(aa);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2520 }
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2521
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2522 static void
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2523 deny_no_add_cb(struct auth_and_add *aa)
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2524 {
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2525 aa->deny_cb(aa->data);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2526
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2527 g_free(aa->username);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2528 g_free(aa->alias);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2529 g_free(aa);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2530 }
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2531
15537
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2532 static void *
19125
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2533 pidgin_accounts_request_authorization(PurpleAccount *account,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2534 const char *remote_user,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2535 const char *id,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2536 const char *alias,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2537 const char *message,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2538 gboolean on_list,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2539 PurpleAccountRequestAuthorizationCb auth_cb,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2540 PurpleAccountRequestAuthorizationCb deny_cb,
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2541 void *user_data)
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2542 {
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2543 char *buffer;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2544 PurpleConnection *gc;
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2545 GtkWidget *alert;
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2546
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2547 gc = purple_account_get_connection(account);
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2548 if (message != NULL && *message == '\0')
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2549 message = NULL;
15518
234684c3ed08 Avoid scaling the global buddy icon for each account when populating the Accounts dialog list.
Daniel Atallah <datallah@pidgin.im>
parents: 15498
diff changeset
2550
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2551 buffer = g_strdup_printf(_("%s%s%s%s wants to add %s to his or her buddy list%s%s"),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2552 remote_user,
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2553 (alias != NULL ? " (" : ""),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2554 (alias != NULL ? alias : ""),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2555 (alias != NULL ? ")" : ""),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2556 (id != NULL
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2557 ? id
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2558 : (purple_connection_get_display_name(gc) != NULL
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2559 ? purple_connection_get_display_name(gc)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2560 : purple_account_get_username(account))),
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2561 (message != NULL ? ": " : "."),
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2562 (message != NULL ? message : ""));
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2563
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2564
15197
1d98528d4ee3 [gaim-migrate @ 17921]
Sean Egan <seanegan@pidgin.im>
parents: 15164
diff changeset
2565 if (!on_list) {
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2566 struct auth_and_add *aa = g_new0(struct auth_and_add, 1);
19125
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2567 aa->auth_cb = auth_cb;
d92cd58cc6ba Correct the types of the authorize_cb and deny_cb parameters of
Will Thompson <resiak@pidgin.im>
parents: 19049
diff changeset
2568 aa->deny_cb = deny_cb;
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2569 aa->data = user_data;
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2570 aa->username = g_strdup(remote_user);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2571 aa->alias = g_strdup(alias);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2572 aa->account = account;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2573 alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2574 _("Authorize buddy?"), buffer, aa,
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2575 _("Authorize"), authorize_and_add_cb,
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2576 _("Deny"), deny_no_add_cb,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2577 NULL);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2578 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2579 alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2580 _("Authorize buddy?"), buffer, user_data,
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2581 _("Authorize"), auth_cb,
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2582 _("Deny"), deny_cb,
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2583 NULL);
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2584 }
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2585 pidgin_blist_add_alert(alert);
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2586
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2587 g_free(buffer);
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2588
15537
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2589 return NULL;
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2590 }
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2591
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2592 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2593 pidgin_accounts_request_close(void *ui_handle)
15537
5d7473f14c67 The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents: 15518
diff changeset
2594 {
15999
77ac8981199b Some pixmap path fixes and win32 fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15931
diff changeset
2595
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2596 }
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15109
diff changeset
2597
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2598 static PurpleAccountUiOps ui_ops =
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2599 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2600 pidgin_accounts_notify_added,
12285
5a0f4619b0c5 [gaim-migrate @ 14589]
Etan Reisner <deryni@pidgin.im>
parents: 12240
diff changeset
2601 NULL,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2602 pidgin_accounts_request_add,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2603 pidgin_accounts_request_authorization,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16658
diff changeset
2604 pidgin_accounts_request_close,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16658
diff changeset
2605 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16658
diff changeset
2606 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16658
diff changeset
2607 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16658
diff changeset
2608 NULL
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2609 };
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2610
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2611 PurpleAccountUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2612 pidgin_accounts_get_ui_ops(void)
7015
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2613 {
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2614 return &ui_ops;
bea9111282b3 [gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents: 6856
diff changeset
2615 }
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2616
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2617 void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2618 pidgin_account_get_handle(void) {
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2619 static int handle;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2620
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2621 return &handle;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2622 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2623
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2624 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2625 pidgin_account_init(void)
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2626 {
15779
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2627 char *default_avatar = NULL;
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2628 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/accounts");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2629 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/accounts/dialog");
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2630 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width", 520);
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2631 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height", 321);
15779
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2632 default_avatar = g_build_filename(g_get_home_dir(), ".face.icon", NULL);
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2633 if (!g_file_test(default_avatar, G_FILE_TEST_EXISTS)) {
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2634 g_free(default_avatar);
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2635 default_avatar = g_build_filename(g_get_home_dir(), ".face", NULL);
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2636 if (!g_file_test(default_avatar, G_FILE_TEST_EXISTS)) {
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2637 g_free(default_avatar);
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2638 default_avatar = NULL;
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2639 }
9dab08219630 Use ~/.face (or ~/.face.icon) as the default avatar. GDM and KDM both use these. Daniel should make it use the default Windows icon too. Evan can probably do OS X if he wants.
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
2640 }
15785
97587447d0bf Leak fix and printf removal.
Daniel Atallah <datallah@pidgin.im>
parents: 15779
diff changeset
2641
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
2642 purple_prefs_add_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon", default_avatar);
15785
97587447d0bf Leak fix and printf removal.
Daniel Atallah <datallah@pidgin.im>
parents: 15779
diff changeset
2643 g_free(default_avatar);
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2644
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2645 purple_signal_register(pidgin_account_get_handle(), "account-modified",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2646 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2647 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2648 PURPLE_SUBTYPE_ACCOUNT));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2649
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2650 /* Setup some purple signal handlers. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2651 purple_signal_connect(purple_connections_get_handle(), "signed-on",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2652 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2653 PURPLE_CALLBACK(signed_on_off_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2654 purple_signal_connect(purple_connections_get_handle(), "signed-off",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2655 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2656 PURPLE_CALLBACK(signed_on_off_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2657 purple_signal_connect(purple_accounts_get_handle(), "account-added",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2658 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2659 PURPLE_CALLBACK(add_account_to_liststore), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2660 purple_signal_connect(purple_accounts_get_handle(), "account-removed",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2661 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2662 PURPLE_CALLBACK(account_removed_cb), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2663 purple_signal_connect(purple_accounts_get_handle(), "account-disabled",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2664 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2665 PURPLE_CALLBACK(account_abled_cb), GINT_TO_POINTER(FALSE));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2666 purple_signal_connect(purple_accounts_get_handle(), "account-enabled",
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2667 pidgin_account_get_handle(),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2668 PURPLE_CALLBACK(account_abled_cb), GINT_TO_POINTER(TRUE));
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2669
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2670 account_pref_wins =
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2671 g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2672 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2673
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2674 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15537
diff changeset
2675 pidgin_account_uninit(void)
10163
a916c8d1ee5c [gaim-migrate @ 11249]
Mark Doliner <markdoliner@pidgin.im>
parents: 10159
diff changeset
2676 {
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2677 /*
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2678 * TODO: Need to free all the dialogs in here. Could probably create
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2679 * a callback function to use for the free-some-data-function
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2680 * parameter of g_hash_table_new_full, above.
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2681 */
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2682 g_hash_table_destroy(account_pref_wins);
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2683
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2684 purple_signals_disconnect_by_handle(pidgin_account_get_handle());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2685 purple_signals_unregister_by_instance(pidgin_account_get_handle());
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents: 9591
diff changeset
2686 }
11789
a3310d5f454c [gaim-migrate @ 14080]
Mark Doliner <markdoliner@pidgin.im>
parents: 11784
diff changeset
2687
17879
3e3f85138f1a merge of '87854ccfae544467c988edbac854c1ae2018eed4'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17672 17877
diff changeset
2688

mercurial