Tue, 15 Oct 2024 00:47:42 -0500
Port prefs to AdwSwitchRow
Now that we depend on Adwaita 1.4, we can flip the switch on using these (pun intended).
This also simplifies some extra tracking we needed to do for activations and focus, since the Adwaita widgets do that for us.
Testing Done:
Opened prefs, confirmed all the switches were there, and toggled them all without any warnings.
Also used the mnemonics to toggle the switches from the keyboard.
Reviewed at https://reviews.imfreedom.org/r/3582/
|
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; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
36 | GtkWidget *auto_ip; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
37 | GtkWidget *public_ip; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
38 | GtkWidget *map_ports; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
39 | GtkWidget *ports_range_use; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
40 | GtkWidget *ports_range_start; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
41 | GtkWidget *ports_range_end; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
42 | }; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
43 | |
|
42575
580339aa47cc
Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents:
42147
diff
changeset
|
44 | 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
|
45 | ADW_TYPE_PREFERENCES_PAGE) |
|
41369
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 | /****************************************************************************** |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
48 | * Helpers |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
49 | *****************************************************************************/ |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
50 | 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
|
51 | 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
|
52 | { |
|
41618
7e9ad20d503a
Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41581
diff
changeset
|
53 | 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
|
54 | 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
|
55 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
56 | if (text && *text) { |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
57 | 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
|
58 | 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
|
59 | 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
|
60 | 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
|
61 | } else { |
|
41618
7e9ad20d503a
Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41581
diff
changeset
|
62 | 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
|
63 | 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
|
64 | } |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
65 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
66 | } else { |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
67 | 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
|
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_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
|
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 | |
|
41549
ee5853951322
Convert network prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41376
diff
changeset
|
73 | static void |
|
41623
78cf94d0f8c8
Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41618
diff
changeset
|
74 | 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
|
75 | 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
|
76 | { |
|
41623
78cf94d0f8c8
Move network preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41618
diff
changeset
|
77 | 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
|
78 | GSettings *settings = NULL; |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
79 | const char *ip; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
80 | char *auto_ip_text; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
81 | GList *list = NULL; |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
82 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
83 | /* 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
|
84 | 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
|
85 | purple_core_get_settings_backend()); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
86 | if(g_settings_get_boolean(settings, "autodetect")) { |
|
42118
97bc84c5233e
Remove our stun code
Gary Kramlich <grim@reaperworld.com>
parents:
42032
diff
changeset
|
87 | 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
|
88 | } else { |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
89 | ip = _("Disabled"); |
|
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 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
92 | 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
|
93 | 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
|
94 | auto_ip_text); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
95 | g_free(auto_ip_text); |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
96 | 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
|
97 | g_object_unref(settings); |
|
41369
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 | /****************************************************************************** |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
101 | * GObject Implementation |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
102 | *****************************************************************************/ |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
103 | static void |
|
41376
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
104 | 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
|
105 | { |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
106 | 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
|
107 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
108 | 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
|
109 | widget_class, |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
110 | "/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
|
111 | ); |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
112 | |
|
41376
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
113 | 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
|
114 | stun_server); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
115 | 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
|
116 | auto_ip); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
117 | 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
|
118 | public_ip); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
119 | 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
|
120 | map_ports); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
121 | 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
|
122 | ports_range_use); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
123 | 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
|
124 | ports_range_start); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
125 | 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
|
126 | ports_range_end); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
127 | 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
|
128 | auto_ip_button_clicked_cb); |
|
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
129 | 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
|
130 | } |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
131 | |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
132 | static void |
|
41376
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
133 | 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
|
134 | { |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
135 | GSettings *settings = NULL; |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
136 | char *ip = NULL; |
|
42147
d202e153dd70
fix crash when opening preferences
Markus Fischer <ivanhoe@fiscari.de>
parents:
42118
diff
changeset
|
137 | |
|
41376
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
138 | 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
|
139 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
140 | 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
|
141 | purple_core_get_settings_backend()); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
142 | 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
|
143 | G_SETTINGS_BIND_DEFAULT); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
144 | g_clear_object(&settings); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
145 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
146 | 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
|
147 | purple_core_get_settings_backend()); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
148 | 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
|
149 | G_SETTINGS_BIND_DEFAULT); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
150 | g_clear_object(&settings); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
151 | |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
152 | ip = purple_network_get_public_ip(); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
153 | 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
|
154 | g_free(ip); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
155 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
156 | 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
|
157 | purple_core_get_settings_backend()); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
158 | 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
|
159 | G_SETTINGS_BIND_DEFAULT); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
160 | g_clear_object(&settings); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
161 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
162 | 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
|
163 | 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
|
164 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
165 | g_settings_bind(settings, "enabled", |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
166 | prefs->ports_range_use, "enable-expansion", |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
167 | G_SETTINGS_BIND_DEFAULT); |
|
41369
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
168 | |
|
43010
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
169 | 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
|
170 | G_SETTINGS_BIND_DEFAULT); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
171 | 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
|
172 | G_SETTINGS_BIND_DEFAULT); |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
173 | |
|
9a3485b096c8
Port network settings to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42592
diff
changeset
|
174 | g_clear_object(&settings); |
|
41369
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 | /****************************************************************************** |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
178 | * API |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
179 | *****************************************************************************/ |
|
70144e5e0a89
Split network prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
180 | GtkWidget * |
|
41376
5bd22f39246a
Rename PidginNetworkPage to PidginNetworkPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41369
diff
changeset
|
181 | pidgin_network_prefs_new(void) { |
|
42592
6b65c0e4ba15
Remove unnecessary casts for GObject methods
Gary Kramlich <grim@reaperworld.com>
parents:
42575
diff
changeset
|
182 | 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
|
183 | } |