Sat, 29 Oct 2022 01:14:13 -0500
Convert PidginProxyPrefs to Adwaita 1.2
Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.
Reviewed at https://reviews.imfreedom.org/r/1996/
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
1 | /* |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
4 | * |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
8 | * |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
13 | * |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
18 | * |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
21 | */ |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
22 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
23 | #include <glib/gi18n-lib.h> |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
24 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
25 | #include <purple.h> |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
26 | |
|
41550
a1e1d5c248e4
Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41377
diff
changeset
|
27 | #include <adwaita.h> |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
28 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
29 | #include "pidginproxyprefs.h" |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
30 | #include "pidginprefsinternal.h" |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
31 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
32 | struct _PidginProxyPrefs { |
|
41550
a1e1d5c248e4
Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41377
diff
changeset
|
33 | AdwPreferencesPage parent; |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
34 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
35 | /* GNOME version */ |
|
41612
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
36 | GtkWidget *gnome; |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
37 | GtkWidget *gnome_not_found; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
38 | GtkWidget *gnome_program; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
39 | gchar *gnome_program_path; |
|
41612
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
40 | |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
41 | /* Non-GNOME version */ |
|
41612
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
42 | GtkWidget *nongnome; |
|
41653
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
43 | GtkWidget *type; |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
44 | GtkWidget *options; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
45 | GtkWidget *host; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
46 | GtkWidget *port; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
47 | GtkWidget *username; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
48 | GtkWidget *password; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
49 | }; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
50 | |
|
41550
a1e1d5c248e4
Convert proxy prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41377
diff
changeset
|
51 | G_DEFINE_TYPE(PidginProxyPrefs, pidgin_proxy_prefs, ADW_TYPE_PREFERENCES_PAGE) |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
52 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
53 | /****************************************************************************** |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
54 | * Helpers |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
55 | *****************************************************************************/ |
|
41653
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
56 | static gchar * |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
57 | proxy_type_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data) |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
58 | { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
59 | const gchar *text = ""; |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
60 | const gchar *value = NULL; |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
61 | |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
62 | value = gtk_string_object_get_string(GTK_STRING_OBJECT(self)); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
63 | if(purple_strequal(value, "none")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
64 | text = _("No proxy"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
65 | } else if(purple_strequal(value, "socks4")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
66 | text = _("SOCKS 4"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
67 | } else if(purple_strequal(value, "socks5")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
68 | text = _("SOCKS 5"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
69 | } else if(purple_strequal(value, "tor")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
70 | text = _("Tor/Privacy (SOCKS 5)"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
71 | } else if(purple_strequal(value, "http")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
72 | text = _("HTTP"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
73 | } else if(purple_strequal(value, "envvar")) { |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
74 | text = _("Use Environmental Settings"); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
75 | } |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
76 | |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
77 | return g_strdup(text); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
78 | } |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
79 | |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
80 | static void |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
81 | pidgin_proxy_prefs_type_changed_cb(GSettings *settings, char *key, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
82 | gpointer data) |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
83 | { |
|
41377
89e348e53f71
Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41370
diff
changeset
|
84 | PidginProxyPrefs *prefs = data; |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
85 | char *current = g_settings_get_string(settings, key); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
86 | |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
87 | gtk_widget_set_visible(prefs->options, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
88 | !purple_strequal(current, "No Proxy") && |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
89 | !purple_strequal(current, "Use Environmental Settings")); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
90 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
91 | g_free(current); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
92 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
93 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
94 | static void |
|
41621
29d99e6066b3
Move proxy preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41612
diff
changeset
|
95 | proxy_row_activated_cb(G_GNUC_UNUSED AdwActionRow *row, gpointer data) |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
96 | { |
|
41377
89e348e53f71
Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41370
diff
changeset
|
97 | PidginProxyPrefs *prefs = data; |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
98 | GError *err = NULL; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
99 | |
|
41377
89e348e53f71
Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41370
diff
changeset
|
100 | if (g_spawn_command_line_async(prefs->gnome_program_path, &err)) { |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
101 | return; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
102 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
103 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
104 | purple_notify_error(NULL, NULL, _("Cannot start proxy configuration program."), err->message, NULL); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
105 | g_error_free(err); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
106 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
107 | |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
108 | static gboolean |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
109 | pidgin_proxy_prefs_get_type_mapping(GValue *value, GVariant *variant, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
110 | G_GNUC_UNUSED gpointer data) |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
111 | { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
112 | const char *current = g_variant_get_string(variant, NULL); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
113 | guint position = 0; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
114 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
115 | /* The values for position are dependent on the order of the GtkStringList |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
116 | * in prefs/proxy.ui. |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
117 | */ |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
118 | if(purple_strequal(current, "No Proxy")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
119 | position = 0; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
120 | } else if(purple_strequal(current, "SOCKS4")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
121 | position = 1; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
122 | } else if(purple_strequal(current, "SOCKS5")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
123 | position = 2; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
124 | } else if(purple_strequal(current, "TOR")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
125 | position = 3; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
126 | } else if(purple_strequal(current, "HTTP")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
127 | position = 4; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
128 | } else if(purple_strequal(current, "Use Environmental Settings")) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
129 | position = 5; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
130 | } else { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
131 | return FALSE; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
132 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
133 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
134 | g_value_set_uint(value, position); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
135 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
136 | return TRUE; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
137 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
138 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
139 | static GVariant * |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
140 | pidgin_proxy_prefs_set_type_mapping(const GValue *gvalue, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
141 | G_GNUC_UNUSED const GVariantType *expected_type, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
142 | G_GNUC_UNUSED gpointer data) |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
143 | { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
144 | guint position = g_value_get_uint(gvalue); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
145 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
146 | /* The index of these items is dependent on the order of the GtkStringList |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
147 | * in prefs/proxy.ui. |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
148 | */ |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
149 | const char *map[] = { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
150 | "No Proxy", "SOCKS4", "SOCKS5", "TOR", "HTTP", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
151 | "Use Environmental Settings", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
152 | }; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
153 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
154 | if(position >= G_N_ELEMENTS(map)) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
155 | return NULL; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
156 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
157 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
158 | return g_variant_new_string(map[position]); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
159 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
160 | |
|
41859
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
161 | static gboolean |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
162 | pidgin_proxy_prefs_get_port_mapping(GValue *value, GVariant *variant, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
163 | G_GNUC_UNUSED gpointer data) |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
164 | { |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
165 | g_value_take_string(value, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
166 | g_strdup_printf("%d", g_variant_get_uint16(variant))); |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
167 | |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
168 | return TRUE; |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
169 | } |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
170 | |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
171 | static GVariant * |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
172 | pidgin_proxy_prefs_set_port_mapping(const GValue *value, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
173 | G_GNUC_UNUSED const GVariantType *expected_type, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
174 | G_GNUC_UNUSED gpointer data) |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
175 | { |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
176 | const char *current = g_value_get_string(value); |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
177 | |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
178 | if(current != NULL) { |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
179 | return g_variant_new_uint16(atoi(current) & 0xFFFF); |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
180 | } |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
181 | |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
182 | return NULL; |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
183 | } |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
184 | |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
185 | static void |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
186 | pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
187 | gchar *path = NULL; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
188 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
189 | gtk_widget_set_visible(prefs->gnome, TRUE); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
190 | gtk_widget_set_visible(prefs->nongnome, FALSE); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
191 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
192 | path = g_find_program_in_path("gnome-network-properties"); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
193 | if (path == NULL) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
194 | path = g_find_program_in_path("gnome-network-preferences"); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
195 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
196 | if (path == NULL) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
197 | path = g_find_program_in_path("gnome-control-center"); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
198 | if (path != NULL) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
199 | char *tmp = g_strdup_printf("%s network", path); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
200 | g_free(path); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
201 | path = tmp; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
202 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
203 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
204 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
205 | prefs->gnome_program_path = path; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
206 | gtk_widget_set_visible(prefs->gnome_not_found, path == NULL); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
207 | gtk_widget_set_visible(prefs->gnome_program, path != NULL); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
208 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
209 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
210 | static void |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
211 | pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) { |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
212 | GSettings *settings = NULL; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
213 | gpointer settings_backend = NULL; |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
214 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
215 | settings_backend = purple_core_get_settings_backend(); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
216 | settings = g_settings_new_with_backend("im.pidgin.Purple.Proxy", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
217 | settings_backend); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
218 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
219 | gtk_widget_set_visible(prefs->gnome, FALSE); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
220 | gtk_widget_set_visible(prefs->nongnome, TRUE); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
221 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
222 | g_settings_bind_with_mapping(settings, "type", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
223 | prefs->type, "selected", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
224 | G_SETTINGS_BIND_DEFAULT, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
225 | pidgin_proxy_prefs_get_type_mapping, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
226 | pidgin_proxy_prefs_set_type_mapping, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
227 | NULL, |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
228 | NULL); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
229 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
230 | g_settings_bind(settings, "host", prefs->host, "text", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
231 | G_SETTINGS_BIND_DEFAULT); |
|
41859
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
232 | g_settings_bind_with_mapping(settings, "port", |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
233 | prefs->port, "text", |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
234 | G_SETTINGS_BIND_DEFAULT, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
235 | pidgin_proxy_prefs_get_port_mapping, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
236 | pidgin_proxy_prefs_set_port_mapping, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
237 | NULL, |
|
ed82ab63d15a
Convert PidginProxyPrefs to Adwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents:
41856
diff
changeset
|
238 | NULL); |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
239 | g_settings_bind(settings, "username", prefs->username, "text", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
240 | G_SETTINGS_BIND_DEFAULT); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
241 | g_settings_bind(settings, "password", prefs->password, "text", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
242 | G_SETTINGS_BIND_DEFAULT); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
243 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
244 | g_signal_connect_object(settings, "changed::type", |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
245 | G_CALLBACK(pidgin_proxy_prefs_type_changed_cb), |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
246 | prefs, 0); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
247 | |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
248 | /* Manually call the callback to set the initial visibility. */ |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
249 | pidgin_proxy_prefs_type_changed_cb(settings, "type", prefs); |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
250 | } |
|
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
251 | |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
252 | /****************************************************************************** |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
253 | * GObject Implementation |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
254 | *****************************************************************************/ |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
255 | static void |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
256 | pidgin_proxy_prefs_finalize(GObject *obj) |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
257 | { |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
258 | PidginProxyPrefs *prefs = PIDGIN_PROXY_PREFS(obj); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
259 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
260 | purple_prefs_disconnect_by_handle(obj); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
261 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
262 | g_free(prefs->gnome_program_path); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
263 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
264 | G_OBJECT_CLASS(pidgin_proxy_prefs_parent_class)->finalize(obj); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
265 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
266 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
267 | static void |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
268 | pidgin_proxy_prefs_class_init(PidginProxyPrefsClass *klass) |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
269 | { |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
270 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
271 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
272 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
273 | obj_class->finalize = pidgin_proxy_prefs_finalize; |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
274 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
275 | gtk_widget_class_set_template_from_resource( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
276 | widget_class, |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
277 | "/im/pidgin/Pidgin3/Prefs/proxy.ui" |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
278 | ); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
279 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
280 | gtk_widget_class_bind_template_child( |
|
41612
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
281 | widget_class, PidginProxyPrefs, gnome); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
282 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
283 | widget_class, PidginProxyPrefs, gnome_not_found); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
284 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
285 | widget_class, PidginProxyPrefs, gnome_program); |
|
41612
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
286 | |
|
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
287 | gtk_widget_class_bind_template_child( |
|
cb14d982669a
Remove the stack from the proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41610
diff
changeset
|
288 | widget_class, PidginProxyPrefs, nongnome); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
289 | gtk_widget_class_bind_template_child( |
|
41653
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
290 | widget_class, PidginProxyPrefs, type); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
291 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
292 | widget_class, PidginProxyPrefs, options); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
293 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
294 | widget_class, PidginProxyPrefs, host); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
295 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
296 | widget_class, PidginProxyPrefs, port); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
297 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
298 | widget_class, PidginProxyPrefs, username); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
299 | gtk_widget_class_bind_template_child( |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
300 | widget_class, PidginProxyPrefs, password); |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
301 | gtk_widget_class_bind_template_callback(widget_class, |
|
41653
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
302 | proxy_type_expression_cb); |
|
0a37c380d760
Port proxy type chooser to an AdwComboRow
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41621
diff
changeset
|
303 | gtk_widget_class_bind_template_callback(widget_class, |
|
41621
29d99e6066b3
Move proxy preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41612
diff
changeset
|
304 | proxy_row_activated_cb); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
305 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
306 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
307 | static void |
|
41377
89e348e53f71
Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41370
diff
changeset
|
308 | pidgin_proxy_prefs_init(PidginProxyPrefs *prefs) |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
309 | { |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
310 | |
|
41377
89e348e53f71
Rename page variable to prefs in proxy prefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41370
diff
changeset
|
311 | gtk_widget_init_template(GTK_WIDGET(prefs)); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
312 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
313 | if(purple_running_gnome()) { |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
314 | pidgin_proxy_prefs_init_gnome(prefs); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
315 | } else { |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
316 | pidgin_proxy_prefs_init_non_gnome(prefs); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
317 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
318 | } |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
319 | |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
320 | /****************************************************************************** |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
321 | * API |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
322 | *****************************************************************************/ |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
323 | GtkWidget * |
|
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
324 | pidgin_proxy_prefs_new(void) { |
|
41856
3c3901fbe549
Convert PidginProxyPrefs to GSettings
Gary Kramlich <grim@reaperworld.com>
parents:
41657
diff
changeset
|
325 | return g_object_new(PIDGIN_TYPE_PROXY_PREFS, NULL); |
|
41370
0ae2dfa4a5cf
Split proxy prefs page into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff
changeset
|
326 | } |