Fri, 27 Jun 2008 01:29:59 +0000
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
else is backwards compatiable, sound plays but the theme is not always found
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1 | /** |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2 | * @file gnthistory.c Show log from previous conversation |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
3 | * |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
4 | * Copyright (C) 2006 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
5 | * |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
6 | * This program is free software; you can redistribute it and/or modify |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
7 | * it under the terms of the GNU General Public License as published by |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
8 | * the Free Software Foundation; either version 2 of the License, or |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
9 | * (at your option) any later version. |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
10 | * |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
11 | * This program is distributed in the hope that it will be useful, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
14 | * GNU General Public License for more details. |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
15 | * |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
16 | * You should have received a copy of the GNU General Public License |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16748
diff
changeset
|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
19 | */ |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
20 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | /* Ripped from gtk/plugins/history.c */ |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
22 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | #include "internal.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
24 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | #include "conversation.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | #include "debug.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include "log.h" |
|
21577
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
28 | #include "request.h" |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
29 | #include "prefs.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | #include "signals.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | #include "util.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | #include "version.h" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | #include "gntplugin.h" |
|
21577
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
35 | #include "gntrequest.h" |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
36 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #define HISTORY_PLUGIN_ID "gnt-history" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
38 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | #define HISTORY_SIZE (4 * 1024) |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | |
| 15884 | 41 | static void historize(PurpleConversation *c) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | { |
| 15884 | 43 | PurpleAccount *account = purple_conversation_get_account(c); |
| 44 | const char *name = purple_conversation_get_name(c); | |
| 45 | PurpleConversationType convtype; | |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | GList *logs = NULL; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | const char *alias = name; |
| 15884 | 48 | PurpleLogReadFlags flags; |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
49 | char *history; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
50 | char *header; |
| 15884 | 51 | PurpleMessageFlags mflag; |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
52 | |
| 15884 | 53 | convtype = purple_conversation_get_type(c); |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
54 | if (convtype == PURPLE_CONV_TYPE_IM) { |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
55 | GSList *buddies; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | GSList *cur; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | /* If we're not logging, don't show anything. |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | * Otherwise, we might show a very old log. */ |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
60 | if (!purple_prefs_get_bool("/purple/logging/log_ims")) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | return; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | /* Find buddies for this conversation. */ |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
64 | buddies = purple_find_buddies(account, name); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
65 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
66 | /* If we found at least one buddy, save the first buddy's alias. */ |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
67 | if (buddies != NULL) |
| 15884 | 68 | alias = purple_buddy_get_contact_alias((PurpleBuddy *)buddies->data); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
69 | |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
70 | for (cur = buddies; cur != NULL; cur = cur->next) { |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
71 | PurpleBlistNode *node = cur->data; |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
72 | if ((node != NULL) && |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
73 | ((purple_blist_node_get_sibling_prev(node) != NULL) || |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
74 | (purple_blist_node_get_sibling_next(node) != NULL))) { |
| 15884 | 75 | PurpleBlistNode *node2; |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
76 | |
| 15884 | 77 | alias = purple_buddy_get_contact_alias((PurpleBuddy *)node); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
78 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | /* We've found a buddy that matches this conversation. It's part of a |
| 15884 | 80 | * PurpleContact with more than one PurpleBuddy. Loop through the PurpleBuddies |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
81 | * in the contact and get all the logs. */ |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
82 | for (node2 = purple_blist_node_get_first_child(purple_blist_node_get_parent(node)); |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
83 | node2 != NULL ; node2 = purple_blist_node_get_sibling_next(node2)) { |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
84 | logs = g_list_concat( |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
85 | purple_log_get_logs(PURPLE_LOG_IM, |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
86 | purple_buddy_get_name((PurpleBuddy *)node2), |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
87 | purple_buddy_get_account((PurpleBuddy *)node2)), |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
88 | logs); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
89 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
90 | break; |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
91 | } |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
92 | } |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
93 | g_slist_free(buddies); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
94 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
95 | if (logs == NULL) |
| 15884 | 96 | logs = purple_log_get_logs(PURPLE_LOG_IM, name, account); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
97 | else |
| 15884 | 98 | logs = g_list_sort(logs, purple_log_compare); |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
99 | } else if (convtype == PURPLE_CONV_TYPE_CHAT) { |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | /* If we're not logging, don't show anything. |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
101 | * Otherwise, we might show a very old log. */ |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
102 | if (!purple_prefs_get_bool("/purple/logging/log_chats")) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
103 | return; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
104 | |
| 15884 | 105 | logs = purple_log_get_logs(PURPLE_LOG_CHAT, name, account); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
108 | if (logs == NULL) |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
109 | return; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
110 | |
| 15884 | 111 | mflag = PURPLE_MESSAGE_NO_LOG | PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_DELAYED; |
| 112 | history = purple_log_read((PurpleLog*)logs->data, &flags); | |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
114 | header = g_strdup_printf(_("<b>Conversation with %s on %s:</b><br>"), alias, |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
115 | purple_date_format_full(localtime(&((PurpleLog *)logs->data)->time))); |
| 15884 | 116 | purple_conversation_write(c, "", header, mflag, time(NULL)); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | g_free(header); |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | |
| 15884 | 119 | if (flags & PURPLE_LOG_READ_NO_NEWLINE) |
| 120 | purple_str_strip_char(history, '\n'); | |
| 121 | purple_conversation_write(c, "", history, mflag, time(NULL)); | |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | g_free(history); |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | |
| 15884 | 124 | purple_conversation_write(c, "", "<hr>", mflag, time(NULL)); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | |
| 15884 | 126 | g_list_foreach(logs, (GFunc)purple_log_free, NULL); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | g_list_free(logs); |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
128 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
129 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
130 | static void |
| 15884 | 131 | history_prefs_check(PurplePlugin *plugin) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | { |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
133 | if (!purple_prefs_get_bool("/purple/logging/log_ims") && |
|
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
134 | !purple_prefs_get_bool("/purple/logging/log_chats")) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
135 | { |
|
21577
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
136 | PurpleRequestFields *fields = purple_request_fields_new(); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
137 | PurpleRequestFieldGroup *group; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
138 | PurpleRequestField *field; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
139 | struct { |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
140 | const char *pref; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
141 | const char *label; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
142 | } prefs[] = { |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
143 | {"/purple/logging/log_ims", N_("Log IMs")}, |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
144 | {"/purple/logging/log_chats", N_("Log chats")}, |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
145 | {NULL, NULL} |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
146 | }; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
147 | int iter; |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
148 | GList *list = purple_log_logger_get_options(); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
149 | const char *system = purple_prefs_get_string("/purple/logging/format"); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
150 | |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
151 | group = purple_request_field_group_new(_("Logging")); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
152 | |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
153 | field = purple_request_field_list_new("/purple/logging/format", _("Log format")); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
154 | while (list) { |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
155 | const char *label = _(list->data); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
156 | list = g_list_delete_link(list, list); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
157 | purple_request_field_list_add(field, label, list->data); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
158 | if (system && strcmp(system, list->data) == 0) |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
159 | purple_request_field_list_add_selected(field, label); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
160 | list = g_list_delete_link(list, list); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
161 | } |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
162 | purple_request_field_group_add_field(group, field); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
163 | |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
164 | for (iter = 0; prefs[iter].pref; iter++) { |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
165 | field = purple_request_field_bool_new(prefs[iter].pref, _(prefs[iter].label), |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
166 | purple_prefs_get_bool(prefs[iter].pref)); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
167 | purple_request_field_group_add_field(group, field); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
168 | } |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
169 | |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
170 | purple_request_fields_add_group(fields, group); |
|
bb3567e8bb75
Allow turning on logging when enabling the gnthistory plugin. (this doesn't
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20288
diff
changeset
|
171 | |
|
21630
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
172 | purple_request_fields(plugin, NULL, _("History Plugin Requires Logging"), |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
173 | _("Logging can be enabled from Tools -> Preferences -> Logging.\n\n" |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
174 | "Enabling logs for instant messages and/or chats will activate " |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
175 | "history for the same conversation type(s)."), |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
176 | fields, |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
177 | _("OK"), G_CALLBACK(finch_request_save_in_prefs), |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
178 | _("Cancel"), NULL, |
|
591a79c1b295
This merge has the effect of reverting the hinting code from trunk.
Richard Laager <rlaager@pidgin.im>
parents:
21577
diff
changeset
|
179 | NULL, NULL, NULL, plugin); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
180 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
181 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
182 | |
| 15884 | 183 | static void history_prefs_cb(const char *name, PurplePrefType type, |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
184 | gconstpointer val, gpointer data) |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
185 | { |
| 15884 | 186 | history_prefs_check((PurplePlugin *)data); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
187 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
188 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
189 | static gboolean |
| 15884 | 190 | plugin_load(PurplePlugin *plugin) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
191 | { |
| 15884 | 192 | purple_signal_connect(purple_conversations_get_handle(), |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
193 | "conversation-created", |
| 15884 | 194 | plugin, PURPLE_CALLBACK(historize), NULL); |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
195 | |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
196 | purple_prefs_connect_callback(plugin, "/purple/logging/log_ims", |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
197 | history_prefs_cb, plugin); |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
15906
diff
changeset
|
198 | purple_prefs_connect_callback(plugin, "/purple/logging/log_chats", |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
199 | history_prefs_cb, plugin); |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
200 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
201 | history_prefs_check(plugin); |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
202 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
203 | return TRUE; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
204 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
205 | |
| 15884 | 206 | static PurplePluginInfo info = |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | { |
| 15884 | 208 | PURPLE_PLUGIN_MAGIC, |
| 209 | PURPLE_MAJOR_VERSION, | |
| 210 | PURPLE_MINOR_VERSION, | |
| 211 | PURPLE_PLUGIN_STANDARD, | |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | NULL, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | 0, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | NULL, |
| 15884 | 215 | PURPLE_PRIORITY_DEFAULT, |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | HISTORY_PLUGIN_ID, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
217 | N_("GntHistory"), |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19859
diff
changeset
|
218 | DISPLAY_VERSION, |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
219 | N_("Shows recently logged conversations in new conversations."), |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | N_("When a new conversation is opened this plugin will insert " |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
221 | "the last conversation into the current conversation."), |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
222 | "Sean Egan <seanegan@gmail.com>\n" |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
223 | "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", |
| 15884 | 224 | PURPLE_WEBSITE, |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
225 | plugin_load, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
226 | NULL, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
227 | NULL, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | NULL, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
229 | NULL, |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
230 | NULL, |
|
16748
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
231 | NULL, |
|
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
232 | |
|
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
233 | /* padding */ |
|
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
234 | NULL, |
|
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
235 | NULL, |
|
f8e1573bfde0
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16478
diff
changeset
|
236 | NULL, |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
237 | NULL |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
238 | }; |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
239 | |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
240 | static void |
| 15884 | 241 | init_plugin(PurplePlugin *plugin) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
242 | { |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
243 | } |
|
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
244 | |
| 15884 | 245 | PURPLE_INIT_PLUGIN(gnthistory, init_plugin, info) |
|
14285
f8331daf743d
[gaim-migrate @ 16904]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
246 |