pidgin/gtkprivacy.c

Fri, 16 Sep 2022 01:54:11 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Fri, 16 Sep 2022 01:54:11 -0500
changeset 41694
83e6692c76a3
parent 41643
f7af70658fe5
child 41769
e5b2368ad3ad
permissions
-rw-r--r--

Change the credential provider row active indicator to a CheckButton

Because I noticed that Adw has a style that is for this sort of thing.

Testing Done:
Opened Credential prefs, and changed selected provider. Also checked that clicking the check button didn't accidentally change its state without changing the row, and that it could not be selected by keyboard separately from the row.

Reviewed at https://reviews.imfreedom.org/r/1775/

20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
1 /* pidgin
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7931
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7931
diff changeset
5 * source distribution.
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
6 *
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * (at your option) any later version.
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 *
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * GNU General Public License for more details.
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 *
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * 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: 18327
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 */
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
21
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
22 #include <glib/gi18n-lib.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
23
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40252
diff changeset
24 #include <purple.h>
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25
35040
f80a806325a4 Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
26 #include "gtkaccount.h"
11111
4621d9b973a4 [gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11047
diff changeset
27 #include "gtkblist.h"
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 #include "gtkprivacy.h"
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #include "gtkutils.h"
39785
aa7e3b71802d Split pidgin_account_option_menu into its own files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
30 #include "pidginaccountchooser.h"
40534
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
31 #include "pidginaccountstore.h"
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
33 #define PIDGIN_TYPE_PRIVACY_DIALOG (pidgin_privacy_dialog_get_type())
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
34 G_DECLARE_FINAL_TYPE(PidginPrivacyDialog, pidgin_privacy_dialog, PIDGIN,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
35 PRIVACY_DIALOG, GtkDialog)
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
36
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
37 struct _PidginPrivacyDialog {
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
38 GtkDialog parent;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 GtkWidget *type_menu;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 GtkWidget *add_button;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 GtkWidget *remove_button;
22372
2b2d10362583 In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
44 GtkWidget *removeall_button;
22005
0183020ba2cc Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22000
diff changeset
45 GtkWidget *close_button;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 GtkWidget *allow_widget;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 GtkWidget *block_widget;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50 GtkListStore *allow_store;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 GtkListStore *block_store;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 GtkWidget *allow_list;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 GtkWidget *block_list;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 gboolean in_allow_list;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
58 GtkWidget *account_chooser;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
59 PurpleAccount *account;
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
60 };
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 typedef struct
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
64 PurpleAccount *account;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 char *name;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 gboolean block;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
68 } PidginPrivacyRequestData;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 static struct
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 const char *text;
34892
65e25c679ca5 Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34726 34308
diff changeset
73 PurpleAccountPrivacyType type;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74
21091
07fe1a99c47b Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@pidgin.im>
parents: 20147
diff changeset
75 } const menu_entries[] =
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 {
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
77 { N_("Allow all users to contact me"), PURPLE_ACCOUNT_PRIVACY_ALLOW_ALL },
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
78 { N_("Allow only the users on my buddy list"), PURPLE_ACCOUNT_PRIVACY_ALLOW_BUDDYLIST },
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
79 { N_("Allow only the users below"), PURPLE_ACCOUNT_PRIVACY_ALLOW_USERS },
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
80 { N_("Block all users"), PURPLE_ACCOUNT_PRIVACY_DENY_ALL },
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
81 { N_("Block only the users below"), PURPLE_ACCOUNT_PRIVACY_DENY_USERS }
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82 };
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83
21091
07fe1a99c47b Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@pidgin.im>
parents: 20147
diff changeset
84 static const size_t menu_entry_count = sizeof(menu_entries) / sizeof(*menu_entries);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
86 static PidginPrivacyDialog *privacy_dialog = NULL;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
89 rebuild_allow_list(PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
91 GSList *l;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92 GtkTreeIter iter;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
93
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94 gtk_list_store_clear(dialog->allow_store);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
96 for (l = purple_account_privacy_get_permitted(dialog->account); l != NULL; l = l->next) {
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 gtk_list_store_append(dialog->allow_store, &iter);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
98 gtk_list_store_set(dialog->allow_store, &iter, 0, l->data, -1);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
99 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
100 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
101
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
102 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
103 rebuild_block_list(PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
104 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
105 GSList *l;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
106 GtkTreeIter iter;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
107
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108 gtk_list_store_clear(dialog->block_store);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
110 for (l = purple_account_privacy_get_denied(dialog->account); l != NULL; l = l->next) {
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111 gtk_list_store_append(dialog->block_store, &iter);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
112 gtk_list_store_set(dialog->block_store, &iter, 0, l->data, -1);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
113 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
114 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
115
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
116 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
117 user_selected_cb(GtkTreeSelection *sel, PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
118 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
119 gtk_widget_set_sensitive(dialog->remove_button, TRUE);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
120 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
121
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122 static void
40534
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
123 select_account_cb(GtkWidget *w, PidginPrivacyDialog *dialog) {
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
124 PidginAccountChooser *chooser = PIDGIN_ACCOUNT_CHOOSER(w);
39787
af7ae86ee287 Remove callback from account chooser constructor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39786
diff changeset
125 PurpleAccount *account = pidgin_account_chooser_get_selected(chooser);
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31321
diff changeset
126 gsize i;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
127
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
128 dialog->account = account;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
129
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
130 if (account) {
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
131 gtk_widget_set_sensitive(dialog->type_menu, TRUE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
132 gtk_widget_set_sensitive(dialog->add_button, TRUE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
133 /* dialog->remove_button is enabled when a user is selected. */
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
134 gtk_widget_set_sensitive(dialog->removeall_button, TRUE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
135 } else {
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
136 gtk_widget_set_sensitive(dialog->type_menu, FALSE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
137 gtk_widget_set_sensitive(dialog->add_button, FALSE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
138 gtk_widget_set_sensitive(dialog->remove_button, FALSE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
139 gtk_widget_set_sensitive(dialog->removeall_button, FALSE);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
140 gtk_list_store_clear(dialog->allow_store);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
141 gtk_list_store_clear(dialog->block_store);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
142 return;
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
143 }
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
144
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
145 for (i = 0; i < menu_entry_count; i++) {
34308
cdb187c27360 Fix the rest of Pidgin's warnings about -Wsign-compare; remove -Wno-sign-compare from cflags
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33170
diff changeset
146 if (menu_entries[i].type == purple_account_get_privacy_type(account)) {
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
147 gtk_drop_down_set_selected(GTK_DROP_DOWN(dialog->type_menu), i);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
148 break;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
152 rebuild_allow_list(dialog);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153 rebuild_block_list(dialog);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155
10704
99a466f384d2 [gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents: 10535
diff changeset
156 /*
99a466f384d2 [gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents: 10535
diff changeset
157 * TODO: Setting the permit/deny setting needs to go through privacy.c
99a466f384d2 [gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents: 10535
diff changeset
158 * Even better: the privacy API needs to not suck.
99a466f384d2 [gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents: 10535
diff changeset
159 */
26931
57f05d09b5b7 Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 22389
diff changeset
160 static void
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
161 type_changed_cb(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec, gpointer data) {
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
162 PidginPrivacyDialog *dialog = data;
34892
65e25c679ca5 Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34726 34308
diff changeset
163 PurpleAccountPrivacyType new_type =
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
164 menu_entries[gtk_drop_down_get_selected(GTK_DROP_DOWN(obj))].type;
40252
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
165 gboolean buttons_sensitive;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
166
32624
f957ad287bcc Convert code to use the purple_account accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31321
diff changeset
167 purple_account_set_privacy_type(dialog->account, new_type);
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
168 purple_serv_set_permit_deny(purple_account_get_connection(dialog->account));
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
169
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170 gtk_widget_hide(dialog->allow_widget);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
171 gtk_widget_hide(dialog->block_widget);
40252
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
172 buttons_sensitive = FALSE;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
173
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
174 if (new_type == PURPLE_ACCOUNT_PRIVACY_ALLOW_USERS) {
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
175 gtk_widget_show(dialog->allow_widget);
40252
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
176 buttons_sensitive = TRUE;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
177 dialog->in_allow_list = TRUE;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 }
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
179 else if (new_type == PURPLE_ACCOUNT_PRIVACY_DENY_USERS) {
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
180 gtk_widget_show(dialog->block_widget);
40252
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
181 buttons_sensitive = TRUE;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
182 dialog->in_allow_list = FALSE;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
183 }
10147
a4897a5bcf8d [gaim-migrate @ 11224]
Peter Lawler <pidgin@bleeter.id.au>
parents: 9791
diff changeset
184
40252
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
185 gtk_widget_set_sensitive(dialog->add_button, buttons_sensitive);
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
186 /* dialog->remove_button is enabled when a user is selected. */
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
187 gtk_widget_set_sensitive(dialog->remove_button, FALSE);
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
188 gtk_widget_set_sensitive(dialog->removeall_button, buttons_sensitive);
18fd5c5c4625 Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40251
diff changeset
189
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
190 purple_blist_schedule_save();
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38007
diff changeset
191 pidgin_blist_refresh(purple_blist_get_default());
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
192 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
195 add_cb(GtkWidget *button, PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
196 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
197 if (dialog->in_allow_list)
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
198 pidgin_request_add_permit(dialog->account, NULL);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 else
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
200 pidgin_request_add_block(dialog->account, NULL);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
201 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
202
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
203 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
204 remove_cb(GtkWidget *button, PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
205 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
206 GtkTreeIter iter;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
207 GtkTreeModel *model;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
208 GtkTreeSelection *sel;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
209 char *name;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
210
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
211 if (dialog->in_allow_list && dialog->allow_store == NULL)
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
212 return;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
213
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
214 if (!dialog->in_allow_list && dialog->block_store == NULL)
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
215 return;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
216
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
217 if (dialog->in_allow_list) {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
218 model = GTK_TREE_MODEL(dialog->allow_store);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
219 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->allow_list));
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
220 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
221 else {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
222 model = GTK_TREE_MODEL(dialog->block_store);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
223 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->block_list));
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
224 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
225
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
226 if (gtk_tree_selection_get_selected(sel, NULL, &iter))
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
227 gtk_tree_model_get(model, &iter, 0, &name, -1);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
228 else
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
229 return;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
230
22372
2b2d10362583 In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
231 if (dialog->in_allow_list)
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
232 purple_account_privacy_permit_remove(dialog->account, name, FALSE);
22372
2b2d10362583 In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
233 else
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
234 purple_account_privacy_deny_remove(dialog->account, name, FALSE);
22372
2b2d10362583 In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
235
13149
895f0495b7db [gaim-migrate @ 15511]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12852
diff changeset
236 g_free(name);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
237 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
238
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
239 static void
22372
2b2d10362583 In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
240 removeall_cb(GtkWidget *button, PidginPrivacyDialog *dialog)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
241 {
8556
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
242 GSList *l;
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
243 if (dialog->in_allow_list)
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
244 l = purple_account_privacy_get_permitted(dialog->account);
8556
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
245 else
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
246 l = purple_account_privacy_get_denied(dialog->account);
8556
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
247 while (l) {
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
248 char *user;
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
249 user = l->data;
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
250 l = l->next;
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
251 if (dialog->in_allow_list)
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
252 purple_account_privacy_permit_remove(dialog->account, user, FALSE);
8556
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
253 else
34586
9ed4700451cc Refactored gtkprivacy to use the new API. Added (moved) gtkprivacy's UI ops to gtkaccount's UI ops.
Ankit Vani <a@nevitus.org>
parents: 33170
diff changeset
254 purple_account_privacy_deny_remove(dialog->account, user, FALSE);
8556
7a186aaf27d7 [gaim-migrate @ 9300]
Luke Schierer <lschiere@pidgin.im>
parents: 8520
diff changeset
255 }
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
256 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
257
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
258 G_DEFINE_TYPE(PidginPrivacyDialog, pidgin_privacy_dialog, GTK_TYPE_DIALOG)
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
259
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
260 static void
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
261 pidgin_privacy_dialog_class_init(PidginPrivacyDialogClass *klass)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
262 {
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
263 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
264
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
265 gtk_widget_class_set_template_from_resource(
41030
ec8b76f3bf0a Fix the resource path so we can use the automatic stuff that GtkApplication supports
Gary Kramlich <grim@reaperworld.com>
parents: 40534
diff changeset
266 widget_class, "/im/pidgin/Pidgin3/Privacy/dialog.ui");
7165
6547d94b0725 [gaim-migrate @ 7732]
Mark Doliner <markdoliner@pidgin.im>
parents: 6646
diff changeset
267
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
268 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
269 account_chooser);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
270 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
271 add_button);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
272 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
273 allow_list);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
274 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
275 allow_store);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
276 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
277 allow_widget);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
278 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
279 block_list);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
280 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
281 block_store);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
282 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
283 block_widget);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
284 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
285 close_button);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
286 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
287 remove_button);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
288 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
289 removeall_button);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
290 gtk_widget_class_bind_template_child(widget_class, PidginPrivacyDialog,
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
291 type_menu);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
292
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
293 gtk_widget_class_bind_template_callback(widget_class, add_cb);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
294 gtk_widget_class_bind_template_callback(widget_class, remove_cb);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
295 gtk_widget_class_bind_template_callback(widget_class, removeall_cb);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
296 gtk_widget_class_bind_template_callback(widget_class, select_account_cb);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
297 gtk_widget_class_bind_template_callback(widget_class, type_changed_cb);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
298 gtk_widget_class_bind_template_callback(widget_class, user_selected_cb);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
299 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
300
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
301 static void
40534
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
302 pidgin_privacy_dialog_init(PidginPrivacyDialog *dialog) {
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
303 PidginAccountChooser *chooser = NULL;
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
304 GtkStringList *model = NULL;
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
305 guint selected = GTK_INVALID_LIST_POSITION;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
306
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
307 gtk_widget_init_template(GTK_WIDGET(dialog));
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
308
40534
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
309 chooser = PIDGIN_ACCOUNT_CHOOSER(dialog->account_chooser);
8dad2981fb86 Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents: 40496
diff changeset
310 dialog->account = pidgin_account_chooser_get_selected(chooser);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
311
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
312 /* Add the drop-down list with the allow/block types. */
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
313 model = GTK_STRING_LIST(gtk_drop_down_get_model(GTK_DROP_DOWN(dialog->type_menu)));
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
314 for (guint i = 0; i < menu_entry_count; i++) {
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
315 gtk_string_list_append(model, _(menu_entries[i].text));
26931
57f05d09b5b7 Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 22389
diff changeset
316
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
317 if (menu_entries[i].type == purple_account_get_privacy_type(dialog->account)) {
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
318 selected = i;
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
319 }
26931
57f05d09b5b7 Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 22389
diff changeset
320 }
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
321 gtk_drop_down_set_selected(GTK_DROP_DOWN(dialog->type_menu), selected);
26931
57f05d09b5b7 Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 22389
diff changeset
322
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
323 /* Rebuild the allow and block lists views. */
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
324 rebuild_allow_list(dialog);
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
325 rebuild_block_list(dialog);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
326
41643
f7af70658fe5 Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41528
diff changeset
327 type_changed_cb(G_OBJECT(dialog->type_menu), NULL, dialog);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
328 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
329
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
330 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
331 pidgin_privacy_dialog_show(void)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
332 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
333 g_return_if_fail(purple_connections_get_all() != NULL);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10148
diff changeset
334
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
335 if (privacy_dialog == NULL) {
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
336 privacy_dialog = g_object_new(PIDGIN_TYPE_PRIVACY_DIALOG, NULL);
41528
4160c570866d Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41030
diff changeset
337 g_object_add_weak_pointer(G_OBJECT(privacy_dialog),
4160c570866d Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41030
diff changeset
338 (gpointer)&privacy_dialog);
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
339 }
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
340
40251
41e9424fc96f Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40197
diff changeset
341 gtk_widget_show(GTK_WIDGET(privacy_dialog));
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
342 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
343
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
344 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
345 pidgin_privacy_dialog_hide(void)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346 {
41528
4160c570866d Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41030
diff changeset
347 if(GTK_IS_WIDGET(privacy_dialog)) {
4160c570866d Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41030
diff changeset
348 gtk_window_destroy(GTK_WINDOW(privacy_dialog));
4160c570866d Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents: 41030
diff changeset
349 }
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
350 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
351
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
352 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
353 destroy_request_data(PidginPrivacyRequestData *data)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
354 {
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13775
diff changeset
355 g_free(data->name);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
356 g_free(data);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
357 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
358
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
359 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
360 confirm_permit_block_cb(PidginPrivacyRequestData *data, int option)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
361 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
362 if (data->block)
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
363 purple_account_privacy_deny(data->account, data->name);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
364 else
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 34586
diff changeset
365 purple_account_privacy_allow(data->account, data->name);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
366
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
367 destroy_request_data(data);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
368 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
369
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
370 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
371 add_permit_block_cb(PidginPrivacyRequestData *data, const char *name)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
372 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
373 data->name = g_strdup(name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
374
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
375 confirm_permit_block_cb(data, 0);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
376 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
377
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
378 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
379 pidgin_request_add_permit(PurpleAccount *account, const char *name)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
380 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
381 PidginPrivacyRequestData *data;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
382
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
383 g_return_if_fail(account != NULL);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
384
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
385 data = g_new0(PidginPrivacyRequestData, 1);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
386 data->account = account;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
387 data->name = g_strdup(name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
388 data->block = FALSE;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
389
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
390 if (name == NULL) {
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
391 purple_request_input(account, _("Permit User"),
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
392 _("Type a user you permit to contact you."),
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
393 _("Please enter the name of the user you wish to be "
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
394 "able to contact you."),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8556
diff changeset
395 NULL, FALSE, FALSE, NULL,
12603
731cac8b693f [gaim-migrate @ 14938]
Nathan Conrad
parents: 11243
diff changeset
396 _("_Permit"), G_CALLBACK(add_permit_block_cb),
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
397 _("Cancel"), G_CALLBACK(destroy_request_data),
34329
ddbc1337332c Request API refactoring: introduce PurpleRequestCommonParameters and switch purple_request_input to it
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34308
diff changeset
398 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
399 data);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
400 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
401 else {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
402 char *primary = g_strdup_printf(_("Allow %s to contact you?"), name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
403 char *secondary =
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
404 g_strdup_printf(_("Are you sure you wish to allow "
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
405 "%s to contact you?"), name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
406
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
407
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
408 purple_request_action(account, _("Permit User"), primary,
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
409 secondary, 0, purple_request_cpar_from_account(account),
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
410 data, 2,
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
411 _("_Permit"), G_CALLBACK(confirm_permit_block_cb),
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
412 _("Cancel"), G_CALLBACK(destroy_request_data));
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
413
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
414 g_free(primary);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
415 g_free(secondary);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
416 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
417 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
418
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
419 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
420 pidgin_request_add_block(PurpleAccount *account, const char *name)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
421 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
422 PidginPrivacyRequestData *data;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
423
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
424 g_return_if_fail(account != NULL);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
425
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
426 data = g_new0(PidginPrivacyRequestData, 1);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
427 data->account = account;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
428 data->name = g_strdup(name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
429 data->block = TRUE;
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
430
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
431 if (name == NULL) {
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
432 purple_request_input(account, _("Block User"),
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
433 _("Type a user to block."),
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
434 _("Please enter the name of the user you wish to block."),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8556
diff changeset
435 NULL, FALSE, FALSE, NULL,
12603
731cac8b693f [gaim-migrate @ 14938]
Nathan Conrad
parents: 11243
diff changeset
436 _("_Block"), G_CALLBACK(add_permit_block_cb),
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
437 _("Cancel"), G_CALLBACK(destroy_request_data),
34329
ddbc1337332c Request API refactoring: introduce PurpleRequestCommonParameters and switch purple_request_input to it
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34308
diff changeset
438 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
439 data);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
440 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
441 else {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
442 char *primary = g_strdup_printf(_("Block %s?"), name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
443 char *secondary =
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
444 g_strdup_printf(_("Are you sure you want to block %s?"), name);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
445
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
446 purple_request_action(account, _("Block User"), primary,
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
447 secondary, 0, purple_request_cpar_from_account(account),
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
448 data, 2,
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
449 _("_Block"), G_CALLBACK(confirm_permit_block_cb),
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
450 _("Cancel"), G_CALLBACK(destroy_request_data));
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
451
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
452 g_free(primary);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
453 g_free(secondary);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
454 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
455 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
456
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
457 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
458 pidgin_permit_added_removed(PurpleAccount *account, const char *name)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
459 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
460 if (privacy_dialog != NULL)
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
461 rebuild_allow_list(privacy_dialog);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
462 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
463
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
464 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
465 pidgin_deny_added_removed(PurpleAccount *account, const char *name)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
466 {
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
467 if (privacy_dialog != NULL)
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
468 rebuild_block_list(privacy_dialog);
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
469 }
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
470
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
471 void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15486
diff changeset
472 pidgin_privacy_init(void)
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
473 {
35040
f80a806325a4 Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
474 PurpleAccountUiOps *ops = pidgin_accounts_get_ui_ops();
f80a806325a4 Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
475
f80a806325a4 Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
476 ops->permit_added = ops->permit_removed = pidgin_permit_added_removed;
f80a806325a4 Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
477 ops->deny_added = ops->deny_removed = pidgin_deny_added_removed;
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
478 }

mercurial