Fri, 16 Sep 2022 01:54:11 -0500
Change the credential provider row active indicator to a CheckButton
Because I noticed that Adw has a style that is for this sort of thing.
Testing Done:
Opened Credential prefs, and changed selected provider. Also checked that clicking the check button didn't accidentally change its state without changing the row, and that it could not be selected by keyboard separately from the row.
Reviewed at https://reviews.imfreedom.org/r/1775/
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include <glib/gi18n-lib.h> |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
25 | #include <adwaita.h> |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
26 | |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #include "pidginaccounteditor.h" |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
29 | #include "pidginprotocolchooser.h" |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | struct _PidginAccountEditor { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | GtkDialog parent; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | PurpleAccount *account; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
36 | /* Login Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
37 | GtkWidget *login_options; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
38 | GtkWidget *protocol; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
39 | GtkWidget *username; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
40 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
41 | GList *user_split_entries; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
42 | GList *user_split_rows; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
43 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
44 | /* User Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
45 | GtkWidget *alias; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
46 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
47 | GtkFileChooserNative *avatar_dialog; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
48 | GdkPixbuf *avatar_pixbuf; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
49 | GtkWidget *avatar_row; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
50 | GtkWidget *use_custom_avatar; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
51 | GtkWidget *avatar; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
52 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
53 | /* Advanced Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
54 | GtkWidget *advanced_group; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
55 | GtkWidget *advanced_toggle; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
56 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
57 | GList *advanced_entries; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
58 | GList *advanced_rows; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
59 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
60 | /* Proxy Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
61 | GtkWidget *proxy_type; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | GtkWidget *proxy_options; |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
63 | GtkWidget *proxy_host; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
64 | GtkWidget *proxy_port; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
65 | GtkWidget *proxy_username; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
66 | GtkWidget *proxy_password; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | }; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | enum { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | PROP_0, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | PROP_ACCOUNT, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | N_PROPERTIES, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | }; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 | static GParamSpec *properties[N_PROPERTIES] = {NULL, }; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
76 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
77 | /****************************************************************************** |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
78 | * Prototypes |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
79 | *****************************************************************************/ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
80 | static void pidgin_account_editor_connection_changed_cb(GObject *obj, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
81 | GParamSpec *pspec, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
82 | gpointer data); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
83 | |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | /****************************************************************************** |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | * Helpers |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | *****************************************************************************/ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | static void |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
88 | pidgin_account_editor_add_user_split(gpointer data, gpointer user_data) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
89 | PurpleAccountUserSplit *split = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
90 | PidginAccountEditor *editor = user_data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
91 | GtkWidget *entry = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
92 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
93 | if(!purple_account_user_split_is_constant(split)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
94 | GtkWidget *row = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
95 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
96 | row = adw_action_row_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
97 | editor->user_split_rows = g_list_append(editor->user_split_rows, row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
98 | adw_preferences_group_add(ADW_PREFERENCES_GROUP(editor->login_options), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
99 | row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
100 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
101 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
102 | purple_account_user_split_get_text(split)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
103 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
104 | entry = gtk_entry_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
105 | gtk_widget_set_hexpand(entry, TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
106 | gtk_widget_set_valign(entry, GTK_ALIGN_CENTER); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
107 | adw_action_row_add_suffix(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
108 | adw_action_row_set_activatable_widget(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
109 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
110 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
111 | editor->user_split_entries = g_list_append(editor->user_split_entries, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
112 | entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
113 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
114 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
115 | static gboolean |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
116 | pidgin_account_editor_update_login_options(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
117 | PurpleProtocol *protocol) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
118 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
119 | GList *user_splits = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
120 | GList *split_item = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
121 | GList *entry_item = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
122 | gchar *username = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
123 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
124 | /* Clear out the old user splits from our list. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
125 | g_clear_pointer(&editor->user_split_entries, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
126 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
127 | /* Now remove the rows we added to the preference group for each non |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
128 | * constant user split. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
129 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
130 | while(editor->user_split_rows != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
131 | adw_preferences_group_remove(ADW_PREFERENCES_GROUP(editor->login_options), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
132 | editor->user_split_rows->data); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
133 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
134 | editor->user_split_rows = g_list_delete_link(editor->user_split_rows, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
135 | editor->user_split_rows); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
136 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
137 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
138 | /* Add the user splits for the protocol. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
139 | user_splits = purple_protocol_get_user_splits(protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
140 | g_list_foreach(user_splits, pidgin_account_editor_add_user_split, editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
141 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
142 | /* If we have an account, populate its values. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
143 | if(PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
144 | /* The username will be split apart below and eventually set as the text |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
145 | * in the username entry. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
146 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
147 | username = g_strdup(purple_account_get_username(editor->account)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
148 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
149 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
150 | /* Filling out the user splits is a pain. If we have an account, we created |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
151 | * a copy of the username above. We then iterate the user splits backwards |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
152 | * so we can insert a null terminator at the start of each split we find in |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
153 | * the username. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
154 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
155 | split_item = g_list_last(user_splits); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
156 | entry_item = g_list_last(editor->user_split_entries); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
157 | while(split_item != NULL && entry_item != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
158 | GtkWidget *entry = entry_item->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
159 | PurpleAccountUserSplit *split = split_item->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
160 | gchar *ptr = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
161 | const gchar *value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
162 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
163 | if(username != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
164 | gchar sep = purple_account_user_split_get_separator(split); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
165 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
166 | if(purple_account_user_split_get_reverse(split)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
167 | ptr = strrchr(username, sep); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
168 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
169 | ptr = strchr(username, sep); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
170 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
171 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
172 | if(ptr != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
173 | /* Insert a null terminator in place of the separator. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
174 | *ptr = '\0'; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
175 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
176 | /* Set the value to the first byte after the separator. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
177 | value = ptr + 1; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
178 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
179 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
180 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
181 | if(value == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
182 | value = purple_account_user_split_get_default_value(split); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
183 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
184 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
185 | if(value != NULL && GTK_IS_ENTRY(entry)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
186 | gtk_editable_set_text(GTK_EDITABLE(entry), value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
187 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
188 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
189 | split_item = split_item->prev; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
190 | entry_item = entry_item->prev; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
191 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
192 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
193 | /* Free the user splits. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
194 | g_list_free_full(user_splits, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
195 | (GDestroyNotify)purple_account_user_split_destroy); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
196 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
197 | /* Set the username entry to the remaining text in username and free our |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
198 | * copy of said username. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
199 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
200 | if(username != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
201 | gtk_editable_set_text(GTK_EDITABLE(editor->username), username); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
202 | g_free(username); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
203 | return TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
204 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
205 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
206 | return FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
207 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
208 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
209 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
210 | pidgin_account_editor_update_user_options(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
211 | PurpleProtocol *protocol) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
212 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
213 | PurpleBuddyIconSpec *icon_spec = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
214 | PurpleImage *image = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
215 | gboolean show_avatar_opts = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
216 | const gchar *svalue = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
217 | gboolean use_global = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
218 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
219 | /* Check if the protocol supports avatars. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
220 | icon_spec = purple_protocol_get_icon_spec(protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
221 | show_avatar_opts = (icon_spec != NULL && icon_spec->format != NULL); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
222 | purple_buddy_icon_spec_free(icon_spec); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
223 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
224 | gtk_widget_set_visible(editor->avatar_row, show_avatar_opts); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
225 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
226 | /* Determine our values. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
227 | if(editor->account != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
228 | svalue = purple_account_get_private_alias(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
229 | image = purple_buddy_icons_find_account_icon(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
230 | use_global = purple_account_get_bool(editor->account, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
231 | "use-global-buddyicon", TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
232 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
233 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
234 | if(svalue == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
235 | svalue = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
236 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
237 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
238 | gtk_editable_set_text(GTK_EDITABLE(editor->alias), svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
239 | gtk_switch_set_active(GTK_SWITCH(editor->use_custom_avatar), !use_global); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
240 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
241 | g_clear_object(&editor->avatar_pixbuf); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
242 | if(PURPLE_IS_IMAGE(image)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
243 | editor->avatar_pixbuf = purple_gdk_pixbuf_from_image(image); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
244 | gtk_image_set_from_pixbuf(GTK_IMAGE(editor->avatar), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
245 | editor->avatar_pixbuf); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
246 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
247 | gtk_image_set_from_icon_name(GTK_IMAGE(editor->avatar), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
248 | "select-avatar"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
249 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
250 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
251 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
252 | static gboolean |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
253 | pidgin_account_editor_advanced_option_use_default(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
254 | PurpleProtocol *protocol = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
255 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
256 | /* If this is the new dialog, use the default value. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
257 | if(!PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
258 | return TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
259 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
260 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
261 | /* If we have an existing account, check if the protocol has changed. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
262 | protocol = pidgin_protocol_chooser_get_protocol(PIDGIN_PROTOCOL_CHOOSER(editor->protocol)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
263 | if(protocol != purple_account_get_protocol(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
264 | return TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
265 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
266 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
267 | return FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
268 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
269 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
270 | static GtkWidget * |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
271 | pidgin_account_editor_add_advanced_boolean(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
272 | PurpleAccountOption *option) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
273 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
274 | GtkWidget *row = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
275 | GtkWidget *toggle = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
276 | gboolean value = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
277 | gchar *title = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
278 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
279 | if(pidgin_account_editor_advanced_option_use_default(editor)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
280 | value = purple_account_option_get_default_bool(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
281 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
282 | const gchar *setting = purple_account_option_get_setting(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
283 | gboolean def_value = purple_account_option_get_default_bool(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
284 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
285 | value = purple_account_get_bool(editor->account, setting, def_value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
286 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
287 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
288 | /* Create the row and set its title with a mnemonic. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
289 | row = adw_action_row_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
290 | g_object_bind_property(editor->advanced_toggle, "active", row, "visible", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
291 | G_BINDING_SYNC_CREATE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
292 | adw_preferences_row_set_use_underline(ADW_PREFERENCES_ROW(row), TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
293 | title = g_strdup_printf("_%s", purple_account_option_get_text(option)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
294 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
295 | g_free(title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
296 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
297 | adw_preferences_group_add(ADW_PREFERENCES_GROUP(editor->advanced_group), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
298 | row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
299 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
300 | /* Add the row to the editor's list of advanced rows. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
301 | editor->advanced_rows = g_list_append(editor->advanced_rows, row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
302 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
303 | /* Create the input widget. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
304 | toggle = gtk_switch_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
305 | gtk_switch_set_active(GTK_SWITCH(toggle), value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
306 | gtk_widget_set_valign(toggle, GTK_ALIGN_CENTER); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
307 | adw_action_row_add_suffix(ADW_ACTION_ROW(row), toggle); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
308 | adw_action_row_set_activatable_widget(ADW_ACTION_ROW(row), toggle); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
309 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
310 | return toggle; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
311 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
312 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
313 | static GtkWidget * |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
314 | pidgin_account_editor_add_advanced_int(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
315 | PurpleAccountOption *option) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
316 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
317 | GtkWidget *row = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
318 | GtkWidget *entry = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
319 | gint value = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
320 | gchar *title = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
321 | gchar *svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
322 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
323 | if(pidgin_account_editor_advanced_option_use_default(editor)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
324 | value = purple_account_option_get_default_int(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
325 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
326 | const gchar *setting = purple_account_option_get_setting(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
327 | gint def_value = purple_account_option_get_default_int(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
328 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
329 | value = purple_account_get_int(editor->account, setting, def_value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
330 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
331 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
332 | /* Create the row and set its title with a mnemonic. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
333 | row = adw_action_row_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
334 | g_object_bind_property(editor->advanced_toggle, "active", row, "visible", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
335 | G_BINDING_SYNC_CREATE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
336 | adw_preferences_row_set_use_underline(ADW_PREFERENCES_ROW(row), TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
337 | title = g_strdup_printf("_%s", purple_account_option_get_text(option)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
338 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
339 | g_free(title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
340 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
341 | adw_preferences_group_add(ADW_PREFERENCES_GROUP(editor->advanced_group), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
342 | row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
343 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
344 | /* Add the row to the editor's list of advanced rows. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
345 | editor->advanced_rows = g_list_append(editor->advanced_rows, row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
346 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
347 | /* Create the input widget. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
348 | entry = gtk_entry_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
349 | gtk_entry_set_input_purpose(GTK_ENTRY(entry), GTK_INPUT_PURPOSE_DIGITS); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
350 | svalue = g_strdup_printf("%d", value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
351 | gtk_editable_set_text(GTK_EDITABLE(entry), svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
352 | g_free(svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
353 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
354 | gtk_widget_set_hexpand(entry, TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
355 | gtk_widget_set_valign(entry, GTK_ALIGN_CENTER); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
356 | adw_action_row_add_suffix(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
357 | adw_action_row_set_activatable_widget(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
358 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
359 | return entry; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
360 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
361 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
362 | static GtkWidget * |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
363 | pidgin_account_editor_add_advanced_string(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
364 | PurpleAccountOption *option) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
365 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
366 | GtkWidget *row = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
367 | GtkWidget *entry = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
368 | gchar *title = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
369 | const gchar *value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
370 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
371 | if(pidgin_account_editor_advanced_option_use_default(editor)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
372 | value = purple_account_option_get_default_string(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
373 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
374 | const gchar *setting = purple_account_option_get_setting(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
375 | const gchar *def_value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
376 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
377 | def_value = purple_account_option_get_default_string(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
378 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
379 | value = purple_account_get_string(editor->account, setting, def_value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
380 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
381 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
382 | /* Create the row and set its title with a mnemonic. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
383 | row = adw_action_row_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
384 | g_object_bind_property(editor->advanced_toggle, "active", row, "visible", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
385 | G_BINDING_SYNC_CREATE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
386 | adw_preferences_row_set_use_underline(ADW_PREFERENCES_ROW(row), TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
387 | title = g_strdup_printf("_%s", purple_account_option_get_text(option)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
388 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
389 | g_free(title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
390 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
391 | adw_preferences_group_add(ADW_PREFERENCES_GROUP(editor->advanced_group), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
392 | row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
393 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
394 | /* Add the row to the editor's list of advanced rows. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
395 | editor->advanced_rows = g_list_append(editor->advanced_rows, row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
396 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
397 | /* Create the input widget. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
398 | if(purple_account_option_string_get_masked(option)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
399 | entry = gtk_password_entry_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
400 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
401 | entry = gtk_entry_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
402 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
403 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
404 | if(value != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
405 | gtk_editable_set_text(GTK_EDITABLE(entry), value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
406 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
407 | gtk_widget_set_hexpand(entry, TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
408 | gtk_widget_set_valign(entry, GTK_ALIGN_CENTER); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
409 | adw_action_row_add_suffix(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
410 | adw_action_row_set_activatable_widget(ADW_ACTION_ROW(row), entry); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
411 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
412 | return entry; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
413 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
414 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
415 | static GtkWidget * |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
416 | pidgin_account_editor_add_advanced_list(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
417 | PurpleAccountOption *option) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
418 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
419 | GtkWidget *row = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
420 | GtkStringList *model = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
421 | GList *data = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
422 | GList *items = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
423 | gchar *title = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
424 | const gchar *value = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
425 | guint index = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
426 | guint position = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
427 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
428 | if(pidgin_account_editor_advanced_option_use_default(editor)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
429 | value = purple_account_option_get_default_list_value(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
430 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
431 | const gchar *setting = purple_account_option_get_setting(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
432 | const gchar *def_value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
433 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
434 | def_value = purple_account_option_get_default_list_value(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
435 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
436 | value = purple_account_get_string(editor->account, setting, def_value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
437 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
438 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
439 | /* Create the row and set its title with a mnemonic. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
440 | row = adw_combo_row_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
441 | g_object_bind_property(editor->advanced_toggle, "active", row, "visible", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
442 | G_BINDING_SYNC_CREATE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
443 | adw_preferences_row_set_use_underline(ADW_PREFERENCES_ROW(row), TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
444 | adw_combo_row_set_use_subtitle(ADW_COMBO_ROW(row), TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
445 | title = g_strdup_printf("_%s", purple_account_option_get_text(option)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
446 | adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
447 | g_free(title); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
448 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
449 | adw_preferences_group_add(ADW_PREFERENCES_GROUP(editor->advanced_group), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
450 | row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
451 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
452 | /* Add the row to the editor's list of advanced rows. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
453 | editor->advanced_rows = g_list_append(editor->advanced_rows, row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
454 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
455 | /* Create the model and data for the expression. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
456 | items = purple_account_option_get_list(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
457 | model = gtk_string_list_new(NULL); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
458 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
459 | for(GList *l = items; l != NULL; l = l->next) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
460 | PurpleKeyValuePair *kvp = l->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
461 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
462 | if(kvp != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
463 | if(purple_strequal(kvp->value, value)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
464 | position = index; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
465 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
466 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
467 | data = g_list_append(data, kvp->value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
468 | gtk_string_list_append(model, kvp->key); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
469 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
470 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
471 | index++; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
472 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
473 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
474 | adw_combo_row_set_model(ADW_COMBO_ROW(row), G_LIST_MODEL(model)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
475 | adw_combo_row_set_selected(ADW_COMBO_ROW(row), position); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
476 | g_object_set_data_full(G_OBJECT(row), "keys", data, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
477 | (GDestroyNotify)g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
478 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
479 | return row; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
480 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
481 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
482 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
483 | pidgin_account_editor_add_advanced_option(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
484 | PurpleAccountOption *option) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
485 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
486 | PurplePrefType type; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
487 | GtkWidget *widget = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
488 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
489 | type = purple_account_option_get_pref_type(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
490 | switch(type) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
491 | case PURPLE_PREF_BOOLEAN: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
492 | widget = pidgin_account_editor_add_advanced_boolean(editor, option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
493 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
494 | case PURPLE_PREF_INT: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
495 | widget = pidgin_account_editor_add_advanced_int(editor, option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
496 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
497 | case PURPLE_PREF_STRING: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
498 | widget = pidgin_account_editor_add_advanced_string(editor, option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
499 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
500 | case PURPLE_PREF_STRING_LIST: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
501 | widget = pidgin_account_editor_add_advanced_list(editor, option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
502 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
503 | default: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
504 | purple_debug_error("PidginAccountEditor", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
505 | "Invalid Account Option pref type (%d)", type); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
506 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
507 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
508 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
509 | if(GTK_IS_WIDGET(widget)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
510 | g_object_set_data_full(G_OBJECT(widget), "option", option, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
511 | (GDestroyNotify)purple_account_option_destroy); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
512 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
513 | editor->advanced_entries = g_list_append(editor->advanced_entries, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
514 | widget); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
515 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
516 | purple_account_option_destroy(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
517 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
518 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
519 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
520 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
521 | pidgin_account_editor_update_advanced_options(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
522 | PurpleProtocol *protocol) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
523 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
524 | GList *options = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
525 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
526 | g_clear_pointer(&editor->advanced_entries, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
527 | while(editor->advanced_rows != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
528 | adw_preferences_group_remove(ADW_PREFERENCES_GROUP(editor->advanced_group), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
529 | GTK_WIDGET(editor->advanced_rows->data)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
530 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
531 | editor->advanced_rows = g_list_delete_link(editor->advanced_rows, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
532 | editor->advanced_rows); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
533 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
534 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
535 | if(!PURPLE_IS_PROTOCOL(protocol)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
536 | gtk_widget_set_visible(editor->advanced_group, FALSE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
537 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
538 | return; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
539 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
540 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
541 | options = purple_protocol_get_account_options(protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
542 | if(options == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
543 | gtk_widget_set_visible(editor->advanced_group, FALSE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
544 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
545 | return; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
546 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
547 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
548 | /* Iterate the options and call our helper which will take ownership of the |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
549 | * option itself, but we'll delete the list item as we go. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
550 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
551 | while(options != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
552 | pidgin_account_editor_add_advanced_option(editor, options->data); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
553 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
554 | options = g_list_delete_link(options, options); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
555 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
556 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
557 | gtk_widget_set_visible(editor->advanced_group, TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
558 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
559 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
560 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
561 | pidgin_account_editor_update_proxy_options(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
562 | PurpleProxyInfo *info = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
563 | GListModel *model = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
564 | const gchar *svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
565 | gint ivalue = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
566 | guint position = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
567 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
568 | if(!PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
569 | return; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
570 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
571 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
572 | info = purple_account_get_proxy_info(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
573 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
574 | switch(purple_proxy_info_get_proxy_type(info)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
575 | case PURPLE_PROXY_TYPE_USE_GLOBAL: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
576 | svalue = "global"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
577 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
578 | case PURPLE_PROXY_TYPE_NONE: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
579 | svalue = "none"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
580 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
581 | case PURPLE_PROXY_TYPE_SOCKS4: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
582 | svalue = "socks4"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
583 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
584 | case PURPLE_PROXY_TYPE_SOCKS5: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
585 | svalue = "socks5"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
586 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
587 | case PURPLE_PROXY_TYPE_TOR: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
588 | svalue = "tor"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
589 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
590 | case PURPLE_PROXY_TYPE_HTTP: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
591 | svalue = "http"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
592 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
593 | case PURPLE_PROXY_TYPE_USE_ENVVAR: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
594 | svalue = "envvar"; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
595 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
596 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
597 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
598 | model = adw_combo_row_get_model(ADW_COMBO_ROW(editor->proxy_type)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
599 | for(guint i = 0; i < g_list_model_get_n_items(model); i++) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
600 | GtkStringObject *obj = g_list_model_get_item(model, i); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
601 | if(purple_strequal(svalue, gtk_string_object_get_string(obj))) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
602 | position = i; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
603 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
604 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
605 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
606 | adw_combo_row_set_selected(ADW_COMBO_ROW(editor->proxy_type), position); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
607 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
608 | svalue = purple_proxy_info_get_hostname(info); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
609 | if(svalue == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
610 | svalue = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
611 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
612 | gtk_editable_set_text(GTK_EDITABLE(editor->proxy_host), svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
613 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
614 | ivalue = purple_proxy_info_get_port(info); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
615 | gtk_spin_button_set_value(GTK_SPIN_BUTTON(editor->proxy_port), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
616 | (gdouble)ivalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
617 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
618 | svalue = purple_proxy_info_get_username(info); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
619 | if(svalue == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
620 | svalue = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
621 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
622 | gtk_editable_set_text(GTK_EDITABLE(editor->proxy_username), svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
623 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
624 | svalue = purple_proxy_info_get_password(info); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
625 | if(svalue == NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
626 | svalue = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
627 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
628 | gtk_editable_set_text(GTK_EDITABLE(editor->proxy_password), svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
629 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
630 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
631 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
632 | pidgin_account_editor_update(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
633 | PurpleProtocol *protocol = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
634 | gboolean sensitive = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
635 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
636 | if(PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
637 | PurpleConnection *connection = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
638 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
639 | connection = purple_account_get_connection(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
640 | if(PURPLE_IS_CONNECTION(connection)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
641 | gtk_widget_set_sensitive(editor->protocol, FALSE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
642 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
643 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
644 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
645 | protocol = pidgin_protocol_chooser_get_protocol(PIDGIN_PROTOCOL_CHOOSER(editor->protocol)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
646 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
647 | sensitive = pidgin_account_editor_update_login_options(editor, protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
648 | pidgin_account_editor_update_user_options(editor, protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
649 | pidgin_account_editor_update_advanced_options(editor, protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
650 | pidgin_account_editor_update_proxy_options(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
651 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
652 | gtk_dialog_set_response_sensitive(GTK_DIALOG(editor), GTK_RESPONSE_APPLY, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
653 | sensitive); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
654 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
655 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
656 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
657 | pidgin_account_editor_login_options_update_editable(PidginAccountEditor *editor) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
658 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
659 | PurpleConnection *connection = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
660 | gboolean editable = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
661 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
662 | if(PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
663 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
664 | connection = purple_account_get_connection(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
665 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
666 | /* If we have an active connection, we need to disable everything |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
667 | * related to the protocol and username. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
668 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
669 | if(PURPLE_IS_CONNECTION(connection)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
670 | PidginProtocolChooser *chooser = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
671 | PurpleProtocol *connected_protocol = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
672 | PurpleProtocol *selected_protocol = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
673 | editable = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
674 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
675 | /* Check if the user changed the protocol. If they did, switch it |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
676 | * back and update the editor to reflect what settings are active. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
677 | */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
678 | connected_protocol = purple_connection_get_protocol(connection); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
679 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
680 | chooser = PIDGIN_PROTOCOL_CHOOSER(editor->protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
681 | selected_protocol = pidgin_protocol_chooser_get_protocol(chooser); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
682 | if(connected_protocol != selected_protocol) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
683 | pidgin_protocol_chooser_set_protocol(chooser, connected_protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
684 | pidgin_account_editor_update(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
685 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
686 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
687 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
688 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
689 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
690 | gtk_widget_set_sensitive(editor->protocol, editable); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
691 | gtk_editable_set_editable(GTK_EDITABLE(editor->username), editable); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
692 | for(GList *l = editor->user_split_entries; l != NULL; l = l->next) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
693 | GtkWidget *widget = l->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
694 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
695 | gtk_editable_set_editable(GTK_EDITABLE(widget), editable); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
696 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
697 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
698 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
699 | static void |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
700 | pidgin_account_editor_set_account(PidginAccountEditor *editor, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
701 | PurpleAccount *account) |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
702 | { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
703 | if(g_set_object(&editor->account, account)) { |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
704 | if(PURPLE_IS_ACCOUNT(account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
705 | g_signal_connect(account, "notify::connection", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
706 | G_CALLBACK(pidgin_account_editor_connection_changed_cb), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
707 | editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
708 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
709 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
710 | g_object_notify_by_pspec(G_OBJECT(editor), properties[PROP_ACCOUNT]); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
711 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
712 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
713 | pidgin_account_editor_update(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
714 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
715 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
716 | static gboolean |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
717 | pidgin_account_editor_save_login_options(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
718 | PurpleProtocol *protocol = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
719 | GList *split_item = NULL, *entry_item = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
720 | GString *username = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
721 | const gchar *protocol_id = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
722 | gboolean new_account = FALSE; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
723 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
724 | protocol = pidgin_protocol_chooser_get_protocol(PIDGIN_PROTOCOL_CHOOSER(editor->protocol)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
725 | protocol_id = purple_protocol_get_id(protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
726 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
727 | username = g_string_new(gtk_editable_get_text(GTK_EDITABLE(editor->username))); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
728 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
729 | split_item = purple_protocol_get_user_splits(protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
730 | entry_item = editor->user_split_entries; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
731 | while(split_item != NULL && entry_item != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
732 | PurpleAccountUserSplit *split = split_item->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
733 | GtkEntry *entry = entry_item->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
734 | const gchar *value = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
735 | gchar sep = '\0'; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
736 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
737 | sep = purple_account_user_split_get_separator(split); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
738 | g_string_append_c(username, sep); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
739 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
740 | if(GTK_IS_ENTRY(entry)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
741 | value = gtk_editable_get_text(GTK_EDITABLE(entry)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
742 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
743 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
744 | if(value == NULL || *value == '\0') { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
745 | value = purple_account_user_split_get_default_value(split); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
746 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
747 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
748 | g_string_append(username, value); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
749 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
750 | split_item = split_item->next; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
751 | entry_item = entry_item->next; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
752 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
753 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
754 | if(!PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
755 | editor->account = purple_account_new(username->str, protocol_id); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
756 | new_account = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
757 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
758 | purple_account_set_username(editor->account, username->str); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
759 | purple_account_set_protocol_id(editor->account, protocol_id); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
760 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
761 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
762 | g_string_free(username, TRUE); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
763 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
764 | return new_account; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
765 | } |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
766 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
767 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
768 | pidgin_account_editor_save_user_options(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
769 | const gchar *svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
770 | gboolean bvalue = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
771 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
772 | /* Set the alias. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
773 | svalue = gtk_editable_get_text(GTK_EDITABLE(editor->alias)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
774 | if(*svalue == '\0') { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
775 | svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
776 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
777 | purple_account_set_private_alias(editor->account, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
778 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
779 | /* Set whether or not to use the global avatar. */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
780 | bvalue = gtk_switch_get_active(GTK_SWITCH(editor->use_custom_avatar)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
781 | purple_account_set_bool(editor->account, "use-global-buddyicon", !bvalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
782 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
783 | if(bvalue) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
784 | if(GDK_IS_PIXBUF(editor->avatar_pixbuf)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
785 | # warning implement this when buddy icons do not suck so bad. |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
786 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
787 | purple_buddy_icons_set_account_icon(editor->account, NULL, 0); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
788 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
789 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
790 | # warning set the global buddy icon when buddy icons do not suck so bad. |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
791 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
792 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
793 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
794 | static void |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
795 | pidgin_account_editor_save_advanced_options(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
796 | for(GList *l = editor->advanced_entries; l != NULL; l = l->next) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
797 | GtkWidget *widget = l->data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
798 | PurpleAccountOption *option = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
799 | GList *keys = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
800 | const gchar *setting = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
801 | const gchar *svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
802 | gboolean bvalue = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
803 | gint ivalue = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
804 | guint selected = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
805 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
806 | option = g_object_get_data(G_OBJECT(widget), "option"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
807 | setting = purple_account_option_get_setting(option); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
808 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
809 | switch(purple_account_option_get_pref_type(option)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
810 | case PURPLE_PREF_STRING: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
811 | svalue = gtk_editable_get_text(GTK_EDITABLE(widget)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
812 | purple_account_set_string(editor->account, setting, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
813 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
814 | case PURPLE_PREF_INT: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
815 | svalue = gtk_editable_get_text(GTK_EDITABLE(widget)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
816 | ivalue = atoi(svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
817 | purple_account_set_int(editor->account, setting, ivalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
818 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
819 | case PURPLE_PREF_BOOLEAN: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
820 | bvalue = gtk_switch_get_active(GTK_SWITCH(widget)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
821 | purple_account_set_bool(editor->account, setting, bvalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
822 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
823 | case PURPLE_PREF_STRING_LIST: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
824 | keys = g_object_get_data(G_OBJECT(widget), "keys"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
825 | selected = adw_combo_row_get_selected(ADW_COMBO_ROW(widget)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
826 | svalue = g_list_nth_data(keys, selected); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
827 | purple_account_set_string(editor->account, setting, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
828 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
829 | default: |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
830 | break; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
831 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
832 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
833 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
834 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
835 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
836 | pidgin_account_editor_save_proxy(PidginAccountEditor *editor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
837 | gboolean new_account) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
838 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
839 | PurpleProxyInfo *info = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
840 | PurpleProxyType type = PURPLE_PROXY_TYPE_NONE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
841 | GObject *item = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
842 | const gchar *svalue = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
843 | gint ivalue = 0; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
844 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
845 | /* Build the ProxyInfo object */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
846 | if(new_account) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
847 | info = purple_proxy_info_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
848 | purple_account_set_proxy_info(editor->account, info); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
849 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
850 | info = purple_account_get_proxy_info(editor->account); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
851 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
852 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
853 | item = adw_combo_row_get_selected_item(ADW_COMBO_ROW(editor->proxy_type)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
854 | svalue = gtk_string_object_get_string(GTK_STRING_OBJECT(item)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
855 | if(purple_strequal(svalue, "global")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
856 | type = PURPLE_PROXY_TYPE_USE_GLOBAL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
857 | } else if(purple_strequal(svalue, "none")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
858 | type = PURPLE_PROXY_TYPE_NONE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
859 | } else if(purple_strequal(svalue, "socks4")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
860 | type = PURPLE_PROXY_TYPE_SOCKS4; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
861 | } else if(purple_strequal(svalue, "socks5")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
862 | type = PURPLE_PROXY_TYPE_SOCKS5; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
863 | } else if(purple_strequal(svalue, "tor")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
864 | type = PURPLE_PROXY_TYPE_TOR; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
865 | } else if(purple_strequal(svalue, "http")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
866 | type = PURPLE_PROXY_TYPE_HTTP; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
867 | } else if(purple_strequal(svalue, "envvar")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
868 | type = PURPLE_PROXY_TYPE_USE_ENVVAR; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
869 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
870 | purple_proxy_info_set_proxy_type(info, type); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
871 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
872 | svalue = gtk_editable_get_text(GTK_EDITABLE(editor->proxy_host)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
873 | purple_proxy_info_set_hostname(info, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
874 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
875 | ivalue = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(editor->proxy_port)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
876 | purple_proxy_info_set_port(info, ivalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
877 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
878 | svalue = gtk_editable_get_text(GTK_EDITABLE(editor->proxy_username)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
879 | purple_proxy_info_set_username(info, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
880 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
881 | svalue = gtk_editable_get_text(GTK_EDITABLE(editor->proxy_password)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
882 | purple_proxy_info_set_password(info, svalue); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
883 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
884 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
885 | static void |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
886 | pidgin_account_editor_save_account(PidginAccountEditor *editor) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
887 | gboolean new_account = FALSE; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
888 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
889 | new_account = pidgin_account_editor_save_login_options(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
890 | pidgin_account_editor_save_user_options(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
891 | pidgin_account_editor_save_advanced_options(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
892 | pidgin_account_editor_save_proxy(editor, new_account); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
893 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
894 | /* If this is a new account, add it to the account manager and bring it |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
895 | * online. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
896 | */ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
897 | if(new_account) { |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
898 | PurpleAccountManager *manager = NULL; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
899 | const PurpleSavedStatus *saved_status; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
900 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
901 | manager = purple_account_manager_get_default(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
902 | |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
903 | purple_account_manager_add(manager, editor->account); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
904 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
905 | saved_status = purple_savedstatus_get_current(); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
906 | if (saved_status != NULL) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
907 | purple_savedstatus_activate_for_account(saved_status, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
908 | editor->account); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
909 | purple_account_set_enabled(editor->account, TRUE); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
910 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
911 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
912 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
913 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
914 | /****************************************************************************** |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
915 | * Callbacks |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
916 | *****************************************************************************/ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
917 | static void |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
918 | pidgin_account_editor_connection_changed_cb(G_GNUC_UNUSED GObject *obj, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
919 | G_GNUC_UNUSED GParamSpec *pspec, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
920 | gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
921 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
922 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
923 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
924 | pidgin_account_editor_login_options_update_editable(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
925 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
926 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
927 | static void |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
928 | pidgin_account_editor_response_cb(GtkDialog *dialog, gint response_id, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
929 | G_GNUC_UNUSED gpointer data) |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
930 | { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
931 | if(response_id == GTK_RESPONSE_APPLY) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
932 | pidgin_account_editor_save_account(PIDGIN_ACCOUNT_EDITOR(dialog)); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
933 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
934 | |
|
41560
2579a5138f0c
A bunch of random fixes for the the gtk4 branch
Gary Kramlich <grim@reaperworld.com>
parents:
41483
diff
changeset
|
935 | gtk_window_destroy(GTK_WINDOW(dialog)); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
936 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
937 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
938 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
939 | pidgin_account_editor_protocol_changed_cb(G_GNUC_UNUSED GObject *obj, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
940 | G_GNUC_UNUSED GParamSpec *pspec, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
941 | gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
942 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
943 | pidgin_account_editor_update(data); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
944 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
945 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
946 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
947 | pidgin_account_editor_username_changed_cb(GtkEditable *self, gpointer data) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
948 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
949 | const gchar *text = gtk_editable_get_text(self); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
950 | gboolean sensitive = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
951 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
952 | if(text != NULL && *text != '\0') { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
953 | sensitive = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
954 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
955 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
956 | gtk_dialog_set_response_sensitive(GTK_DIALOG(editor), GTK_RESPONSE_APPLY, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
957 | sensitive); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
958 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
959 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
960 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
961 | pidgin_account_editor_avatar_response_cb(GtkNativeDialog *self, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
962 | gint response_id, gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
963 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
964 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
965 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
966 | if(response_id == GTK_RESPONSE_ACCEPT) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
967 | GError *error = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
968 | GFile *file = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
969 | gchar *filename = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
970 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
971 | file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(self)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
972 | filename = g_file_get_path(file); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
973 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
974 | g_clear_object(&editor->avatar_pixbuf); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
975 | editor->avatar_pixbuf = gdk_pixbuf_new_from_file(filename, &error); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
976 | if(error != NULL) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
977 | g_warning("Failed to create pixbuf from file %s: %s", filename, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
978 | error->message); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
979 | g_clear_error(&error); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
980 | } else { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
981 | gtk_image_set_from_pixbuf(GTK_IMAGE(editor->avatar), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
982 | editor->avatar_pixbuf); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
983 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
984 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
985 | g_free(filename); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
986 | g_object_unref(file); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
987 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
988 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
989 | g_clear_object(&editor->avatar_dialog); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
990 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
991 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
992 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
993 | pidgin_account_editor_avatar_set_clicked_cb(G_GNUC_UNUSED GtkButton *self, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
994 | gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
995 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
996 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
997 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
998 | editor->avatar_dialog = gtk_file_chooser_native_new(_("Buddy Icon"), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
999 | GTK_WINDOW(editor), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1000 | GTK_FILE_CHOOSER_ACTION_OPEN, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1001 | _("_Open"), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1002 | _("_Cancel")); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1003 | gtk_native_dialog_set_transient_for(GTK_NATIVE_DIALOG(editor->avatar_dialog), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1004 | GTK_WINDOW(editor)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1005 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1006 | g_signal_connect(G_OBJECT(editor->avatar_dialog), "response", |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1007 | G_CALLBACK(pidgin_account_editor_avatar_response_cb), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1008 | editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1009 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1010 | gtk_native_dialog_show(GTK_NATIVE_DIALOG(editor->avatar_dialog)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1011 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1012 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1013 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1014 | pidgin_account_editor_avatar_remove_clicked_cb(G_GNUC_UNUSED GtkButton *self, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1015 | gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1016 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1017 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1018 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1019 | gtk_image_set_from_icon_name(GTK_IMAGE(editor->avatar), "select-avatar"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1020 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1021 | g_clear_object(&editor->avatar_pixbuf); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1022 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1023 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1024 | static gchar * |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1025 | pidgin_account_editor_proxy_type_expression_cb(GObject *self, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1026 | G_GNUC_UNUSED gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1027 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1028 | const gchar *text = ""; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1029 | const gchar *value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1030 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1031 | value = gtk_string_object_get_string(GTK_STRING_OBJECT(self)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1032 | if(purple_strequal(value, "global")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1033 | text = _("Use Global Proxy Settings"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1034 | } else if(purple_strequal(value, "none")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1035 | text = _("No proxy"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1036 | } else if(purple_strequal(value, "socks4")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1037 | text = _("SOCKS 4"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1038 | } else if(purple_strequal(value, "socks5")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1039 | text = _("SOCKS 5"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1040 | } else if(purple_strequal(value, "tor")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1041 | text = _("Tor/Privacy (SOCKS 5)"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1042 | } else if(purple_strequal(value, "http")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1043 | text = _("HTTP"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1044 | } else if(purple_strequal(value, "envvar")) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1045 | text = _("Use Environmental Settings"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1046 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1047 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1048 | return g_strdup(text); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1049 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1050 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1051 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1052 | pidgin_account_editor_proxy_type_changed_cb(G_GNUC_UNUSED GObject *obj, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1053 | G_GNUC_UNUSED GParamSpec *pspec, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1054 | gpointer data) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1055 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1056 | PidginAccountEditor *editor = data; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1057 | GObject *selected = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1058 | gboolean show_options = TRUE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1059 | const gchar *value = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1060 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1061 | selected = adw_combo_row_get_selected_item(ADW_COMBO_ROW(editor->proxy_type)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1062 | value = gtk_string_object_get_string(GTK_STRING_OBJECT(selected)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1063 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1064 | if(purple_strequal(value, "global") || purple_strequal(value, "none") || |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1065 | purple_strequal(value, "envvar")) |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1066 | { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1067 | show_options = FALSE; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1068 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1069 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1070 | gtk_widget_set_visible(editor->proxy_options, show_options); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1071 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1072 | |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1073 | /****************************************************************************** |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1074 | * GObject Implementation |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1075 | *****************************************************************************/ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1076 | G_DEFINE_TYPE(PidginAccountEditor, pidgin_account_editor, GTK_TYPE_DIALOG) |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1077 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1078 | static void |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1079 | pidgin_account_editor_get_property(GObject *obj, guint param_id, GValue *value, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1080 | GParamSpec *pspec) |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1081 | { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1082 | PidginAccountEditor *editor = PIDGIN_ACCOUNT_EDITOR(obj); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1083 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1084 | switch(param_id) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1085 | case PROP_ACCOUNT: |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1086 | g_value_set_object(value, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1087 | pidgin_account_editor_get_account(editor)); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1088 | break; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1089 | default: |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1090 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1091 | break; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1092 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1093 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1094 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1095 | static void |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1096 | pidgin_account_editor_set_property(GObject *obj, guint param_id, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1097 | const GValue *value, GParamSpec *pspec) |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1098 | { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1099 | PidginAccountEditor *editor = PIDGIN_ACCOUNT_EDITOR(obj); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1100 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1101 | switch(param_id) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1102 | case PROP_ACCOUNT: |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1103 | pidgin_account_editor_set_account(editor, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1104 | g_value_get_object(value)); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1105 | break; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1106 | default: |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1107 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1108 | break; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1109 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1110 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1111 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1112 | static void |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1113 | pidgin_account_editor_dispose(GObject *obj) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1114 | PidginAccountEditor *editor = PIDGIN_ACCOUNT_EDITOR(obj); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1115 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1116 | g_clear_object(&editor->account); |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1117 | g_clear_object(&editor->avatar_dialog); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1118 | g_clear_object(&editor->avatar_pixbuf); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1119 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1120 | G_OBJECT_CLASS(pidgin_account_editor_parent_class)->dispose(obj); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1121 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1122 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1123 | static void |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1124 | pidgin_account_editor_init(PidginAccountEditor *editor) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1125 | GtkCssProvider *css_provider = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1126 | GtkStyleContext *context = NULL; |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1127 | GtkWidget *widget = GTK_WIDGET(editor); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1128 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1129 | gtk_widget_init_template(widget); |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1130 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1131 | css_provider = gtk_css_provider_new(); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1132 | gtk_css_provider_load_from_resource(css_provider, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1133 | "/im/pidgin/Pidgin3/Accounts/entry.css"); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1134 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1135 | context = gtk_widget_get_style_context(GTK_WIDGET(editor)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1136 | gtk_style_context_add_provider(context, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1137 | GTK_STYLE_PROVIDER(css_provider), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1138 | GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1139 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1140 | g_clear_object(&css_provider); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1141 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1142 | pidgin_account_editor_proxy_type_changed_cb(NULL, NULL, editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1143 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1144 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1145 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1146 | pidgin_account_editor_constructed(GObject *obj) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1147 | PidginAccountEditor *editor = PIDGIN_ACCOUNT_EDITOR(obj); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1148 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1149 | G_OBJECT_CLASS(pidgin_account_editor_parent_class)->constructed(obj); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1150 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1151 | if(PURPLE_IS_ACCOUNT(editor->account)) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1152 | pidgin_protocol_chooser_set_protocol(PIDGIN_PROTOCOL_CHOOSER(editor->protocol), |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1153 | purple_account_get_protocol(editor->account)); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1154 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1155 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1156 | pidgin_account_editor_update(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1157 | pidgin_account_editor_login_options_update_editable(editor); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1158 | } |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1159 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1160 | static void |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1161 | pidgin_account_editor_finalize(GObject *obj) { |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1162 | PidginAccountEditor *editor = PIDGIN_ACCOUNT_EDITOR(obj); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1163 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1164 | g_clear_pointer(&editor->user_split_entries, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1165 | g_clear_pointer(&editor->user_split_rows, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1166 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1167 | g_clear_pointer(&editor->advanced_entries, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1168 | g_clear_pointer(&editor->advanced_rows, g_list_free); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1169 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1170 | G_OBJECT_CLASS(pidgin_account_editor_parent_class)->finalize(obj); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1171 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1172 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1173 | static void |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1174 | pidgin_account_editor_class_init(PidginAccountEditorClass *klass) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1175 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1176 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1177 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1178 | obj_class->get_property = pidgin_account_editor_get_property; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1179 | obj_class->set_property = pidgin_account_editor_set_property; |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1180 | obj_class->constructed = pidgin_account_editor_constructed; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1181 | obj_class->dispose = pidgin_account_editor_dispose; |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1182 | obj_class->finalize = pidgin_account_editor_finalize; |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1183 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1184 | /** |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1185 | * PidginAccountEditor::account: |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1186 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1187 | * The account that this editor is modifying. |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1188 | * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1189 | * Since: 3.0.0 |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1190 | */ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1191 | properties[PROP_ACCOUNT] = g_param_spec_object( |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1192 | "account", "account", |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1193 | "The account to modify", |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1194 | PURPLE_TYPE_ACCOUNT, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1195 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1196 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1197 | g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1198 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1199 | gtk_widget_class_set_template_from_resource(widget_class, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1200 | "/im/pidgin/Pidgin3/Accounts/editor.ui"); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1201 | |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1202 | /* Dialog */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1203 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1204 | pidgin_account_editor_response_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1205 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1206 | /* Login Options */ |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1207 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1208 | login_options); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1209 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1210 | protocol); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1211 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1212 | username); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1213 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1214 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1215 | pidgin_account_editor_protocol_changed_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1216 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1217 | pidgin_account_editor_username_changed_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1218 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1219 | /* User Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1220 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1221 | alias); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1222 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1223 | avatar_row); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1224 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1225 | use_custom_avatar); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1226 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1227 | avatar); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1228 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1229 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1230 | pidgin_account_editor_avatar_set_clicked_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1231 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1232 | pidgin_account_editor_avatar_remove_clicked_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1233 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1234 | /* Advanced Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1235 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1236 | advanced_group); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1237 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1238 | advanced_toggle); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1239 | |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1240 | /* Proxy Options */ |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1241 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1242 | proxy_type); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1243 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1244 | proxy_options); |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1245 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1246 | proxy_host); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1247 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1248 | proxy_port); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1249 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1250 | proxy_username); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1251 | gtk_widget_class_bind_template_child(widget_class, PidginAccountEditor, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1252 | proxy_password); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1253 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1254 | gtk_widget_class_bind_template_callback(widget_class, |
|
41688
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1255 | pidgin_account_editor_proxy_type_expression_cb); |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1256 | gtk_widget_class_bind_template_callback(widget_class, |
|
6ccdb4116ca2
Modernize the AccountEditor.
Gary Kramlich <grim@reaperworld.com>
parents:
41560
diff
changeset
|
1257 | pidgin_account_editor_proxy_type_changed_cb); |
|
41483
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1258 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1259 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1260 | /****************************************************************************** |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1261 | * API |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1262 | *****************************************************************************/ |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1263 | GtkWidget * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1264 | pidgin_account_editor_new(PurpleAccount *account) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1265 | return g_object_new(PIDGIN_TYPE_ACCOUNT_EDITOR, "account", account, NULL); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1266 | } |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1267 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1268 | PurpleAccount * |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1269 | pidgin_account_editor_get_account(PidginAccountEditor *editor) { |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1270 | g_return_val_if_fail(PIDGIN_IS_ACCOUNT_EDITOR(editor), NULL); |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1271 | |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1272 | return editor->account; |
|
e3bd18c1769d
The start of the new account editor.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1273 | } |