Wed, 26 Oct 2022 02:58:05 -0500
Remove C99-obsoleted constructs
See [this development thread for a future Fedora change](https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/CJXKTLXJUPZ4F2C2VQOTNMEA5JAUPMBD/) or [the proposed change page](https://fedoraproject.org/wiki/Changes/PortingToModernC). These may be made stronger errors in GCC 14.
Testing Done:
Configured with `-Dc_args='-Werror=implicit-int -Werror=implicit-function-declaration -Werror=int-conversion -Werror=strict-prototypes -Werror=old-style-definition'` and compiled.
Reviewed at https://reviews.imfreedom.org/r/1974/
|
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" |
|
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 | 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 | 39 | |
| 40 | GtkWidget *type_menu; | |
| 41 | ||
| 42 | GtkWidget *add_button; | |
| 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 | 46 | |
| 47 | GtkWidget *allow_widget; | |
| 48 | GtkWidget *block_widget; | |
| 49 | ||
| 50 | GtkListStore *allow_store; | |
| 51 | GtkListStore *block_store; | |
| 52 | ||
| 53 | GtkWidget *allow_list; | |
| 54 | GtkWidget *block_list; | |
| 55 | ||
| 56 | gboolean in_allow_list; | |
| 57 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
58 | GtkWidget *account_chooser; |
| 15884 | 59 | PurpleAccount *account; |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
60 | }; |
| 6371 | 61 | |
| 62 | typedef struct | |
| 63 | { | |
| 15884 | 64 | PurpleAccount *account; |
| 6371 | 65 | char *name; |
| 66 | gboolean block; | |
| 67 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
68 | } PidginPrivacyRequestData; |
| 6371 | 69 | |
| 70 | static struct | |
| 71 | { | |
| 72 | const char *text; | |
| 34892 | 73 | PurpleAccountPrivacyType type; |
| 6371 | 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 | 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 | 82 | }; |
| 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 | 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 | 87 | |
| 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 | 90 | { |
| 91 | GSList *l; | |
| 92 | GtkTreeIter iter; | |
| 93 | ||
| 94 | gtk_list_store_clear(dialog->allow_store); | |
| 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 | 97 | gtk_list_store_append(dialog->allow_store, &iter); |
| 98 | gtk_list_store_set(dialog->allow_store, &iter, 0, l->data, -1); | |
| 99 | } | |
| 100 | } | |
| 101 | ||
| 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 | 104 | { |
| 105 | GSList *l; | |
| 106 | GtkTreeIter iter; | |
| 107 | ||
| 108 | gtk_list_store_clear(dialog->block_store); | |
| 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 | 111 | gtk_list_store_append(dialog->block_store, &iter); |
| 112 | gtk_list_store_set(dialog->block_store, &iter, 0, l->data, -1); | |
| 113 | } | |
| 114 | } | |
| 115 | ||
| 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 | 118 | { |
| 119 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); | |
| 120 | } | |
| 121 | ||
| 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 | 127 | |
| 128 | dialog->account = account; | |
| 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 | 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 | 148 | break; |
| 149 | } | |
| 150 | } | |
| 151 | ||
| 152 | rebuild_allow_list(dialog); | |
| 153 | rebuild_block_list(dialog); | |
| 154 | } | |
| 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 | 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; |
|
41769
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
165 | PurpleProtocol *protocol = NULL; |
|
40252
18fd5c5c4625
Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40251
diff
changeset
|
166 | gboolean buttons_sensitive; |
| 6371 | 167 | |
|
32624
f957ad287bcc
Convert code to use the purple_account accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents:
31321
diff
changeset
|
168 | 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
|
169 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
170 | 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
|
171 | 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
|
172 | PurpleConnection *connection = NULL; |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
173 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
174 | 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
|
175 | 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
|
176 | PurpleProtocolPrivacy *privacy = NULL; |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
177 | |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
178 | 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
|
179 | 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
|
180 | } |
|
e5b2368ad3ad
Remove the server privacy api that was just proxying to PurpleProtocolPrivacy
Gary Kramlich <grim@reaperworld.com>
parents:
41643
diff
changeset
|
181 | } |
| 6371 | 182 | |
| 183 | gtk_widget_hide(dialog->allow_widget); | |
| 184 | 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
|
185 | buttons_sensitive = FALSE; |
| 6371 | 186 | |
|
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
|
187 | if (new_type == PURPLE_ACCOUNT_PRIVACY_ALLOW_USERS) { |
| 6371 | 188 | 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
|
189 | buttons_sensitive = TRUE; |
| 6371 | 190 | dialog->in_allow_list = TRUE; |
| 191 | } | |
|
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
|
192 | else if (new_type == PURPLE_ACCOUNT_PRIVACY_DENY_USERS) { |
| 6371 | 193 | 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
|
194 | buttons_sensitive = TRUE; |
| 6371 | 195 | dialog->in_allow_list = FALSE; |
| 196 | } | |
|
10147
a4897a5bcf8d
[gaim-migrate @ 11224]
Peter Lawler <pidgin@bleeter.id.au>
parents:
9791
diff
changeset
|
197 | |
|
40252
18fd5c5c4625
Don't hide button box in privacy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40251
diff
changeset
|
198 | 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
|
199 | /* 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
|
200 | 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
|
201 | 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
|
202 | |
| 15884 | 203 | purple_blist_schedule_save(); |
|
39665
2172e3b8eeef
Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
38007
diff
changeset
|
204 | pidgin_blist_refresh(purple_blist_get_default()); |
| 6371 | 205 | } |
| 206 | ||
| 207 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
208 | add_cb(GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 209 | { |
| 210 | if (dialog->in_allow_list) | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
211 | pidgin_request_add_permit(dialog->account, NULL); |
| 6371 | 212 | else |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
213 | pidgin_request_add_block(dialog->account, NULL); |
| 6371 | 214 | } |
| 215 | ||
| 216 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
217 | remove_cb(GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 218 | { |
| 219 | GtkTreeIter iter; | |
| 220 | GtkTreeModel *model; | |
| 221 | GtkTreeSelection *sel; | |
| 222 | char *name; | |
| 223 | ||
| 224 | if (dialog->in_allow_list && dialog->allow_store == NULL) | |
| 225 | return; | |
| 226 | ||
| 227 | if (!dialog->in_allow_list && dialog->block_store == NULL) | |
| 228 | return; | |
| 229 | ||
| 230 | if (dialog->in_allow_list) { | |
| 231 | model = GTK_TREE_MODEL(dialog->allow_store); | |
| 232 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->allow_list)); | |
| 233 | } | |
| 234 | else { | |
| 235 | model = GTK_TREE_MODEL(dialog->block_store); | |
| 236 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->block_list)); | |
| 237 | } | |
| 238 | ||
| 239 | if (gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
| 240 | gtk_tree_model_get(model, &iter, 0, &name, -1); | |
| 241 | else | |
| 242 | return; | |
| 243 | ||
|
22372
2b2d10362583
In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents:
22214
diff
changeset
|
244 | 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
|
245 | 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
|
246 | 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
|
247 | 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
|
248 | |
|
13149
895f0495b7db
[gaim-migrate @ 15511]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12852
diff
changeset
|
249 | g_free(name); |
| 6371 | 250 | } |
| 251 | ||
| 252 | static void | |
|
22372
2b2d10362583
In Pidgin's privacy dialog:
Mark Doliner <markdoliner@pidgin.im>
parents:
22214
diff
changeset
|
253 | removeall_cb(GtkWidget *button, PidginPrivacyDialog *dialog) |
| 6371 | 254 | { |
| 8556 | 255 | GSList *l; |
| 256 | 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
|
257 | l = purple_account_privacy_get_permitted(dialog->account); |
| 8556 | 258 | else |
|
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_denied(dialog->account); |
| 8556 | 260 | while (l) { |
| 261 | char *user; | |
| 262 | user = l->data; | |
| 263 | l = l->next; | |
| 264 | 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
|
265 | purple_account_privacy_permit_remove(dialog->account, user, FALSE); |
| 8556 | 266 | 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
|
267 | purple_account_privacy_deny_remove(dialog->account, user, FALSE); |
| 8556 | 268 | } |
| 6371 | 269 | } |
| 270 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
271 | 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
|
272 | |
| 6371 | 273 | static void |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
274 | pidgin_privacy_dialog_class_init(PidginPrivacyDialogClass *klass) |
| 6371 | 275 | { |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
276 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
277 | |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
278 | 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
|
279 | widget_class, "/im/pidgin/Pidgin3/Privacy/dialog.ui"); |
|
7165
6547d94b0725
[gaim-migrate @ 7732]
Mark Doliner <markdoliner@pidgin.im>
parents:
6646
diff
changeset
|
280 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
281 | 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
|
282 | account_chooser); |
|
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 | add_button); |
|
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 | allow_list); |
|
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_store); |
|
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_widget); |
|
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 | block_list); |
|
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_store); |
|
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_widget); |
|
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 | close_button); |
|
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 | remove_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 | removeall_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 | type_menu); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
305 | |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
306 | 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
|
307 | 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
|
308 | 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
|
309 | 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
|
310 | 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
|
311 | gtk_widget_class_bind_template_callback(widget_class, user_selected_cb); |
| 6371 | 312 | } |
| 313 | ||
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
314 | static void |
|
40534
8dad2981fb86
Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents:
40496
diff
changeset
|
315 | 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
|
316 | 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
|
317 | 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
|
318 | guint selected = GTK_INVALID_LIST_POSITION; |
| 6371 | 319 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
320 | gtk_widget_init_template(GTK_WIDGET(dialog)); |
| 6371 | 321 | |
|
40534
8dad2981fb86
Separate the AccountChooser from its model and move options to filters
Gary Kramlich <grim@reaperworld.com>
parents:
40496
diff
changeset
|
322 | 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
|
323 | dialog->account = pidgin_account_chooser_get_selected(chooser); |
| 6371 | 324 | |
| 325 | /* 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
|
326 | 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
|
327 | 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
|
328 | 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
|
329 | |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
330 | 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
|
331 | selected = i; |
|
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
332 | } |
|
26931
57f05d09b5b7
Replace the GtkOptionMenu with a GtkComboBox for the privacy options list
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
22389
diff
changeset
|
333 | } |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
334 | 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
|
335 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
336 | /* Rebuild the allow and block lists views. */ |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
337 | rebuild_allow_list(dialog); |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
338 | rebuild_block_list(dialog); |
| 6371 | 339 | |
|
41643
f7af70658fe5
Convert privacy combo box to the new drop down
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41528
diff
changeset
|
340 | type_changed_cb(G_OBJECT(dialog->type_menu), NULL, dialog); |
| 6371 | 341 | } |
| 342 | ||
| 343 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
344 | pidgin_privacy_dialog_show(void) |
| 6371 | 345 | { |
| 15884 | 346 | g_return_if_fail(purple_connections_get_all() != NULL); |
|
10352
802e7ab5b838
[gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents:
10148
diff
changeset
|
347 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
348 | if (privacy_dialog == NULL) { |
|
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
349 | 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
|
350 | g_object_add_weak_pointer(G_OBJECT(privacy_dialog), |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
351 | (gpointer)&privacy_dialog); |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
352 | } |
| 6371 | 353 | |
|
40251
41e9424fc96f
Convert Privacy dialog to Glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
40197
diff
changeset
|
354 | gtk_widget_show(GTK_WIDGET(privacy_dialog)); |
| 6371 | 355 | } |
| 356 | ||
| 357 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
358 | pidgin_privacy_dialog_hide(void) |
| 6371 | 359 | { |
|
41528
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
360 | if(GTK_IS_WIDGET(privacy_dialog)) { |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
361 | gtk_window_destroy(GTK_WINDOW(privacy_dialog)); |
|
4160c570866d
Convert gtkprivacy.c to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
362 | } |
| 6371 | 363 | } |
| 364 | ||
| 365 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
366 | destroy_request_data(PidginPrivacyRequestData *data) |
| 6371 | 367 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
368 | g_free(data->name); |
| 6371 | 369 | g_free(data); |
| 370 | } | |
| 371 | ||
| 372 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
373 | confirm_permit_block_cb(PidginPrivacyRequestData *data, int option) |
| 6371 | 374 | { |
| 375 | if (data->block) | |
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
376 | purple_account_privacy_deny(data->account, data->name); |
| 6371 | 377 | else |
|
34587
a3bc28bb4ef5
Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents:
34586
diff
changeset
|
378 | purple_account_privacy_allow(data->account, data->name); |
| 6371 | 379 | |
| 380 | destroy_request_data(data); | |
| 381 | } | |
| 382 | ||
| 383 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
384 | add_permit_block_cb(PidginPrivacyRequestData *data, const char *name) |
| 6371 | 385 | { |
| 386 | data->name = g_strdup(name); | |
| 387 | ||
| 388 | confirm_permit_block_cb(data, 0); | |
| 389 | } | |
| 390 | ||
| 391 | void | |
| 15884 | 392 | pidgin_request_add_permit(PurpleAccount *account, const char *name) |
| 6371 | 393 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
394 | PidginPrivacyRequestData *data; |
| 6371 | 395 | |
| 396 | g_return_if_fail(account != NULL); | |
| 397 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
398 | data = g_new0(PidginPrivacyRequestData, 1); |
| 6371 | 399 | data->account = account; |
| 400 | data->name = g_strdup(name); | |
| 401 | data->block = FALSE; | |
| 402 | ||
| 403 | if (name == NULL) { | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
404 | purple_request_input(account, _("Permit User"), |
| 6371 | 405 | _("Type a user you permit to contact you."), |
| 406 | _("Please enter the name of the user you wish to be " | |
| 407 | "able to contact you."), | |
| 8697 | 408 | NULL, FALSE, FALSE, NULL, |
| 12603 | 409 | _("_Permit"), G_CALLBACK(add_permit_block_cb), |
| 6371 | 410 | _("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
|
411 | purple_request_cpar_from_account(account), |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
412 | data); |
| 6371 | 413 | } |
| 414 | else { | |
| 415 | char *primary = g_strdup_printf(_("Allow %s to contact you?"), name); | |
| 416 | char *secondary = | |
| 417 | g_strdup_printf(_("Are you sure you wish to allow " | |
| 418 | "%s to contact you?"), name); | |
| 419 | ||
| 420 | ||
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
421 | 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
|
422 | 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
|
423 | data, 2, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
424 | _("_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
|
425 | _("Cancel"), G_CALLBACK(destroy_request_data)); |
| 6371 | 426 | |
| 427 | g_free(primary); | |
| 428 | g_free(secondary); | |
| 429 | } | |
| 430 | } | |
| 431 | ||
| 432 | void | |
| 15884 | 433 | pidgin_request_add_block(PurpleAccount *account, const char *name) |
| 6371 | 434 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
435 | PidginPrivacyRequestData *data; |
| 6371 | 436 | |
| 437 | g_return_if_fail(account != NULL); | |
| 438 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
439 | data = g_new0(PidginPrivacyRequestData, 1); |
| 6371 | 440 | data->account = account; |
| 441 | data->name = g_strdup(name); | |
| 442 | data->block = TRUE; | |
| 443 | ||
| 444 | if (name == NULL) { | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
445 | purple_request_input(account, _("Block User"), |
| 6371 | 446 | _("Type a user to block."), |
| 447 | _("Please enter the name of the user you wish to block."), | |
| 8697 | 448 | NULL, FALSE, FALSE, NULL, |
| 12603 | 449 | _("_Block"), G_CALLBACK(add_permit_block_cb), |
| 6371 | 450 | _("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
|
451 | purple_request_cpar_from_account(account), |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
452 | data); |
| 6371 | 453 | } |
| 454 | else { | |
| 455 | char *primary = g_strdup_printf(_("Block %s?"), name); | |
| 456 | char *secondary = | |
| 457 | g_strdup_printf(_("Are you sure you want to block %s?"), name); | |
| 458 | ||
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
459 | 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
|
460 | 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
|
461 | data, 2, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34329
diff
changeset
|
462 | _("_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
|
463 | _("Cancel"), G_CALLBACK(destroy_request_data)); |
| 6371 | 464 | |
| 465 | g_free(primary); | |
| 466 | g_free(secondary); | |
| 467 | } | |
| 468 | } | |
| 469 | ||
| 470 | static void | |
| 15884 | 471 | pidgin_permit_added_removed(PurpleAccount *account, const char *name) |
| 6371 | 472 | { |
| 473 | if (privacy_dialog != NULL) | |
| 474 | rebuild_allow_list(privacy_dialog); | |
| 475 | } | |
| 476 | ||
| 477 | static void | |
| 15884 | 478 | pidgin_deny_added_removed(PurpleAccount *account, const char *name) |
| 6371 | 479 | { |
| 480 | if (privacy_dialog != NULL) | |
| 481 | rebuild_block_list(privacy_dialog); | |
| 482 | } | |
| 483 | ||
| 484 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15486
diff
changeset
|
485 | pidgin_privacy_init(void) |
| 6371 | 486 | { |
|
35040
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
487 | PurpleAccountUiOps *ops = pidgin_accounts_get_ui_ops(); |
|
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
488 | |
|
f80a806325a4
Made pidgin_{permit|deny}_{added|removed} static
Ankit Vani <a@nevitus.org>
parents:
34940
diff
changeset
|
489 | 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
|
490 | ops->deny_added = ops->deny_removed = pidgin_deny_added_removed; |
| 6371 | 491 | } |