pidgin/prefs/pidginproxyprefs.c

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

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 29 Oct 2022 01:14:13 -0500
changeset 41859
ed82ab63d15a
parent 41856
3c3901fbe549
child 42575
580339aa47cc
permissions
-rw-r--r--

Convert PidginProxyPrefs to Adwaita 1.2

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

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

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
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
161 static gboolean
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
162 pidgin_proxy_prefs_get_port_mapping(GValue *value, GVariant *variant,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
163 G_GNUC_UNUSED gpointer data)
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
164 {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
165 g_value_take_string(value,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
166 g_strdup_printf("%d", g_variant_get_uint16(variant)));
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
167
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
168 return TRUE;
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
169 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
170
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
171 static GVariant *
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
172 pidgin_proxy_prefs_set_port_mapping(const GValue *value,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
173 G_GNUC_UNUSED const GVariantType *expected_type,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
174 G_GNUC_UNUSED gpointer data)
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
175 {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
176 const char *current = g_value_get_string(value);
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
177
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
178 if(current != NULL) {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
179 return g_variant_new_uint16(atoi(current) & 0xFFFF);
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
180 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
181
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
182 return NULL;
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
183 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
184
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
185 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
186 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
187 gchar *path = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
188
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
189 gtk_widget_set_visible(prefs->gnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
190 gtk_widget_set_visible(prefs->nongnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
191
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
192 path = g_find_program_in_path("gnome-network-properties");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
193 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
194 path = g_find_program_in_path("gnome-network-preferences");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
195 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
196 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
197 path = g_find_program_in_path("gnome-control-center");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
198 if (path != NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
199 char *tmp = g_strdup_printf("%s network", path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
200 g_free(path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
201 path = tmp;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
202 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
203 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
204
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
205 prefs->gnome_program_path = path;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
206 gtk_widget_set_visible(prefs->gnome_not_found, path == NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
207 gtk_widget_set_visible(prefs->gnome_program, path != NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
208 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
209
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
210 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
211 pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
212 GSettings *settings = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
213 gpointer settings_backend = NULL;
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 settings_backend = purple_core_get_settings_backend();
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
216 settings = g_settings_new_with_backend("im.pidgin.Purple.Proxy",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
217 settings_backend);
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 gtk_widget_set_visible(prefs->gnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
220 gtk_widget_set_visible(prefs->nongnome, TRUE);
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 g_settings_bind_with_mapping(settings, "type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
223 prefs->type, "selected",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
224 G_SETTINGS_BIND_DEFAULT,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
225 pidgin_proxy_prefs_get_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
226 pidgin_proxy_prefs_set_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
227 NULL,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
228 NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
229
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
230 g_settings_bind(settings, "host", prefs->host, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
231 G_SETTINGS_BIND_DEFAULT);
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
232 g_settings_bind_with_mapping(settings, "port",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
233 prefs->port, "text",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
234 G_SETTINGS_BIND_DEFAULT,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
235 pidgin_proxy_prefs_get_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
236 pidgin_proxy_prefs_set_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
237 NULL,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
238 NULL);
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
239 g_settings_bind(settings, "username", prefs->username, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
240 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
241 g_settings_bind(settings, "password", prefs->password, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
242 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
243
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
244 g_signal_connect_object(settings, "changed::type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
245 G_CALLBACK(pidgin_proxy_prefs_type_changed_cb),
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
246 prefs, 0);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
247
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
248 /* Manually call the callback to set the initial visibility. */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
249 pidgin_proxy_prefs_type_changed_cb(settings, "type", prefs);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
250 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
251
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
252 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
253 * GObject Implementation
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
254 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
255 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
256 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
257 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
258 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
259
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
260 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
261
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
262 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
263
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
264 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
265 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
266
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
267 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
268 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
269 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
270 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
271 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
272
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
273 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
274
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
275 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
276 widget_class,
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
277 "/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
278 );
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
279
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
280 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
281 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
282 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
283 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
284 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
285 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
286
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
287 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
288 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
289 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
290 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
291 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
292 widget_class, PidginProxyPrefs, options);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
293 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
294 widget_class, PidginProxyPrefs, host);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
295 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
296 widget_class, PidginProxyPrefs, port);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
297 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
298 widget_class, PidginProxyPrefs, username);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
299 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
300 widget_class, PidginProxyPrefs, password);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
301 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
302 proxy_type_expression_cb);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
303 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
304 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
305 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
306
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
307 static void
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
308 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
309 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
310
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
311 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
312
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
313 if(purple_running_gnome()) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
314 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
315 } else {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
316 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
317 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
318 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
319
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
320 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
321 * API
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
322 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
323 GtkWidget *
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
324 pidgin_proxy_prefs_new(void) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
325 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
326 }

mercurial