pidgin/prefs/pidginnetworkprefs.c

Sat, 29 Oct 2022 01:14:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 29 Oct 2022 01:14:13 -0500
changeset 41859
ed82ab63d15a
parent 41855
96f15115ab61
child 41947
7b3312d0760c
permissions
-rw-r--r--

Convert PidginProxyPrefs to Adwaita 1.2

Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.

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

41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23 #include <glib/gi18n-lib.h>
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 #include <purple.h>
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
27 #include <adwaita.h>
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
29 #include "pidginnetworkprefs.h"
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 #include "pidginprefsinternal.h"
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
32 struct _PidginNetworkPrefs {
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
33 AdwPreferencesPage parent;
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35 GtkWidget *stun_server;
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
36 GtkWidget *auto_ip_row;
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 GtkWidget *auto_ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 GtkWidget *public_ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 GtkWidget *map_ports;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 GtkWidget *ports_range_use;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 GtkWidget *ports_range_start;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42 GtkWidget *ports_range_end;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 GtkWidget *turn_server;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44 GtkWidget *turn_port_udp;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45 GtkWidget *turn_port_tcp;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 GtkWidget *turn_username;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 GtkWidget *turn_password;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 };
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
50 G_DEFINE_TYPE(PidginNetworkPrefs, pidgin_network_prefs,
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
51 ADW_TYPE_PREFERENCES_PAGE)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
52
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
53 /******************************************************************************
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
54 * Helpers
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55 *****************************************************************************/
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 static void
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
57 network_ip_changed(GtkEditable *editable, gpointer data)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
58 {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
59 const gchar *text = gtk_editable_get_text(editable);
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
60 GtkWidget *widget = GTK_WIDGET(editable);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
61
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
62 if (text && *text) {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
63 if (g_hostname_is_ip_address(text)) {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
64 purple_network_set_public_ip(text);
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
65 gtk_widget_remove_css_class(widget, "error");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
66 gtk_widget_add_css_class(widget, "success");
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
67 } else {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
68 gtk_widget_remove_css_class(widget, "success");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
69 gtk_widget_add_css_class(widget, "error");
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
70 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
71
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
72 } else {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
73 purple_network_set_public_ip("");
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
74 gtk_widget_remove_css_class(widget, "success");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
75 gtk_widget_remove_css_class(widget, "error");
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
76 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
77 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
79 static void
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
80 network_stun_server_changed_cb(G_GNUC_UNUSED GtkEventControllerFocus *focus,
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
81 gpointer data)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 {
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
83 GtkEditable *editable = data;
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
84
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
85 purple_prefs_set_string("/purple/network/stun_server",
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
86 gtk_editable_get_text(editable));
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
87 purple_network_set_stun_server(gtk_editable_get_text(editable));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
88 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
89
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
90 static void
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
91 network_turn_server_changed_cb(G_GNUC_UNUSED GtkEventControllerFocus *focus,
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
92 gpointer data)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
93 {
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
94 GtkEditable *editable = data;
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
95
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
96 purple_prefs_set_string("/purple/network/turn_server",
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
97 gtk_editable_get_text(editable));
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
98 purple_network_set_turn_server(gtk_editable_get_text(editable));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
99 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
100
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
101 static void
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
102 auto_ip_button_clicked_cb(G_GNUC_UNUSED GObject *obj,
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
103 G_GNUC_UNUSED GParamSpec *pspec, gpointer data)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
104 {
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
105 PidginNetworkPrefs *prefs = PIDGIN_NETWORK_PREFS(data);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
106 const char *ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107 PurpleStunNatDiscovery *stun;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
108 char *auto_ip_text;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
109 GList *list = NULL;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
110
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
111 /* Make a lookup for the auto-detected IP ourselves. */
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
112 if (purple_prefs_get_bool("/purple/network/auto_ip")) {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
113 /* Check if STUN discovery was already done */
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
114 stun = purple_stun_discover(NULL);
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
115 if ((stun != NULL) && (stun->status == PURPLE_STUN_STATUS_DISCOVERED)) {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
116 ip = stun->publicip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
117 } else {
41828
023b57b090f6 Remove the upnp API
Gary Kramlich <grim@reaperworld.com>
parents: 41826
diff changeset
118 /* Attempt to get the IP from a NAT device using NAT-PMP */
023b57b090f6 Remove the upnp API
Gary Kramlich <grim@reaperworld.com>
parents: 41826
diff changeset
119 ip = purple_pmp_get_public_ip();
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
120 if (ip == NULL) {
41828
023b57b090f6 Remove the upnp API
Gary Kramlich <grim@reaperworld.com>
parents: 41826
diff changeset
121 ip = "0.0.0.0";
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
122 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
123 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
124 } else {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
125 ip = _("Disabled");
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
126 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
127
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
128 auto_ip_text = g_strdup_printf(_("Use _automatically detected IP address: %s"), ip);
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
129 adw_preferences_row_set_title(ADW_PREFERENCES_ROW(prefs->auto_ip_row),
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
130 auto_ip_text);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
131 g_free(auto_ip_text);
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
132 g_list_free_full(list, g_free);
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
133 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
134
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
135 /******************************************************************************
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
136 * GObject Implementation
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
137 *****************************************************************************/
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
138 static void
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
139 pidgin_network_prefs_class_init(PidginNetworkPrefsClass *klass)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
140 {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
141 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
142
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
143 gtk_widget_class_set_template_from_resource(
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
144 widget_class,
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
145 "/im/pidgin/Pidgin3/Prefs/network.ui"
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
146 );
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
147
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
148 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
149 stun_server);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
150 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
151 auto_ip_row);
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
152 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
153 auto_ip);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
154 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
155 public_ip);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
156 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
157 map_ports);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
158 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
159 ports_range_use);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
160 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
161 ports_range_start);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
162 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
163 ports_range_end);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
164 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
165 turn_server);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
166 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
167 turn_port_udp);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
168 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
169 turn_port_tcp);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
170 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
171 turn_username);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
172 gtk_widget_class_bind_template_child(widget_class, PidginNetworkPrefs,
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
173 turn_password);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
174 gtk_widget_class_bind_template_callback(widget_class,
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
175 network_stun_server_changed_cb);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
176 gtk_widget_class_bind_template_callback(widget_class,
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
177 auto_ip_button_clicked_cb);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
178 gtk_widget_class_bind_template_callback(widget_class, network_ip_changed);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
179 gtk_widget_class_bind_template_callback(widget_class,
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
180 network_turn_server_changed_cb);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
181 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
182
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
183 static void
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
184 pidgin_network_prefs_init(PidginNetworkPrefs *prefs)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
185 {
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
186 gtk_widget_init_template(GTK_WIDGET(prefs));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
187
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
188 gtk_editable_set_text(GTK_EDITABLE(prefs->stun_server),
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
189 purple_prefs_get_string("/purple/network/stun_server"));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
190
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
191 pidgin_prefs_bind_switch("/purple/network/auto_ip", prefs->auto_ip);
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
192 auto_ip_button_clicked_cb(NULL, NULL, prefs); /* Update label */
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
193
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
194 gtk_editable_set_text(GTK_EDITABLE(prefs->public_ip),
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
195 purple_network_get_public_ip());
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
196
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
197 pidgin_prefs_bind_switch("/purple/network/map_ports", prefs->map_ports);
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
198
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
199 pidgin_prefs_bind_expander_row("/purple/network/ports_range_use",
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
200 prefs->ports_range_use);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
201
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
202 pidgin_prefs_bind_spin_button("/purple/network/ports_range_start",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
203 prefs->ports_range_start);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
204 pidgin_prefs_bind_spin_button("/purple/network/ports_range_end",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
205 prefs->ports_range_end);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
206
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
207 /* TURN server */
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
208 gtk_editable_set_text(GTK_EDITABLE(prefs->turn_server),
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
209 purple_prefs_get_string("/purple/network/turn_server"));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
210
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
211 pidgin_prefs_bind_spin_button("/purple/network/turn_port",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
212 prefs->turn_port_udp);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
213
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
214 pidgin_prefs_bind_spin_button("/purple/network/turn_port_tcp",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
215 prefs->turn_port_tcp);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
216
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
217 pidgin_prefs_bind_entry("/purple/network/turn_username",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
218 prefs->turn_username);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
219 pidgin_prefs_bind_entry("/purple/network/turn_password",
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
220 prefs->turn_password);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
221 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
222
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
223 /******************************************************************************
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
224 * API
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
225 *****************************************************************************/
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
226 GtkWidget *
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
227 pidgin_network_prefs_new(void) {
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
228 return GTK_WIDGET(g_object_new(PIDGIN_TYPE_NETWORK_PREFS, NULL));
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
229 }

mercurial