pidgin/prefs/pidginproxyprefs.c

Fri, 10 Mar 2023 01:16:40 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Fri, 10 Mar 2023 01:16:40 -0600
changeset 42135
1a89a067a0d5
parent 41859
ed82ab63d15a
child 42575
580339aa47cc
permissions
-rw-r--r--

Add a PurpleRequestFieldString subclass

This also does an `hg cp`, though with all the renaming of the parameter names, maybe that wasn't as useful for tracking the diff.

Note, I didn't bother re-indenting some of the blocks, because they'll all eventually be moved when everything is subclassed.

Testing Done:
Compiled and opened Request Fields from the Demo protocol.

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

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