pidgin/prefs/pidginproxyprefs.c

Sat, 29 Oct 2022 00:08:34 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 29 Oct 2022 00:08:34 -0500
changeset 41856
3c3901fbe549
parent 41657
c68748c1f42e
child 41859
ed82ab63d15a
permissions
-rw-r--r--

Convert PidginProxyPrefs to GSettings

This is just the preferences nothing has been done to the actual global proxy options. To configure those you'll need to edit prefs.xml manually until they are updated to gsettings.

I also made the rows in the preferences not focusable and split up `pidgin_proxy_prefs_init` for readability.

Testing Done:
Set all values via the preference page and verified they were saved properly in the prefs file. I also verified the mappings for the type and set all of them via the preference page and verified that it was saved properly in the preference file.

I also manually modified the preferences file and verified that the changes were made immediately in the running program. I also set an invalid value for the type enum, which then fell back to it's default value of "No Proxy".

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

41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
0ae2dfa4a5cf Split proxy prefs page 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,
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
0ae2dfa4a5cf Split proxy prefs page 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
0ae2dfa4a5cf Split proxy prefs page 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/>.
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23 #include <glib/gi18n-lib.h>
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 #include <purple.h>
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26
41550
a1e1d5c248e4 Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41377
diff changeset
27 #include <adwaita.h>
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
29 #include "pidginproxyprefs.h"
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 #include "pidginprefsinternal.h"
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32 struct _PidginProxyPrefs {
41550
a1e1d5c248e4 Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41377
diff changeset
33 AdwPreferencesPage parent;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35 /* GNOME version */
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
36 GtkWidget *gnome;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 GtkWidget *gnome_not_found;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 GtkWidget *gnome_program;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
39 gchar *gnome_program_path;
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
40
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 /* Non-GNOME version */
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
42 GtkWidget *nongnome;
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
43 GtkWidget *type;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44 GtkWidget *options;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45 GtkWidget *host;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 GtkWidget *port;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 GtkWidget *username;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 GtkWidget *password;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49 };
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
50
41550
a1e1d5c248e4 Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41377
diff changeset
51 G_DEFINE_TYPE(PidginProxyPrefs, pidgin_proxy_prefs, ADW_TYPE_PREFERENCES_PAGE)
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
52
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
53 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
54 * Helpers
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55 *****************************************************************************/
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
56 static gchar *
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
57 proxy_type_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data)
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
58 {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
59 const gchar *text = "";
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
60 const gchar *value = NULL;
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
61
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
62 value = gtk_string_object_get_string(GTK_STRING_OBJECT(self));
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
63 if(purple_strequal(value, "none")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
64 text = _("No proxy");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
65 } else if(purple_strequal(value, "socks4")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
66 text = _("SOCKS 4");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
67 } else if(purple_strequal(value, "socks5")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
68 text = _("SOCKS 5");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
69 } else if(purple_strequal(value, "tor")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
70 text = _("Tor/Privacy (SOCKS 5)");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
71 } else if(purple_strequal(value, "http")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
72 text = _("HTTP");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
73 } else if(purple_strequal(value, "envvar")) {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
74 text = _("Use Environmental Settings");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
75 }
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
76
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
77 return g_strdup(text);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
78 }
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
79
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 static void
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
81 pidgin_proxy_prefs_type_changed_cb(GSettings *settings, char *key,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
82 gpointer data)
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
83 {
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
84 PidginProxyPrefs *prefs = data;
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
85 char *current = g_settings_get_string(settings, key);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
86
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
87 gtk_widget_set_visible(prefs->options,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
88 !purple_strequal(current, "No Proxy") &&
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
89 !purple_strequal(current, "Use Environmental Settings"));
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
90
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
91 g_free(current);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
92 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
93
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
94 static void
41621
29d99e6066b3 Move proxy preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41612
diff changeset
95 proxy_row_activated_cb(G_GNUC_UNUSED AdwActionRow *row, gpointer data)
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
96 {
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
97 PidginProxyPrefs *prefs = data;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
98 GError *err = NULL;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
99
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
100 if (g_spawn_command_line_async(prefs->gnome_program_path, &err)) {
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
101 return;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
102 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
103
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
104 purple_notify_error(NULL, NULL, _("Cannot start proxy configuration program."), err->message, NULL);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
105 g_error_free(err);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
106 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
108 static gboolean
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
109 pidgin_proxy_prefs_get_type_mapping(GValue *value, GVariant *variant,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
110 G_GNUC_UNUSED gpointer data)
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
111 {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
112 const char *current = g_variant_get_string(variant, NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
113 guint position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
114
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
115 /* The values for position are dependent on the order of the GtkStringList
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
116 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
117 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
118 if(purple_strequal(current, "No Proxy")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
119 position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
120 } else if(purple_strequal(current, "SOCKS4")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
121 position = 1;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
122 } else if(purple_strequal(current, "SOCKS5")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
123 position = 2;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
124 } else if(purple_strequal(current, "TOR")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
125 position = 3;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
126 } else if(purple_strequal(current, "HTTP")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
127 position = 4;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
128 } else if(purple_strequal(current, "Use Environmental Settings")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
129 position = 5;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
130 } else {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
131 return FALSE;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
132 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
133
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
134 g_value_set_uint(value, position);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
135
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
136 return TRUE;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
137 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
138
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
139 static GVariant *
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
140 pidgin_proxy_prefs_set_type_mapping(const GValue *gvalue,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
141 G_GNUC_UNUSED const GVariantType *expected_type,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
142 G_GNUC_UNUSED gpointer data)
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
143 {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
144 guint position = g_value_get_uint(gvalue);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
145
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
146 /* The index of these items is dependent on the order of the GtkStringList
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
147 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
148 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
149 const char *map[] = {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
150 "No Proxy", "SOCKS4", "SOCKS5", "TOR", "HTTP",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
151 "Use Environmental Settings",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
152 };
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
153
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
154 if(position >= G_N_ELEMENTS(map)) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
155 return NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
156 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
157
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
158 return g_variant_new_string(map[position]);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
159 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
160
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
161 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
162 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
163 gchar *path = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
164
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
165 gtk_widget_set_visible(prefs->gnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
166 gtk_widget_set_visible(prefs->nongnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
167
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
168 path = g_find_program_in_path("gnome-network-properties");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
169 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
170 path = g_find_program_in_path("gnome-network-preferences");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
171 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
172 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
173 path = g_find_program_in_path("gnome-control-center");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
174 if (path != NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
175 char *tmp = g_strdup_printf("%s network", path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
176 g_free(path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
177 path = tmp;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
178 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
179 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
180
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
181 prefs->gnome_program_path = path;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
182 gtk_widget_set_visible(prefs->gnome_not_found, path == NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
183 gtk_widget_set_visible(prefs->gnome_program, path != NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
184 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
185
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
186 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
187 pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
188 GSettings *settings = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
189 gpointer settings_backend = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
190
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
191 settings_backend = purple_core_get_settings_backend();
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
192 settings = g_settings_new_with_backend("im.pidgin.Purple.Proxy",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
193 settings_backend);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
194
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
195 gtk_widget_set_visible(prefs->gnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
196 gtk_widget_set_visible(prefs->nongnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
197
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
198 g_settings_bind_with_mapping(settings, "type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
199 prefs->type, "selected",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
200 G_SETTINGS_BIND_DEFAULT,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
201 pidgin_proxy_prefs_get_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
202 pidgin_proxy_prefs_set_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
203 NULL,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
204 NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
205
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
206 g_settings_bind(settings, "host", prefs->host, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
207 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
208 g_settings_bind(settings, "port", prefs->port, "value",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
209 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
210 g_settings_bind(settings, "username", prefs->username, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
211 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
212 g_settings_bind(settings, "password", prefs->password, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
213 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
214
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
215 g_signal_connect_object(settings, "changed::type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
216 G_CALLBACK(pidgin_proxy_prefs_type_changed_cb),
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
217 prefs, 0);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
218
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
219 /* Manually call the callback to set the initial visibility. */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
220 pidgin_proxy_prefs_type_changed_cb(settings, "type", prefs);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
221 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
222
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
223 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
224 * GObject Implementation
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
225 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
226 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
227 pidgin_proxy_prefs_finalize(GObject *obj)
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
228 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
229 PidginProxyPrefs *prefs = PIDGIN_PROXY_PREFS(obj);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
230
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
231 purple_prefs_disconnect_by_handle(obj);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
232
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
233 g_free(prefs->gnome_program_path);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
234
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
235 G_OBJECT_CLASS(pidgin_proxy_prefs_parent_class)->finalize(obj);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
236 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
237
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
238 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
239 pidgin_proxy_prefs_class_init(PidginProxyPrefsClass *klass)
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
240 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
241 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
242 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
243
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
244 obj_class->finalize = pidgin_proxy_prefs_finalize;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
245
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
246 gtk_widget_class_set_template_from_resource(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
247 widget_class,
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
248 "/im/pidgin/Pidgin3/Prefs/proxy.ui"
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
249 );
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
250
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
251 gtk_widget_class_bind_template_child(
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
252 widget_class, PidginProxyPrefs, gnome);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
253 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
254 widget_class, PidginProxyPrefs, gnome_not_found);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
255 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
256 widget_class, PidginProxyPrefs, gnome_program);
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
257
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
258 gtk_widget_class_bind_template_child(
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
259 widget_class, PidginProxyPrefs, nongnome);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
260 gtk_widget_class_bind_template_child(
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
261 widget_class, PidginProxyPrefs, type);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
262 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
263 widget_class, PidginProxyPrefs, options);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
264 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
265 widget_class, PidginProxyPrefs, host);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
266 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
267 widget_class, PidginProxyPrefs, port);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
268 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
269 widget_class, PidginProxyPrefs, username);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
270 gtk_widget_class_bind_template_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
271 widget_class, PidginProxyPrefs, password);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
272 gtk_widget_class_bind_template_callback(widget_class,
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
273 proxy_type_expression_cb);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
274 gtk_widget_class_bind_template_callback(widget_class,
41621
29d99e6066b3 Move proxy preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41612
diff changeset
275 proxy_row_activated_cb);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
276 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
277
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
278 static void
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
279 pidgin_proxy_prefs_init(PidginProxyPrefs *prefs)
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
280 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
281
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
282 gtk_widget_init_template(GTK_WIDGET(prefs));
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
283
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
284 if(purple_running_gnome()) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
285 pidgin_proxy_prefs_init_gnome(prefs);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
286 } else {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
287 pidgin_proxy_prefs_init_non_gnome(prefs);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
288 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
289 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
290
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
291 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
292 * API
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
293 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
294 GtkWidget *
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
295 pidgin_proxy_prefs_new(void) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
296 return g_object_new(PIDGIN_TYPE_PROXY_PREFS, NULL);
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
297 }

mercurial