Wed, 21 Sep 2011 06:45:26 +0000
Apply conversation theme when opening the GTK conversation. All the
parsing stuff was moved out of the theme code and into the conversation
code.
Someone (not me!) needs to check the code I commented out and see if
we really need that stuff (and then port it to WebKit/styling).
We also need to determine where to place Template.html and the rest
of our (not-yet-written) default theme.
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
1 | /* |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
2 | * Evolution integration plugin for Purple |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
3 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
4 | * Copyright (C) 2003 Christian Hammond. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
5 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
6 | * This program is free software; you can redistribute it and/or |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
7 | * modify it under the terms of the GNU General Public License as |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
8 | * published by the Free Software Foundation; either version 2 of the |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
9 | * License, or (at your option) any later version. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
10 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
11 | * This program is distributed in the hope that it will be useful, but |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
14 | * General Public License for more details. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
15 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
16 | * You should have received a copy of the GNU General Public License |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
17 | * along with this program; if not, write to the Free Software |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
19 | * 02111-1301, USA. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
20 | */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
21 | #include "internal.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
22 | #include "gtkblist.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
23 | #include "pidgin.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
24 | #include "gtkutils.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
25 | #include "gtkimhtml.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
26 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
27 | #include "debug.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
28 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
29 | #include "gevolution.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
30 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
31 | #include <stdlib.h> |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
32 | #include <gtk/gtk.h> |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
33 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
34 | enum |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
35 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
36 | COLUMN_NAME, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
37 | COLUMN_DATA, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
38 | NUM_COLUMNS |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
39 | }; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
40 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
41 | static gint |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
42 | delete_win_cb(GtkWidget *w, GdkEvent *event, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
43 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
44 | gtk_widget_destroy(dialog->win); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
45 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
46 | if (dialog->contacts != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
47 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
48 | g_list_foreach(dialog->contacts, (GFunc)g_object_unref, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
49 | g_list_free(dialog->contacts); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
50 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
51 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
52 | g_object_unref(dialog->book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
53 | gevo_addrbooks_model_unref(dialog->addrbooks); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
54 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
55 | g_free(dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
56 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
57 | return 0; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
58 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
59 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
60 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
61 | search_changed_cb(GtkEntry *entry, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
62 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
63 | const char *text = gtk_entry_get_text(entry); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
64 | GList *l; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
65 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
66 | gtk_list_store_clear(dialog->model); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
67 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
68 | for (l = dialog->contacts; l != NULL; l = l->next) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
69 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
70 | EContact *contact = E_CONTACT(l->data); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
71 | const char *name; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
72 | GtkTreeIter iter; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
73 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
74 | name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
75 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
76 | if (text != NULL && *text != '\0' && name != NULL && |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
77 | g_ascii_strncasecmp(name, text, strlen(text))) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
78 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
79 | continue; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
80 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
81 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
82 | gtk_list_store_append(dialog->model, &iter); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
83 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
84 | gtk_list_store_set(dialog->model, &iter, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
85 | COLUMN_NAME, name, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
86 | COLUMN_DATA, contact, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
87 | -1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
88 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
89 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
90 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
91 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
92 | clear_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
93 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
94 | static gboolean lock = FALSE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
95 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
96 | if (lock) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
97 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
98 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
99 | lock = TRUE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
100 | gtk_entry_set_text(GTK_ENTRY(dialog->search_field), ""); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
101 | lock = FALSE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
102 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
103 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
104 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
105 | selected_cb(GtkTreeSelection *sel, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
106 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
107 | GtkTreeSelection *selection; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
108 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
109 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
110 | gtk_widget_set_sensitive(dialog->assoc_button, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
111 | gtk_tree_selection_get_selected(selection, NULL, NULL)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
112 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
113 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
114 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
115 | add_columns(GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
116 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
117 | GtkCellRenderer *renderer; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
118 | GtkTreeViewColumn *column; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
119 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
120 | /* Name column */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
121 | column = gtk_tree_view_column_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
122 | gtk_tree_view_column_set_title(column, _("Name")); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
123 | gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
124 | gtk_tree_view_column_set_sort_column_id(column, COLUMN_NAME); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
125 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
126 | renderer = gtk_cell_renderer_text_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
127 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
128 | gtk_tree_view_column_add_attribute(column, renderer, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
129 | "text", COLUMN_NAME); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
130 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
131 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
132 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
133 | populate_treeview(GevoAssociateBuddyDialog *dialog, const gchar *uri) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
134 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
135 | EBook *book; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
136 | EBookQuery *query; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
137 | const char *prpl_id; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
138 | gboolean status; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
139 | GList *cards, *c; |
|
27706
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
140 | GError *err = NULL; |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
141 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
142 | if (dialog->book != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
143 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
144 | g_object_unref(dialog->book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
145 | dialog->book = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
146 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
147 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
148 | if (dialog->contacts != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
149 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
150 | g_list_foreach(dialog->contacts, (GFunc) g_object_unref, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
151 | g_list_free(dialog->contacts); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
152 | dialog->contacts = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
153 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
154 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
155 | gtk_list_store_clear(dialog->model); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
156 | |
|
27706
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
157 | if (!gevo_load_addressbook(uri, &book, &err)) |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
158 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
159 | purple_debug_error("evolution", |
|
27706
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
160 | "Error retrieving addressbook: %s\n", err->message); |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
161 | g_error_free(err); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
162 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
163 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
164 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
165 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
166 | query = e_book_query_field_exists(E_CONTACT_FULL_NAME); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
167 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
168 | if (query == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
169 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
170 | purple_debug_error("evolution", "Error in creating query\n"); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
171 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
172 | g_object_unref(book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
173 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
174 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
175 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
176 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
177 | status = e_book_get_contacts(book, query, &cards, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
178 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
179 | e_book_query_unref(query); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
180 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
181 | if (!status) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
182 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
183 | purple_debug_error("evolution", "Error %d in getting card list\n", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
184 | status); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
185 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
186 | g_object_unref(book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
187 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
188 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
189 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
190 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
191 | prpl_id = purple_account_get_protocol_id(dialog->buddy->account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
192 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
193 | for (c = cards; c != NULL; c = c->next) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
194 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
195 | EContact *contact = E_CONTACT(c->data); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
196 | const char *name; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
197 | GtkTreeIter iter; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
198 | EContactField protocol_field = 0; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
199 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
200 | name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
201 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
202 | gtk_list_store_append(dialog->model, &iter); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
203 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
204 | gtk_list_store_set(dialog->model, &iter, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
205 | COLUMN_NAME, name, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
206 | COLUMN_DATA, contact, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
207 | -1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
208 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
209 | /* See if this user has the buddy in its list. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
210 | protocol_field = gevo_prpl_get_field(dialog->buddy->account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
211 | dialog->buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
212 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
213 | if (protocol_field > 0) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
214 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
215 | GList *ims, *l; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
216 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
217 | ims = e_contact_get(contact, protocol_field); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
218 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
219 | for (l = ims; l != NULL; l = l->next) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
220 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
221 | if (!strcmp(l->data, dialog->buddy->name)) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
222 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
223 | GtkTreeSelection *selection; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
224 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
225 | /* This is it. Select it. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
226 | selection = gtk_tree_view_get_selection( |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
227 | GTK_TREE_VIEW(dialog->treeview)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
228 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
229 | gtk_tree_selection_select_iter(selection, &iter); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
230 | break; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
231 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
232 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
233 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
234 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
235 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
236 | dialog->contacts = cards; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
237 | dialog->book = book; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
238 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
239 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
240 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
241 | addrbook_change_cb(GtkComboBox *combo, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
242 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
243 | GtkTreeIter iter; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
244 | const char *esource_uri; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
245 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
246 | if (!gtk_combo_box_get_active_iter(combo, &iter)) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
247 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
248 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
249 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->addrbooks), &iter, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
250 | ADDRBOOK_COLUMN_URI, &esource_uri, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
251 | -1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
252 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
253 | populate_treeview(dialog, esource_uri); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
254 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
255 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
256 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
257 | new_person_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
258 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
259 | gevo_new_person_dialog_show(dialog->book, NULL, dialog->buddy->account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
260 | dialog->buddy->name, NULL, dialog->buddy, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
261 | TRUE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
262 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
263 | delete_win_cb(NULL, NULL, dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
264 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
265 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
266 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
267 | cancel_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
268 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
269 | delete_win_cb(NULL, NULL, dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
270 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
271 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
272 | static void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
273 | assoc_buddy_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
274 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
275 | GtkTreeSelection *selection; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
276 | GtkTreeIter iter; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
277 | GList *list; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
278 | const char *fullname; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
279 | EContactField protocol_field; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
280 | EContact *contact; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
281 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
282 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
283 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
284 | if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
285 | return; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
286 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
287 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
288 | COLUMN_NAME, &fullname, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
289 | COLUMN_DATA, &contact, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
290 | -1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
291 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
292 | protocol_field = gevo_prpl_get_field(dialog->buddy->account, dialog->buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
293 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
294 | if (protocol_field == 0) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
295 | return; /* XXX */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
296 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
297 | list = e_contact_get(contact, protocol_field); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
298 | list = g_list_append(list, g_strdup(dialog->buddy->name)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
299 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
300 | e_contact_set(contact, protocol_field, list); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
301 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
302 | if (!e_book_commit_contact(dialog->book, contact, NULL)) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
303 | purple_debug_error("evolution", "Error adding contact to book\n"); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
304 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
305 | /* Free the list. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
306 | g_list_foreach(list, (GFunc)g_free, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
307 | g_list_free(list); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
308 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
309 | delete_win_cb(NULL, NULL, dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
310 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
311 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
312 | GevoAssociateBuddyDialog * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
313 | gevo_associate_buddy_dialog_new(PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
314 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
315 | GevoAssociateBuddyDialog *dialog; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
316 | GtkWidget *button; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
317 | GtkWidget *label; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
318 | GtkWidget *vbox; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
319 | GtkWidget *hbox; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
320 | GtkWidget *bbox; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
321 | GtkWidget *sep; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
322 | GtkWidget *expander; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
323 | GtkTreeSelection *selection; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
324 | GtkCellRenderer *cell; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
325 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
326 | g_return_val_if_fail(buddy != NULL, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
327 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
328 | dialog = g_new0(GevoAssociateBuddyDialog, 1); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
329 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
330 | dialog->buddy = buddy; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
331 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
332 | dialog->win = pidgin_create_window(NULL, PIDGIN_HIG_BORDER, "assoc_buddy", TRUE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
333 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
334 | g_signal_connect(G_OBJECT(dialog->win), "delete_event", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
335 | G_CALLBACK(delete_win_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
336 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
337 | /* Setup the vbox */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
338 | vbox = gtk_vbox_new(FALSE, 12); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
339 | gtk_container_add(GTK_CONTAINER(dialog->win), vbox); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
340 | gtk_widget_show(vbox); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
341 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
342 | /* Add the label. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
343 | label = gtk_label_new(_("Select a person from your address book to " |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
344 | "add this buddy to, or create a new person.")); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
345 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
346 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
347 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, TRUE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
348 | gtk_widget_show(label); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
349 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
350 | /* Add the search hbox */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
351 | hbox = gtk_hbox_new(FALSE, 6); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
352 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
353 | gtk_widget_show(hbox); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
354 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
355 | /* "Search" */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
356 | label = gtk_label_new(_("Search")); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
357 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
358 | gtk_widget_show(label); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
359 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
360 | /* Addressbooks */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
361 | dialog->addrbooks = gevo_addrbooks_model_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
362 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
363 | dialog->addrbooks_combo = gtk_combo_box_new_with_model(dialog->addrbooks); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
364 | cell = gtk_cell_renderer_text_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
365 | gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dialog->addrbooks_combo), |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
366 | cell, TRUE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
367 | gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dialog->addrbooks_combo), |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
368 | cell, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
369 | "text", ADDRBOOK_COLUMN_NAME, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
370 | NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
371 | gtk_box_pack_start(GTK_BOX(hbox), dialog->addrbooks_combo, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
372 | gtk_widget_show(dialog->addrbooks_combo); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
373 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
374 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
375 | /* Search field */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
376 | dialog->search_field = gtk_entry_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
377 | gtk_box_pack_start(GTK_BOX(hbox), dialog->search_field, TRUE, TRUE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
378 | gtk_widget_show(dialog->search_field); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
379 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
380 | g_signal_connect(G_OBJECT(dialog->search_field), "changed", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
381 | G_CALLBACK(search_changed_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
382 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
383 | /* Clear button */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
384 | button = gtk_button_new_from_stock(GTK_STOCK_CLEAR); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
385 | gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
386 | gtk_widget_show(button); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
387 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
388 | g_signal_connect(G_OBJECT(button), "clicked", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
389 | G_CALLBACK(clear_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
390 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
391 | /* Create the list model for the treeview. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
392 | dialog->model = gtk_list_store_new(NUM_COLUMNS, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
393 | G_TYPE_STRING, G_TYPE_POINTER); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
394 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
395 | /* Now for the treeview */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
396 | dialog->treeview = gtk_tree_view_new_with_model( |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
397 | GTK_TREE_MODEL(dialog->model)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
398 | gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(dialog->treeview), TRUE); |
|
31321
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29736
diff
changeset
|
399 | gtk_box_pack_start(GTK_BOX(vbox), |
|
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29736
diff
changeset
|
400 | pidgin_make_scrollable(dialog->treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1), |
|
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29736
diff
changeset
|
401 | TRUE, TRUE, 0); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
402 | gtk_widget_show(dialog->treeview); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
403 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
404 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
405 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
406 | gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
407 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
408 | g_signal_connect(G_OBJECT(selection), "changed", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
409 | G_CALLBACK(selected_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
410 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
411 | add_columns(dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
412 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
413 | /* |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
414 | * Catch addressbook selection and populate treeview with the first |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
415 | * addressbook |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
416 | */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
417 | gevo_addrbooks_model_populate( dialog->addrbooks ); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
418 | g_signal_connect(G_OBJECT(dialog->addrbooks_combo), "changed", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
419 | G_CALLBACK(addrbook_change_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
420 | gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->addrbooks_combo), 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
421 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
422 | /* Add the expander */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
423 | expander = gtk_expander_new_with_mnemonic(_("User _details")); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
424 | gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
425 | gtk_widget_show(expander); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
426 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
427 | /* |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
428 | * User details |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
429 | */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
430 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
431 | /* Textview */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
432 | dialog->imhtml = gtk_imhtml_new(NULL, NULL); |
|
31321
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29736
diff
changeset
|
433 | gtk_container_add(GTK_CONTAINER(expander), |
|
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29736
diff
changeset
|
434 | pidgin_make_scrollable(dialog->imhtml, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1)); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
435 | gtk_widget_show(dialog->imhtml); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
436 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
437 | /* Separator. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
438 | sep = gtk_hseparator_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
439 | gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
440 | gtk_widget_show(sep); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
441 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
442 | /* Button box */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
443 | bbox = gtk_hbutton_box_new(); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
444 | gtk_box_set_spacing(GTK_BOX(bbox), 6); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
445 | gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
446 | gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
447 | gtk_widget_show(bbox); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
448 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
449 | /* "New Person" button */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
450 | button = pidgin_pixbuf_button_from_stock(_("New Person"), GTK_STOCK_NEW, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
451 | PIDGIN_BUTTON_HORIZONTAL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
452 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
453 | gtk_widget_show(button); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
454 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
455 | g_signal_connect(G_OBJECT(button), "clicked", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
456 | G_CALLBACK(new_person_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
457 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
458 | /* "Cancel" button */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
459 | button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
460 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
461 | gtk_widget_show(button); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
462 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
463 | g_signal_connect(G_OBJECT(button), "clicked", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
464 | G_CALLBACK(cancel_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
465 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
466 | /* "Associate Buddy" button */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
467 | button = pidgin_pixbuf_button_from_stock(_("_Associate Buddy"), |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
468 | GTK_STOCK_APPLY, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
469 | PIDGIN_BUTTON_HORIZONTAL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
470 | dialog->assoc_button = button; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
471 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
472 | gtk_widget_set_sensitive(button, FALSE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
473 | gtk_widget_show(button); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
474 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
475 | g_signal_connect(G_OBJECT(button), "clicked", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
476 | G_CALLBACK(assoc_buddy_cb), dialog); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
477 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
478 | /* Show it. */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
479 | gtk_widget_show(dialog->win); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
480 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
481 | return dialog; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
482 | } |