pidgin/prefs/pidginproxyprefs.c

Tue, 06 Aug 2024 02:07:35 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 06 Aug 2024 02:07:35 -0500
changeset 42837
1f1614e5468b
parent 42830
e68630eb5b85
child 43013
26d30c0db9a5
permissions
-rw-r--r--

Remove the pidgin_text_buffer_api

The purposed for this code is being replaced by the markup api which we haven't
implemented yet, but nothing was using this, so we can remove it.

Testing Done:
Ran the turtles.

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

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
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 41859
diff changeset
51 G_DEFINE_FINAL_TYPE(PidginProxyPrefs, pidgin_proxy_prefs,
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 41859
diff changeset
52 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
53
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
54 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
55 * Helpers
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 *****************************************************************************/
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
57 static gchar *
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
58 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
59 {
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
60 const gchar *text = "";
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
61 const gchar *value = NULL;
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
62
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
63 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
64 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
65 text = _("No proxy");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
66 } 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
67 text = _("SOCKS 4");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
68 } 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
69 text = _("SOCKS 5");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
70 } 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
71 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
72 } 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
73 text = _("HTTP");
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
74 } 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
75 text = _("Use Environmental Settings");
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
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
78 return g_strdup(text);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
79 }
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
80
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81 static void
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
82 pidgin_proxy_prefs_type_changed_cb(GSettings *settings, char *key,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
83 gpointer data)
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
84 {
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
85 PidginProxyPrefs *prefs = data;
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
86 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
87
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
88 gtk_widget_set_visible(prefs->options,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
89 !purple_strequal(current, "No Proxy") &&
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
90 !purple_strequal(current, "Use Environmental Settings"));
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
91
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
92 g_free(current);
41370
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
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
95 static void
41621
29d99e6066b3 Move proxy preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41612
diff changeset
96 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
97 {
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
98 PidginProxyPrefs *prefs = data;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
99 GError *err = NULL;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
100
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
101 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
102 return;
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
42830
e68630eb5b85 Replace purple_notify_* in Pidgin with g_warning
Gary Kramlich <grim@reaperworld.com>
parents: 42575
diff changeset
105 g_warning(_("Cannot start proxy configuration program: %s"), err->message);
e68630eb5b85 Replace purple_notify_* in Pidgin with g_warning
Gary Kramlich <grim@reaperworld.com>
parents: 42575
diff changeset
106
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107 g_error_free(err);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
108 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
109
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
110 static gboolean
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
111 pidgin_proxy_prefs_get_type_mapping(GValue *value, GVariant *variant,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
112 G_GNUC_UNUSED gpointer data)
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
113 {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
114 const char *current = g_variant_get_string(variant, NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
115 guint position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
116
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
117 /* 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
118 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
119 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
120 if(purple_strequal(current, "No Proxy")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
121 position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
122 } else if(purple_strequal(current, "SOCKS4")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
123 position = 1;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
124 } else if(purple_strequal(current, "SOCKS5")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
125 position = 2;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
126 } else if(purple_strequal(current, "TOR")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
127 position = 3;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
128 } else if(purple_strequal(current, "HTTP")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
129 position = 4;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
130 } else if(purple_strequal(current, "Use Environmental Settings")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
131 position = 5;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
132 } else {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
133 return FALSE;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
134 }
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 g_value_set_uint(value, position);
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 return TRUE;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
139 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
140
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
141 static GVariant *
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
142 pidgin_proxy_prefs_set_type_mapping(const GValue *gvalue,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
143 G_GNUC_UNUSED const GVariantType *expected_type,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
144 G_GNUC_UNUSED gpointer data)
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 guint position = g_value_get_uint(gvalue);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
147
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
148 /* 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
149 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
150 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
151 const char *map[] = {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
152 "No Proxy", "SOCKS4", "SOCKS5", "TOR", "HTTP",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
153 "Use Environmental Settings",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
154 };
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
155
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
156 if(position >= G_N_ELEMENTS(map)) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
157 return NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
158 }
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 return g_variant_new_string(map[position]);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
161 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
162
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
163 static gboolean
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
164 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
165 G_GNUC_UNUSED gpointer data)
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
166 {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
167 g_value_take_string(value,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
168 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
169
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
170 return TRUE;
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
171 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
172
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
173 static GVariant *
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
174 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
175 G_GNUC_UNUSED const GVariantType *expected_type,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
176 G_GNUC_UNUSED gpointer data)
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 const char *current = g_value_get_string(value);
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
179
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
180 if(current != NULL) {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
181 return g_variant_new_uint16(atoi(current) & 0xFFFF);
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
182 }
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 return NULL;
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
185 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
186
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
187 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
188 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
189 gchar *path = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
190
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
191 gtk_widget_set_visible(prefs->gnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
192 gtk_widget_set_visible(prefs->nongnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
193
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
194 path = g_find_program_in_path("gnome-network-properties");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
195 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
196 path = g_find_program_in_path("gnome-network-preferences");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
197 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
198 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
199 path = g_find_program_in_path("gnome-control-center");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
200 if (path != NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
201 char *tmp = g_strdup_printf("%s network", path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
202 g_free(path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
203 path = tmp;
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 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
206
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
207 prefs->gnome_program_path = path;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
208 gtk_widget_set_visible(prefs->gnome_not_found, path == NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
209 gtk_widget_set_visible(prefs->gnome_program, path != NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
210 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
211
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
212 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
213 pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
214 GSettings *settings = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
215 gpointer settings_backend = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
216
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
217 settings_backend = purple_core_get_settings_backend();
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
218 settings = g_settings_new_with_backend("im.pidgin.Purple.Proxy",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
219 settings_backend);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
220
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
221 gtk_widget_set_visible(prefs->gnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
222 gtk_widget_set_visible(prefs->nongnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
223
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
224 g_settings_bind_with_mapping(settings, "type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
225 prefs->type, "selected",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
226 G_SETTINGS_BIND_DEFAULT,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
227 pidgin_proxy_prefs_get_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
228 pidgin_proxy_prefs_set_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
229 NULL,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
230 NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
231
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
232 g_settings_bind(settings, "host", prefs->host, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
233 G_SETTINGS_BIND_DEFAULT);
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
234 g_settings_bind_with_mapping(settings, "port",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
235 prefs->port, "text",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
236 G_SETTINGS_BIND_DEFAULT,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
237 pidgin_proxy_prefs_get_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
238 pidgin_proxy_prefs_set_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
239 NULL,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
240 NULL);
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
241 g_settings_bind(settings, "username", prefs->username, "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 g_settings_bind(settings, "password", prefs->password, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
244 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
245
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
246 g_signal_connect_object(settings, "changed::type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
247 G_CALLBACK(pidgin_proxy_prefs_type_changed_cb),
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
248 prefs, 0);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
249
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
250 /* Manually call the callback to set the initial visibility. */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
251 pidgin_proxy_prefs_type_changed_cb(settings, "type", prefs);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
252 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
253
41370
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 * GObject Implementation
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
256 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
257 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
258 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
259 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
260 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
261
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
262 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
263
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
264 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
265
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
266 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
267 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
268
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
269 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
270 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
271 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
272 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
273 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
274
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
275 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
276
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
277 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
278 widget_class,
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
279 "/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
280 );
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
281
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(
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
283 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
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_not_found);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
286 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
287 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
288
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
289 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
290 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
291 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
292 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
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, options);
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, host);
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, port);
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, username);
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_child(
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
302 widget_class, PidginProxyPrefs, password);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
303 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
304 proxy_type_expression_cb);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
305 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
306 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
307 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
308
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
309 static void
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
310 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
311 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
312
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
313 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
314
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
315 if(purple_running_gnome()) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
316 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
317 } else {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
318 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
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
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 * API
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
324 *****************************************************************************/
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
325 GtkWidget *
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
326 pidgin_proxy_prefs_new(void) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
327 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
328 }

mercurial