Sun, 28 Aug 2022 21:53:47 -0500
Set volume on audio test pipeline at startup
If you change the volume slider in prefs, then the Test Audio button does not respect that initially. If you move the slider around with the test playing, then the volume jumps to whatever you have. But stopping and starting the test again goes to full volume.
Testing Done:
Opened prefs, set to test source, made volume really low, and hit Test Audio. Output volume was low immediately.
Reviewed at https://reviews.imfreedom.org/r/1670/
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include <glib/gi18n.h> |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include "pidginaddbuddydialog.h" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #include "gtkaccount.h" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | #include "pidginaccountchooser.h" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | #include "pidginaccountstore.h" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | #include "pidgincore.h" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | struct _PidginAddBuddyDialog { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | GtkDialog parent; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | GtkTreeModel *filter; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | GtkWidget *account; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | GtkWidget *username; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | GtkWidget *alias; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | GtkWidget *message; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | GtkWidget *group; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | }; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | G_DEFINE_TYPE(PidginAddBuddyDialog, pidgin_add_buddy_dialog, GTK_TYPE_DIALOG) |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | /****************************************************************************** |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | * Helpers |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | *****************************************************************************/ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | static gboolean |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | pidgin_add_buddy_dialog_filter_accounts(GtkTreeModel *model, GtkTreeIter *iter, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | gpointer data) |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | PurpleAccount *account = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | PurpleProtocol *protocol = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | gboolean ret = FALSE; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | g_return_val_if_fail(GTK_IS_TREE_MODEL(model), FALSE); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | g_return_val_if_fail(iter != NULL, FALSE); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | gtk_tree_model_get(model, iter, PIDGIN_ACCOUNT_STORE_COLUMN_ACCOUNT, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | &account, -1); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | if(!PURPLE_IS_ACCOUNT(account)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 | return FALSE; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | protocol = purple_account_get_protocol(account); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | if(PURPLE_IS_PROTOCOL(protocol)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | ret = PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, add_buddy); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | g_object_unref(G_OBJECT(account)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 | return ret; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | pidgin_add_buddy_dialog_validate(PidginAddBuddyDialog *dialog) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 | PurpleAccount *account = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | gboolean valid = FALSE; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(dialog->account)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 | if(PURPLE_IS_ACCOUNT(account)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | PurpleProtocol *protocol = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | protocol = purple_account_get_protocol(account); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | if(PURPLE_IS_PROTOCOL(protocol)) { |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
88 | const gchar *username = gtk_editable_get_text(GTK_EDITABLE(dialog->username)); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | valid = purple_validate(protocol, username); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | valid); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | /****************************************************************************** |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | * Callbacks |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | *****************************************************************************/ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 | pidgin_add_buddy_dialog_response_cb(GtkDialog *dialog, gint response_id, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | G_GNUC_UNUSED gpointer data) |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | PidginAddBuddyDialog *abdialog = PIDGIN_ADD_BUDDY_DIALOG(dialog); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | if(response_id == GTK_RESPONSE_OK) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 | PurpleAccount *account = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 | PurpleBuddy *buddy = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 | PurpleConversation *im = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | PurpleConversationManager *manager = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | PurpleGroup *group = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | const gchar *username = NULL, *alias = NULL, *message = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | gchar *groupname = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | /* Grab all of the values that the user entered. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(abdialog->account)); |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
118 | username = gtk_editable_get_text(GTK_EDITABLE(abdialog->username)); |
|
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
119 | alias = gtk_editable_get_text(GTK_EDITABLE(abdialog->alias)); |
|
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
120 | message = gtk_editable_get_text(GTK_EDITABLE(abdialog->message)); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | groupname = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(abdialog->group)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 | /* Make anything that is an empty string NULL. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | if(alias != NULL && *alias == '\0') { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | alias = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | if(message != NULL && *message == '\0') { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | message = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | if(groupname != NULL && *groupname == '\0') { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | g_clear_pointer(&groupname, g_free); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | /* Find the PurpleGroup that the user requested. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | if(groupname != NULL) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | group = purple_blist_find_group(groupname); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | if(group == NULL) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | /* Create the group if it's new. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
142 | group = purple_group_new(groupname); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | purple_blist_add_group(group, NULL); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | } else { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | /* Otherwise see if we already have a buddy in the existing |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | * group. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | buddy = purple_blist_find_buddy_in_group(account, username, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | group); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | } else { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | /* If a group name was not provided, look if the buddy exists, and |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | * use its group. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | buddy = purple_blist_find_buddy(account, username); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | if(PURPLE_IS_BUDDY(buddy)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | group = purple_buddy_get_group(buddy); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | /* If we don't a buddy yet, create it now. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | if(!PURPLE_IS_BUDDY(buddy)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | buddy = purple_buddy_new(account, username, alias); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | purple_blist_add_buddy(buddy, NULL, group, NULL); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | /* Add the buddy to the account. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | purple_account_add_buddy(account, buddy, message); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | #if 0 |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | /* This is disabled for now because gtk_blist_auto_personize is static |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | * and we're going to be changing the data structure of the contact list |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | * in the near future, so this probably completely change. |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | /* Offer to merge people with the same alias. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | if(alias != NULL && PURPLE_IS_GROUP(group)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | gtk_blist_auto_personize(PURPLE_BLIST_NODE(group), alias); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | #endif |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | /* Finally update the icon for any open im's with this person. */ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | manager = purple_conversation_manager_get_default(); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | im = purple_conversation_manager_find_im(manager, account, username); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | if(PURPLE_IS_IM_CONVERSATION(im)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | PurpleBuddyIcon *icon = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | icon = purple_im_conversation_get_icon(PURPLE_IM_CONVERSATION(im)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | if(icon != NULL) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | purple_buddy_icon_update(icon); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | g_free(groupname); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
197 | gtk_window_destroy(GTK_WINDOW(abdialog)); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | pidgin_add_buddy_dialog_account_changed_cb(GtkComboBox *widget, gpointer data) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | PidginAddBuddyDialog *dialog = data; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | PurpleAccount *account = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | gboolean message_sensitive = TRUE; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 | account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(widget)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 | if(PURPLE_IS_ACCOUNT(account)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
209 | PurpleProtocol *protocol = purple_account_get_protocol(account); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
210 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
211 | if(PURPLE_IS_PROTOCOL(protocol)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
212 | PurpleProtocolOptions opts = purple_protocol_get_options(protocol); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 | message_sensitive = (opts & OPT_PROTO_INVITE_MESSAGE); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
215 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | gtk_widget_set_sensitive(dialog->message, message_sensitive); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | pidgin_add_buddy_dialog_validate(dialog); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
223 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | pidgin_add_buddy_dialog_username_changed_cb(G_GNUC_UNUSED GtkEditable *editable, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 | gpointer data) |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 | { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 | pidgin_add_buddy_dialog_validate(data); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
229 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 | pidgin_add_buddy_dialog_group_cb(PurpleBlistNode *node, gpointer data) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 | PidginAddBuddyDialog *dialog = data; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
233 | PurpleGroup *group = PURPLE_GROUP(node); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 | gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(dialog->group), |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 | purple_group_get_name(group)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 | /****************************************************************************** |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 | * GObject Implementation |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 | *****************************************************************************/ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 | pidgin_add_buddy_dialog_init(PidginAddBuddyDialog *dialog) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 | gtk_widget_init_template(GTK_WIDGET(dialog)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 | gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 | gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(dialog->filter), |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 | pidgin_add_buddy_dialog_filter_accounts, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 | NULL, NULL); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 | gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(dialog->filter)); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
253 | gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->account), 0); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 | purple_blist_walk(pidgin_add_buddy_dialog_group_cb, NULL, NULL, NULL, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
256 | dialog); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
257 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
258 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
259 | static void |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
260 | pidgin_add_buddy_dialog_class_init(PidginAddBuddyDialogClass *klass) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
261 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
262 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
263 | gtk_widget_class_set_template_from_resource( |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
264 | widget_class, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
265 | "/im/pidgin/Pidgin3/Dialogs/addbuddy.ui" |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
266 | ); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
267 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
268 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
269 | filter); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
270 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
271 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
272 | account); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
273 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
274 | username); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
275 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
276 | alias); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
277 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
278 | message); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 | gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
280 | group); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
281 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
282 | gtk_widget_class_bind_template_callback(widget_class, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
283 | pidgin_add_buddy_dialog_response_cb); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
284 | gtk_widget_class_bind_template_callback(widget_class, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
285 | pidgin_add_buddy_dialog_account_changed_cb); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
286 | gtk_widget_class_bind_template_callback(widget_class, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
287 | pidgin_add_buddy_dialog_username_changed_cb); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
288 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
289 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
290 | /****************************************************************************** |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
291 | * Public API |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
292 | *****************************************************************************/ |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
293 | GtkWidget * |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
294 | pidgin_add_buddy_dialog_new(PurpleAccount *account, const gchar *username, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
295 | const gchar *alias, const gchar *message, |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
296 | const gchar *group) |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
297 | { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
298 | GtkWidget *dialog = g_object_new(PIDGIN_TYPE_ADD_BUDDY_DIALOG, NULL); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
299 | PidginAddBuddyDialog *abdialog = PIDGIN_ADD_BUDDY_DIALOG(dialog); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
300 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
301 | if(PURPLE_IS_ACCOUNT(account)) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
302 | pidgin_account_chooser_set_selected(PIDGIN_ACCOUNT_CHOOSER(abdialog->account), |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
303 | account); |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
304 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
305 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
306 | if(username != NULL) { |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
307 | gtk_editable_set_text(GTK_EDITABLE(abdialog->username), username); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
308 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
309 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
310 | if(alias != NULL) { |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
311 | gtk_editable_set_text(GTK_EDITABLE(abdialog->alias), alias); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
312 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
313 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
314 | if(message != NULL) { |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
315 | gtk_editable_set_text(GTK_EDITABLE(abdialog->message), message); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
316 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
317 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
318 | if(group != NULL) { |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
319 | GtkWidget *entry = NULL; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
320 | |
|
41561
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
321 | entry = gtk_combo_box_get_child(GTK_COMBO_BOX(abdialog->group)); |
|
ac5416e7e4f5
Port PidginAddBuddyDialog to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41491
diff
changeset
|
322 | gtk_editable_set_text(GTK_EDITABLE(entry), group); |
|
41491
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
323 | } |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
324 | |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
325 | return dialog; |
|
565b31cc5238
Create PidginAddBuddyDialog.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
326 | } |