pidgin/prefs/pidginproxyprefs.c

Sun, 10 Aug 2025 23:44:08 +0800

author
Gong Zhile <gongzl@stu.hebust.edu.cn>
date
Sun, 10 Aug 2025 23:44:08 +0800
branch
purple_conversation_find_message_by_id
changeset 43309
099e1dfb856b
parent 43253
0cc00d7d6215
permissions
-rw-r--r--

Add Purple.Conversation.find_message_by_id

The method was added so that a protocol or plugin could easily lookup
for the reference for a message. This will be especially useful when a
protocol received a quoted message but only with an id.

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
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31 struct _PidginProxyPrefs {
41550
a1e1d5c248e4 Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41377
diff changeset
32 AdwPreferencesPage parent;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34 /* GNOME version */
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
35 GtkWidget *gnome;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 GtkWidget *gnome_not_found;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 GtkWidget *gnome_program;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 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
39
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 /* Non-GNOME version */
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
41 GtkWidget *nongnome;
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
42 GtkWidget *type;
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 GtkWidget *options;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44 GtkWidget *host;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
45 GtkWidget *port;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46 GtkWidget *username;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 GtkWidget *password;
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 };
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 41859
diff changeset
50 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
51 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
42830
e68630eb5b85 Replace purple_notify_* in Pidgin with g_warning
Gary Kramlich <grim@reaperworld.com>
parents: 42575
diff changeset
104 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
105
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
106 g_error_free(err);
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
107 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
108
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
109 static gboolean
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
110 pidgin_proxy_prefs_get_type_mapping(GValue *value, GVariant *variant,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
111 G_GNUC_UNUSED gpointer data)
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
112 {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
113 const char *current = g_variant_get_string(variant, NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
114 guint position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
115
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
116 /* 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
117 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
118 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
119 if(purple_strequal(current, "No Proxy")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
120 position = 0;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
121 } else if(purple_strequal(current, "SOCKS4")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
122 position = 1;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
123 } else if(purple_strequal(current, "SOCKS5")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
124 position = 2;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
125 } else if(purple_strequal(current, "TOR")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
126 position = 3;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
127 } else if(purple_strequal(current, "HTTP")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
128 position = 4;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
129 } else if(purple_strequal(current, "Use Environmental Settings")) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
130 position = 5;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
131 } else {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
132 return FALSE;
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
135 g_value_set_uint(value, position);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
136
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
137 return TRUE;
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
140 static GVariant *
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
141 pidgin_proxy_prefs_set_type_mapping(const GValue *gvalue,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
142 G_GNUC_UNUSED const GVariantType *expected_type,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
143 G_GNUC_UNUSED gpointer data)
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
144 {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
145 guint position = g_value_get_uint(gvalue);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
146
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
147 /* 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
148 * in prefs/proxy.ui.
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
149 */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
150 const char *map[] = {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
151 "No Proxy", "SOCKS4", "SOCKS5", "TOR", "HTTP",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
152 "Use Environmental Settings",
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
155 if(position >= G_N_ELEMENTS(map)) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
156 return NULL;
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
159 return g_variant_new_string(map[position]);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
160 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
161
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
162 static gboolean
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
163 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
164 G_GNUC_UNUSED gpointer data)
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
165 {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
166 g_value_take_string(value,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
167 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
168
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
169 return TRUE;
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
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
172 static GVariant *
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
173 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
174 G_GNUC_UNUSED const GVariantType *expected_type,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
175 G_GNUC_UNUSED gpointer data)
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
176 {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
177 const char *current = g_value_get_string(value);
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
178
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
179 if(current != NULL) {
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
180 return g_variant_new_uint16(atoi(current) & 0xFFFF);
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
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
183 return NULL;
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
184 }
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
185
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
186 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
187 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
188 gchar *path = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
189
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
190 gtk_widget_set_visible(prefs->gnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
191 gtk_widget_set_visible(prefs->nongnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
192
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
193 path = g_find_program_in_path("gnome-network-properties");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
194 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
195 path = g_find_program_in_path("gnome-network-preferences");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
196 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
197 if (path == NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
198 path = g_find_program_in_path("gnome-control-center");
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
199 if (path != NULL) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
200 char *tmp = g_strdup_printf("%s network", path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
201 g_free(path);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
202 path = tmp;
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
206 prefs->gnome_program_path = path;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
207 gtk_widget_set_visible(prefs->gnome_not_found, path == NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
208 gtk_widget_set_visible(prefs->gnome_program, path != NULL);
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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
211 static void
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
212 pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) {
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
213 GSettings *settings = NULL;
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
214
43253
0cc00d7d6215 Create purple_core_new_settings
Gary Kramlich <grim@reaperworld.com>
parents: 43013
diff changeset
215 settings = purple_core_new_settings("im.pidgin.Purple.Proxy");
41856
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 gtk_widget_set_visible(prefs->gnome, FALSE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
218 gtk_widget_set_visible(prefs->nongnome, TRUE);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
219
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
220 g_settings_bind_with_mapping(settings, "type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
221 prefs->type, "selected",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
222 G_SETTINGS_BIND_DEFAULT,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
223 pidgin_proxy_prefs_get_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
224 pidgin_proxy_prefs_set_type_mapping,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
225 NULL,
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
226 NULL);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
227
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
228 g_settings_bind(settings, "host", prefs->host, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
229 G_SETTINGS_BIND_DEFAULT);
41859
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
230 g_settings_bind_with_mapping(settings, "port",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
231 prefs->port, "text",
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
232 G_SETTINGS_BIND_DEFAULT,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
233 pidgin_proxy_prefs_get_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
234 pidgin_proxy_prefs_set_port_mapping,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
235 NULL,
ed82ab63d15a Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41856
diff changeset
236 NULL);
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
237 g_settings_bind(settings, "username", prefs->username, "text",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
238 G_SETTINGS_BIND_DEFAULT);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
239 g_settings_bind(settings, "password", prefs->password, "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
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
242 g_signal_connect_object(settings, "changed::type",
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
243 G_CALLBACK(pidgin_proxy_prefs_type_changed_cb),
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
244 prefs, 0);
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 /* Manually call the callback to set the initial visibility. */
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
247 pidgin_proxy_prefs_type_changed_cb(settings, "type", prefs);
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
248 }
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
249
41370
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
250 /******************************************************************************
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
251 * GObject Implementation
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 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
254 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
255 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
256 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
257
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
258 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
259
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
260 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
261
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
262 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
263 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
264
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
265 static void
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
266 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
267 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
268 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
269 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
270
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
271 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
272
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
273 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
274 widget_class,
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
275 "/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
276 );
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
277
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
278 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
279 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
280 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
281 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
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_program);
41612
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
284
cb14d982669a Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41610
diff changeset
285 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
286 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
287 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
288 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
289 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
290 widget_class, PidginProxyPrefs, options);
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, host);
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, port);
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, username);
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, password);
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_callback(widget_class,
41653
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
300 proxy_type_expression_cb);
0a37c380d760 Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41621
diff changeset
301 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
302 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
303 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
304
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
305 static void
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
306 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
307 {
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
308
41377
89e348e53f71 Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41370
diff changeset
309 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
310
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
311 if(purple_running_gnome()) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
312 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
313 } else {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
314 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
315 }
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
316 }
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 * API
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 GtkWidget *
0ae2dfa4a5cf Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
322 pidgin_proxy_prefs_new(void) {
41856
3c3901fbe549 Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
323 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
324 }

mercurial