Mon, 28 Nov 2022 23:20:24 -0600
Bump C standard to C99 for Pidgin files and fix warnings
Bump C standard to C99 for Pidgin files only and fix warnings
Testing Done:
Touched all Pidgin files, compiled and saw no new warnings.
Reviewed at https://reviews.imfreedom.org/r/2103/
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* pidgin |
| 6371 | 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 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
6 | * |
| 6371 | 7 | * This program is free software; you can redistribute it and/or modify |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 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 | 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 | 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 | 28 | #include "gtkprivacy.h" |
| 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" |
| 6371 | 31 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
32 | #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
|
33 | 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
|
34 | PRIVACY_DIALOG, GtkDialog) |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
35 | |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
36 | struct _PidginPrivacyDialog { |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
37 | GtkDialog parent; |
| 6371 | 38 | |
| 39 | GtkWidget *type_menu; | |
| 40 | ||
| 41 | GtkWidget *add_button; | |
| 42 | GtkWidget *remove_button; | |
|
22372
2b2d10362583
In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents:
22214
diff
changeset
|
43 | 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
|
44 | GtkWidget *close_button; |
| 6371 | 45 | |
| 46 | GtkWidget *allow_widget; | |
| 47 | GtkWidget *block_widget; | |
| 48 | ||
| 49 | GtkListStore *allow_store; | |
| 50 | GtkListStore *block_store; | |
| 51 | ||
| 52 | GtkWidget *allow_list; | |
| 53 | GtkWidget *block_list; | |
| 54 | ||
| 55 | gboolean in_allow_list; | |
| 56 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
57 | GtkWidget *account_chooser; |
| 15884 | 58 | PurpleAccount *account; |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
59 | }; |
| 6371 | 60 | |
| 61 | typedef struct | |
| 62 | { | |
| 15884 | 63 | PurpleAccount *account; |
| 6371 | 64 | char *name; |
| 65 | gboolean block; | |
| 66 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
67 | } PidginPrivacyRequestData; |
| 6371 | 68 | |
| 69 | static struct | |
| 70 | { | |
| 71 | const char *text; | |
| 34892 | 72 | PurpleAccountPrivacyType type; |
| 6371 | 73 | |
|
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
|
74 | } const menu_entries[] = |
| 6371 | 75 | { |
|
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
|
76 | { 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
|
77 | { 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
|
78 | { 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
|
79 | { 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
|
80 | { N_("Block only the users below"), PURPLE_ACCOUNT_PRIVACY_DENY_USERS } |
| 6371 | 81 | }; |
| 82 | ||
|
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
|
83 | static const size_t menu_entry_count = sizeof(menu_entries) / sizeof(*menu_entries); |
| 6371 | 84 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
85 | static PidginPrivacyDialog *privacy_dialog = NULL; |
| 6371 | 86 | |
| 87 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
88 | rebuild_allow_list(PidginPrivacyDialog *dialog) |
| 6371 | 89 | { |
| 90 | GSList *l; | |
| 91 | GtkTreeIter iter; | |
| 92 | ||
| 93 | gtk_list_store_clear(dialog->allow_store); | |
| 94 | ||
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
95 | for (l = purple_account_privacy_get_permitted(dialog->account); l != NULL; l = l->next) { |
| 6371 | 96 | gtk_list_store_append(dialog->allow_store, &iter); |
| 97 | gtk_list_store_set(dialog->allow_store, &iter, 0, l->data, -1); | |
| 98 | } | |
| 99 | } | |
| 100 | ||
| 101 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
102 | rebuild_block_list(PidginPrivacyDialog *dialog) |
| 6371 | 103 | { |
| 104 | GSList *l; | |
| 105 | GtkTreeIter iter; | |
| 106 | ||
| 107 | gtk_list_store_clear(dialog->block_store); | |
| 108 | ||
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
109 | for (l = purple_account_privacy_get_denied(dialog->account); l != NULL; l = l->next) { |
| 6371 | 110 | gtk_list_store_append(dialog->block_store, &iter); |
| 111 | gtk_list_store_set(dialog->block_store, &iter, 0, l->data, -1); | |
| 112 | } | |
| 113 | } | |
| 114 | ||
| 115 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
116 | user_selected_cb(G_GNUC_UNUSED GtkTreeSelection *sel, |
|
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
117 | PidginPrivacyDialog *dialog) |
| 6371 | 118 | { |
| 119 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); | |
| 120 | } | |
| 121 | ||
| 122 | static void | |
|
41854
c1d7e7445b0f
Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41769
diff
changeset
|
123 | select_account_cb(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec, gpointer data) |
|
c1d7e7445b0f
Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41769
diff
changeset
|
124 | { |
|
c1d7e7445b0f
Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41769
diff
changeset
|
125 | PidginPrivacyDialog *dialog = data; |
|
c1d7e7445b0f
Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41769
diff
changeset
|
126 | PidginAccountChooser *chooser = PIDGIN_ACCOUNT_CHOOSER(obj); |
|
39787
af7ae86ee287
Remove callback from account chooser constructor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39786
diff
changeset
|
127 | 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
|
128 | gsize i; |
| 6371 | 129 | |
| 130 | dialog->account = account; | |
| 131 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
132 | if (account) { |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
133 | 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
|
134 | 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
|
135 | /* 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
|
136 | 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
|
137 | } else { |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
138 | 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
|
139 | 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
|
140 | 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
|
141 | 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
|
142 | gtk_list_store_clear(dialog->allow_store); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
143 | gtk_list_store_clear(dialog->block_store); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
144 | return; |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
145 | } |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
146 | |
| 6371 | 147 | 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
|
148 | 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
|
149 | gtk_drop_down_set_selected(GTK_DROP_DOWN(dialog->type_menu), i); |
| 6371 | 150 | break; |
| 151 | } | |
| 152 | } | |
| 153 | ||
| 154 | rebuild_allow_list(dialog); | |
| 155 | rebuild_block_list(dialog); | |
| 156 | } | |
| 157 | ||
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
10535
diff
changeset
|
158 | /* |
|
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
10535
diff
changeset
|
159 | * 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
|
160 | * Even better: the privacy API needs to not suck. |
|
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
10535
diff
changeset
|
161 | */ |
|
26931
57f05d09b5b7
Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
22389
diff
changeset
|
162 | 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
|
163 | 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
|
164 | PidginPrivacyDialog *dialog = data; |
| 34892 | 165 | 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
|
166 | menu_entries[gtk_drop_down_get_selected(GTK_DROP_DOWN(obj))].type; |
|
41769
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
167 | PurpleProtocol *protocol = NULL; |
|
40252
18fd5c5c4625
Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40251
diff
changeset
|
168 | gboolean buttons_sensitive; |
| 6371 | 169 | |
|
32624
f957ad287bcc
Convert code to use the purple_account accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents:
31321
diff
changeset
|
170 | purple_account_set_privacy_type(dialog->account, new_type); |
|
41769
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
171 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
172 | protocol = purple_account_get_protocol(dialog->account); |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
173 | if(PURPLE_IS_PROTOCOL_PRIVACY(protocol)) { |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
174 | PurpleConnection *connection = NULL; |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
175 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
176 | connection = purple_account_get_connection(dialog->account); |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
177 | if(PURPLE_IS_CONNECTION(connection)) { |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
178 | PurpleProtocolPrivacy *privacy = NULL; |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
179 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
180 | privacy = PURPLE_PROTOCOL_PRIVACY(protocol); |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
181 | purple_protocol_privacy_set_permit_deny(privacy, connection); |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
182 | } |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
183 | } |
| 6371 | 184 | |
| 185 | gtk_widget_hide(dialog->allow_widget); | |
| 186 | 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
|
187 | buttons_sensitive = FALSE; |
| 6371 | 188 | |
|
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
|
189 | if (new_type == PURPLE_ACCOUNT_PRIVACY_ALLOW_USERS) { |
| 6371 | 190 | 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
|
191 | buttons_sensitive = TRUE; |
| 6371 | 192 | dialog->in_allow_list = TRUE; |
| 193 | } | |
|
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
|
194 | else if (new_type == PURPLE_ACCOUNT_PRIVACY_DENY_USERS) { |
| 6371 | 195 | 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
|
196 | buttons_sensitive = TRUE; |
| 6371 | 197 | dialog->in_allow_list = FALSE; |
| 198 | } | |
|
10147
a4897a5bcf8d
[gaim-migrate @ 11224]
Peter Lawler <pidgin@bleeter.id.au>
parents:
9791
diff
changeset
|
199 | |
|
40252
18fd5c5c4625
Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40251
diff
changeset
|
200 | 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
|
201 | /* 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
|
202 | 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
|
203 | 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
|
204 | |
| 15884 | 205 | purple_blist_schedule_save(); |
|
39665
2172e3b8eeef
Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
38007
diff
changeset
|
206 | pidgin_blist_refresh(purple_blist_get_default()); |
| 6371 | 207 | } |
| 208 | ||
| 209 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
210 | add_cb(G_GNUC_UNUSED GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 211 | { |
| 212 | if (dialog->in_allow_list) | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
213 | pidgin_request_add_permit(dialog->account, NULL); |
| 6371 | 214 | else |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
215 | pidgin_request_add_block(dialog->account, NULL); |
| 6371 | 216 | } |
| 217 | ||
| 218 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
219 | remove_cb(G_GNUC_UNUSED GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 220 | { |
| 221 | GtkTreeIter iter; | |
| 222 | GtkTreeModel *model; | |
| 223 | GtkTreeSelection *sel; | |
| 224 | char *name; | |
| 225 | ||
| 226 | if (dialog->in_allow_list && dialog->allow_store == NULL) | |
| 227 | return; | |
| 228 | ||
| 229 | if (!dialog->in_allow_list && dialog->block_store == NULL) | |
| 230 | return; | |
| 231 | ||
| 232 | if (dialog->in_allow_list) { | |
| 233 | model = GTK_TREE_MODEL(dialog->allow_store); | |
| 234 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->allow_list)); | |
| 235 | } | |
| 236 | else { | |
| 237 | model = GTK_TREE_MODEL(dialog->block_store); | |
| 238 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->block_list)); | |
| 239 | } | |
| 240 | ||
| 241 | if (gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
| 242 | gtk_tree_model_get(model, &iter, 0, &name, -1); | |
| 243 | else | |
| 244 | return; | |
| 245 | ||
|
22372
2b2d10362583
In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents:
22214
diff
changeset
|
246 | 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
|
247 | 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
|
248 | 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
|
249 | 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
|
250 | |
|
13149
895f0495b7db
[gaim-migrate @ 15511]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12852
diff
changeset
|
251 | g_free(name); |
| 6371 | 252 | } |
| 253 | ||
| 254 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
255 | removeall_cb(G_GNUC_UNUSED GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 256 | { |
| 8556 | 257 | GSList *l; |
| 258 | 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
|
259 | l = purple_account_privacy_get_permitted(dialog->account); |
| 8556 | 260 | else |
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
261 | l = purple_account_privacy_get_denied(dialog->account); |
| 8556 | 262 | while (l) { |
| 263 | char *user; | |
| 264 | user = l->data; | |
| 265 | l = l->next; | |
| 266 | 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
|
267 | purple_account_privacy_permit_remove(dialog->account, user, FALSE); |
| 8556 | 268 | 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
|
269 | purple_account_privacy_deny_remove(dialog->account, user, FALSE); |
| 8556 | 270 | } |
| 6371 | 271 | } |
| 272 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
273 | 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
|
274 | |
| 6371 | 275 | static void |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
276 | pidgin_privacy_dialog_class_init(PidginPrivacyDialogClass *klass) |
| 6371 | 277 | { |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
278 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
279 | |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
280 | 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
|
281 | widget_class, "/im/pidgin/Pidgin3/Privacy/dialog.ui"); |
|
7165
6547d94b0725
[gaim-migrate @ 7732]
Mark Doliner <markdoliner@pidgin.im>
parents:
6646
diff
changeset
|
282 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
283 | 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
|
284 | account_chooser); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
285 | 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
|
286 | add_button); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
287 | 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
|
288 | allow_list); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
289 | 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
|
290 | allow_store); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
291 | 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
|
292 | allow_widget); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
293 | 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
|
294 | block_list); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
295 | 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
|
296 | block_store); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
297 | 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
|
298 | block_widget); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
299 | 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
|
300 | close_button); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
301 | 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
|
302 | remove_button); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
303 | 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
|
304 | removeall_button); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
305 | 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
|
306 | type_menu); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
307 | |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
308 | 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
|
309 | 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
|
310 | 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
|
311 | 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
|
312 | 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
|
313 | gtk_widget_class_bind_template_callback(widget_class, user_selected_cb); |
| 6371 | 314 | } |
| 315 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
316 | static void |
|
40534
8dad2981fb86
Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents:
40496
diff
changeset
|
317 | 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
|
318 | 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
|
319 | 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
|
320 | guint selected = GTK_INVALID_LIST_POSITION; |
| 6371 | 321 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
322 | gtk_widget_init_template(GTK_WIDGET(dialog)); |
| 6371 | 323 | |
|
40534
8dad2981fb86
Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents:
40496
diff
changeset
|
324 | 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
|
325 | dialog->account = pidgin_account_chooser_get_selected(chooser); |
| 6371 | 326 | |
| 327 | /* 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
|
328 | 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
|
329 | 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
|
330 | 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
|
331 | |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
332 | 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
|
333 | selected = i; |
|
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
334 | } |
|
26931
57f05d09b5b7
Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
22389
diff
changeset
|
335 | } |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
336 | 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
|
337 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
338 | /* Rebuild the allow and block lists views. */ |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
339 | rebuild_allow_list(dialog); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
340 | rebuild_block_list(dialog); |
| 6371 | 341 | |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
342 | type_changed_cb(G_OBJECT(dialog->type_menu), NULL, dialog); |
| 6371 | 343 | } |
| 344 | ||
| 345 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
346 | pidgin_privacy_dialog_show(void) |
| 6371 | 347 | { |
| 15884 | 348 | g_return_if_fail(purple_connections_get_all() != NULL); |
|
10352
802e7ab5b838
[gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents:
10148
diff
changeset
|
349 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
350 | if (privacy_dialog == NULL) { |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
351 | 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
|
352 | g_object_add_weak_pointer(G_OBJECT(privacy_dialog), |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
353 | (gpointer)&privacy_dialog); |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
354 | } |
| 6371 | 355 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
356 | gtk_widget_show(GTK_WIDGET(privacy_dialog)); |
| 6371 | 357 | } |
| 358 | ||
| 359 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
360 | pidgin_privacy_dialog_hide(void) |
| 6371 | 361 | { |
|
41528
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
362 | if(GTK_IS_WIDGET(privacy_dialog)) { |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
363 | gtk_window_destroy(GTK_WINDOW(privacy_dialog)); |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
364 | } |
| 6371 | 365 | } |
| 366 | ||
| 367 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
368 | destroy_request_data(PidginPrivacyRequestData *data) |
| 6371 | 369 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
370 | g_free(data->name); |
| 6371 | 371 | g_free(data); |
| 372 | } | |
| 373 | ||
| 374 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
375 | confirm_permit_block_cb(PidginPrivacyRequestData *data, |
|
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
376 | G_GNUC_UNUSED int option) |
| 6371 | 377 | { |
| 378 | if (data->block) | |
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
379 | purple_account_privacy_deny(data->account, data->name); |
| 6371 | 380 | else |
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
381 | purple_account_privacy_allow(data->account, data->name); |
| 6371 | 382 | |
| 383 | destroy_request_data(data); | |
| 384 | } | |
| 385 | ||
| 386 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
387 | add_permit_block_cb(PidginPrivacyRequestData *data, const char *name) |
| 6371 | 388 | { |
| 389 | data->name = g_strdup(name); | |
| 390 | ||
| 391 | confirm_permit_block_cb(data, 0); | |
| 392 | } | |
| 393 | ||
| 394 | void | |
| 15884 | 395 | pidgin_request_add_permit(PurpleAccount *account, const char *name) |
| 6371 | 396 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
397 | PidginPrivacyRequestData *data; |
| 6371 | 398 | |
| 399 | g_return_if_fail(account != NULL); | |
| 400 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
401 | data = g_new0(PidginPrivacyRequestData, 1); |
| 6371 | 402 | data->account = account; |
| 403 | data->name = g_strdup(name); | |
| 404 | data->block = FALSE; | |
| 405 | ||
| 406 | if (name == NULL) { | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
407 | purple_request_input(account, _("Permit User"), |
| 6371 | 408 | _("Type a user you permit to contact you."), |
| 409 | _("Please enter the name of the user you wish to be " | |
| 410 | "able to contact you."), | |
| 8697 | 411 | NULL, FALSE, FALSE, NULL, |
| 12603 | 412 | _("_Permit"), G_CALLBACK(add_permit_block_cb), |
| 6371 | 413 | _("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
|
414 | purple_request_cpar_from_account(account), |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
415 | data); |
| 6371 | 416 | } |
| 417 | else { | |
| 418 | char *primary = g_strdup_printf(_("Allow %s to contact you?"), name); | |
| 419 | char *secondary = | |
| 420 | g_strdup_printf(_("Are you sure you wish to allow " | |
| 421 | "%s to contact you?"), name); | |
| 422 | ||
| 423 | ||
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
424 | 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
|
425 | 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
|
426 | data, 2, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
427 | _("_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
|
428 | _("Cancel"), G_CALLBACK(destroy_request_data)); |
| 6371 | 429 | |
| 430 | g_free(primary); | |
| 431 | g_free(secondary); | |
| 432 | } | |
| 433 | } | |
| 434 | ||
| 435 | void | |
| 15884 | 436 | pidgin_request_add_block(PurpleAccount *account, const char *name) |
| 6371 | 437 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
438 | PidginPrivacyRequestData *data; |
| 6371 | 439 | |
| 440 | g_return_if_fail(account != NULL); | |
| 441 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
442 | data = g_new0(PidginPrivacyRequestData, 1); |
| 6371 | 443 | data->account = account; |
| 444 | data->name = g_strdup(name); | |
| 445 | data->block = TRUE; | |
| 446 | ||
| 447 | if (name == NULL) { | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
448 | purple_request_input(account, _("Block User"), |
| 6371 | 449 | _("Type a user to block."), |
| 450 | _("Please enter the name of the user you wish to block."), | |
| 8697 | 451 | NULL, FALSE, FALSE, NULL, |
| 12603 | 452 | _("_Block"), G_CALLBACK(add_permit_block_cb), |
| 6371 | 453 | _("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
|
454 | purple_request_cpar_from_account(account), |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
455 | data); |
| 6371 | 456 | } |
| 457 | else { | |
| 458 | char *primary = g_strdup_printf(_("Block %s?"), name); | |
| 459 | char *secondary = | |
| 460 | g_strdup_printf(_("Are you sure you want to block %s?"), name); | |
| 461 | ||
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
462 | 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
|
463 | 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
|
464 | data, 2, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
465 | _("_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
|
466 | _("Cancel"), G_CALLBACK(destroy_request_data)); |
| 6371 | 467 | |
| 468 | g_free(primary); | |
| 469 | g_free(secondary); | |
| 470 | } | |
| 471 | } | |
| 472 | ||
| 473 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
474 | pidgin_permit_added_removed(G_GNUC_UNUSED PurpleAccount *account, |
|
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
475 | G_GNUC_UNUSED const char *name) |
| 6371 | 476 | { |
| 477 | if (privacy_dialog != NULL) | |
| 478 | rebuild_allow_list(privacy_dialog); | |
| 479 | } | |
| 480 | ||
| 481 | static void | |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
482 | pidgin_deny_added_removed(G_GNUC_UNUSED PurpleAccount *account, |
|
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41864
diff
changeset
|
483 | G_GNUC_UNUSED const char *name) |
| 6371 | 484 | { |
| 485 | if (privacy_dialog != NULL) | |
| 486 | rebuild_block_list(privacy_dialog); | |
| 487 | } | |
| 488 | ||
| 489 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
490 | pidgin_privacy_init(void) |
| 6371 | 491 | { |
|
35040
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
492 | PurpleAccountUiOps *ops = pidgin_accounts_get_ui_ops(); |
|
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
493 | |
|
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
494 | 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
|
495 | ops->deny_added = ops->deny_removed = pidgin_deny_added_removed; |
| 6371 | 496 | } |