pidgin/prefs/pidginnetworkprefs.c

Sun, 03 Nov 2024 00:05:44 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 03 Nov 2024 00:05:44 -0500
changeset 43045
308e8d0ce68c
parent 43013
26d30c0db9a5
child 43253
0cc00d7d6215
permissions
-rw-r--r--

remove purple3-url-handler.desktop.in.in

The application that did the launching was removed long ago. Also this should
be implemented by the user interfaces and they might provide separate files to
groups schemas as well.

Testing Done:
Called in the turtles.

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

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
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
31 struct _PidginNetworkPrefs {
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
32 AdwPreferencesPage parent;
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34 GtkWidget *stun_server;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35 GtkWidget *auto_ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 GtkWidget *public_ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 GtkWidget *map_ports;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 GtkWidget *ports_range_use;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 GtkWidget *ports_range_start;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 GtkWidget *ports_range_end;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 };
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
42
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42147
diff changeset
43 G_DEFINE_FINAL_TYPE(PidginNetworkPrefs, pidgin_network_prefs,
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42147
diff changeset
44 ADW_TYPE_PREFERENCES_PAGE)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 /******************************************************************************
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 * Helpers
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 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41855
diff changeset
50 network_ip_changed(GtkEditable *editable, G_GNUC_UNUSED gpointer data)
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
51 {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
52 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
53 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
54
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55 if (text && *text) {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 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
57 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
58 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
59 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
60 } else {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41581
diff changeset
61 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
62 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
63 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
64
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
65 } else {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
66 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
67 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
68 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
69 }
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
41549
ee5853951322 Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41376
diff changeset
72 static void
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
73 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
74 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
75 {
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
76 PidginNetworkPrefs *prefs = PIDGIN_NETWORK_PREFS(data);
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
77 GSettings *settings = NULL;
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78 const char *ip;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
79 char *auto_ip_text;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 GList *list = NULL;
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 /* Make a lookup for the auto-detected IP ourselves. */
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
83 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
84 purple_core_get_settings_backend());
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
85 if(g_settings_get_boolean(settings, "autodetect")) {
42118
97bc84c5233e Remove our stun code
Gary Kramlich <grim@reaperworld.com>
parents: 42032
diff changeset
86 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
87 } else {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
88 ip = _("Disabled");
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
89 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
90
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
91 auto_ip_text = g_strdup_printf(_("Use _automatically detected IP address: %s"), ip);
43011
ce3144e2bc33 Port prefs to AdwSwitchRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 43010
diff changeset
92 adw_preferences_row_set_title(ADW_PREFERENCES_ROW(prefs->auto_ip),
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
93 auto_ip_text);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
94 g_free(auto_ip_text);
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
95 g_list_free_full(list, g_free);
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
96 g_object_unref(settings);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
97 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
98
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 * GObject Implementation
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
101 *****************************************************************************/
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
102 static void
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
103 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
104 {
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
105 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
106
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107 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
108 widget_class,
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
109 "/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
110 );
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
111
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
112 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
113 stun_server);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
114 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
115 auto_ip);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
116 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
117 public_ip);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
118 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
119 map_ports);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
120 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
121 ports_range_use);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
122 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
123 ports_range_start);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
124 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
125 ports_range_end);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
126 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
127 auto_ip_button_clicked_cb);
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
128 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
129 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
130
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
131 static void
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
132 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
133 {
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
134 GSettings *settings = NULL;
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
135 char *ip = NULL;
42147
d202e153dd70 fix crash when opening preferences
Markus Fischer <ivanhoe@fiscari.de>
parents: 42118
diff changeset
136
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
137 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
138
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
139 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Stun",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
140 purple_core_get_settings_backend());
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
141 g_settings_bind(settings, "server", prefs->stun_server, "text",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
142 G_SETTINGS_BIND_DEFAULT);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
143 g_clear_object(&settings);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
144
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
145 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
146 purple_core_get_settings_backend());
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
147 g_settings_bind(settings, "autodetect", prefs->auto_ip, "active",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
148 G_SETTINGS_BIND_DEFAULT);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
149 g_clear_object(&settings);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
150
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
151 ip = purple_network_get_public_ip();
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
152 gtk_editable_set_text(GTK_EDITABLE(prefs->public_ip), ip);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
153 g_free(ip);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
154
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
155 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
156 purple_core_get_settings_backend());
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
157 g_settings_bind(settings, "use-discovery", prefs->map_ports, "active",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
158 G_SETTINGS_BIND_DEFAULT);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
159 g_clear_object(&settings);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
160
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
161 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports.Manual",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
162 purple_core_get_settings_backend());
41623
78cf94d0f8c8 Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
163
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
164 g_settings_bind(settings, "enabled",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
165 prefs->ports_range_use, "enable-expansion",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
166 G_SETTINGS_BIND_DEFAULT);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
167
43010
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
168 g_settings_bind(settings, "start", prefs->ports_range_start, "value",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
169 G_SETTINGS_BIND_DEFAULT);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
170 g_settings_bind(settings, "end", prefs->ports_range_end, "value",
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
171 G_SETTINGS_BIND_DEFAULT);
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
172
9a3485b096c8 Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42592
diff changeset
173 g_clear_object(&settings);
41369
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
174 }
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
175
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
176 /******************************************************************************
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
177 * API
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
178 *****************************************************************************/
70144e5e0a89 Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
179 GtkWidget *
41376
5bd22f39246a Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41369
diff changeset
180 pidgin_network_prefs_new(void) {
42592
6b65c0e4ba15 Remove unnecessary casts for GObject methods
Gary Kramlich <grim@reaperworld.com>
parents: 42575
diff changeset
181 return 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
182 }

mercurial