Wed, 03 Jul 2013 22:18:55 +0530
Renamed PurpleBlistNode to PurpleBListNode
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
1 | /* |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
2 | * GtkBuddyNote - Store notes on particular buddies |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
3 | * Copyright (C) 2007 Etan Reisner <deryni@pidgin.im> |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
4 | * |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
5 | * This program is free software; you can redistribute it and/or |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
6 | * modify it under the terms of the GNU General Public License |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
7 | * as published by the Free Software Foundation; either version 2 |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
8 | * of the License, or (at your option) any later version. |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
9 | * |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
10 | * This program is distributed in the hope that it will be useful, |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
13 | * GNU General Public License for more details. |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
14 | * |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU General Public License |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
16 | * 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:
18889
diff
changeset
|
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA. |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
18 | */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
19 | #include "internal.h" |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
20 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
21 | #include <gtkblist.h> |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
22 | #include <gtkplugin.h> |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
23 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
24 | #include <debug.h> |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
25 | #include <version.h> |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
26 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
27 | static void |
|
34699
09b2c9219b57
Renamed PurpleBlistNode to PurpleBListNode
Ankit Vani <a@nevitus.org>
parents:
29770
diff
changeset
|
28 | append_to_tooltip(PurpleBListNode *node, GString *text, gboolean full) |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
29 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
30 | if (full) { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
31 | const gchar *note = purple_blist_node_get_string(node, "notes"); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
32 | |
|
18324
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
33 | if ((note != NULL) && (*note != '\0')) { |
|
29770
ae8b684d1a59
Escape buddy notes when adding them to the tooltip so notes can't totally
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20288
diff
changeset
|
34 | char *tmp, *esc; |
|
20095
c3c62efefdd0
applied changes from 23c81a483086f0c1541212be4c849abb05f9f3bd
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
35 | purple_markup_html_to_xhtml(note, NULL, &tmp); |
|
29770
ae8b684d1a59
Escape buddy notes when adding them to the tooltip so notes can't totally
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20288
diff
changeset
|
36 | esc = g_markup_escape_text(tmp, -1); |
|
ae8b684d1a59
Escape buddy notes when adding them to the tooltip so notes can't totally
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20288
diff
changeset
|
37 | g_free(tmp); |
|
18324
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
38 | g_string_append_printf(text, _("\n<b>Buddy Note</b>: %s"), |
|
29770
ae8b684d1a59
Escape buddy notes when adding them to the tooltip so notes can't totally
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20288
diff
changeset
|
39 | esc); |
|
ae8b684d1a59
Escape buddy notes when adding them to the tooltip so notes can't totally
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20288
diff
changeset
|
40 | g_free(esc); |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
41 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
42 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
43 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
44 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
45 | static gboolean |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
46 | plugin_load(PurplePlugin *plugin) |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
47 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
48 | purple_signal_connect(pidgin_blist_get_handle(), "drawing-tooltip", |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
49 | plugin, PURPLE_CALLBACK(append_to_tooltip), NULL); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
50 | return TRUE; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
51 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
52 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
53 | static gboolean |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
54 | plugin_unload(PurplePlugin *plugin) |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
55 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
56 | PurplePlugin *buddynote = NULL; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
57 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
58 | buddynote = purple_plugins_find_with_id("core-plugin_pack-buddynote"); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
59 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
60 | purple_plugin_unload(buddynote); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
61 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
62 | return TRUE; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
63 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
64 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
65 | static PurplePluginInfo info = |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
66 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
67 | PURPLE_PLUGIN_MAGIC, |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
68 | PURPLE_MAJOR_VERSION, /**< major version */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
69 | PURPLE_MINOR_VERSION, /**< minor version */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
70 | PURPLE_PLUGIN_STANDARD, /**< type */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
71 | PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
72 | 0, /**< flags */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
73 | NULL, /**< dependencies */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
74 | PURPLE_PRIORITY_DEFAULT, /**< priority */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
75 | "gtkbuddynote", /**< id */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
76 | N_("Buddy Notes"), /**< name */ |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20095
diff
changeset
|
77 | DISPLAY_VERSION, /**< version */ |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
78 | N_("Store notes on particular buddies."), /**< summary */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
79 | N_("Adds the option to store notes for buddies " |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
80 | "on your buddy list."), /**< description */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
81 | "Etan Reisner <deryni@pidgin.im>", /**< author */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
82 | PURPLE_WEBSITE, /**< homepage */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
83 | plugin_load, /**< load */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
84 | plugin_unload, /**< unload */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
85 | NULL, /**< destroy */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
86 | NULL, /**< ui_info */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
87 | NULL, /**< extra_info */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
88 | NULL, /**< prefs_info */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
89 | NULL, /**< actions */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
90 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
91 | /* padding */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
92 | NULL, |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
93 | NULL, |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
94 | NULL, |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
95 | NULL |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
96 | }; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
97 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
98 | static gboolean |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
99 | check_for_buddynote(gpointer data) |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
100 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
101 | PurplePlugin *buddynote = NULL; |
|
18324
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
102 | PurplePlugin *plugin = (PurplePlugin *)data; |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
103 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
104 | buddynote = purple_plugins_find_with_id("core-plugin_pack-buddynote"); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
105 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
106 | if (buddynote == NULL) { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
107 | buddynote = purple_plugins_find_with_basename("buddynote"); |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
108 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
109 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
110 | if (buddynote != NULL) { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
111 | PurplePluginInfo *bninfo = buddynote->info; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
112 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
113 | bninfo->flags = PURPLE_PLUGIN_FLAG_INVISIBLE; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
114 | |
|
18324
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
115 | |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
116 | /* If non-gtk buddy note plugin is loaded, but we are not, then load |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
117 | * ourselves, otherwise people upgrading from pre-gtkbuddynote days |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
118 | * will not have 'Buddy Notes' showing as loaded in the plugins list. |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
119 | * We also trigger a save on the list of plugins because it's not been |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
120 | * loaded through the UI. */ |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
121 | if (purple_plugin_is_loaded(buddynote) && |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
122 | !purple_plugin_is_loaded(plugin)) { |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
123 | purple_plugin_load(plugin); |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
124 | pidgin_plugins_save(); |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
125 | } |
|
7ebbdeaaa30d
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17681
diff
changeset
|
126 | |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
127 | } else { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
128 | info.flags = PURPLE_PLUGIN_FLAG_INVISIBLE; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
129 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
130 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
131 | return FALSE; |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
132 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
133 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
134 | static void |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
135 | init_plugin(PurplePlugin *plugin) |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
136 | { |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
137 | /* Use g_idle_add so that the rest of the plugins can get loaded |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
138 | * before we do our check. */ |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
139 | g_idle_add(check_for_buddynote, plugin); |
|
18889
2eda48021b49
Fix core plugin dependency registering for gtkbuddynote to happen in plugin_init() so that it can work correctly. Add an additional sanity check in the core plugin unloading so that messed up dependency registrations don't cause crashes in the future. Thanks to deryni for helping figure this out.
Daniel Atallah <datallah@pidgin.im>
parents:
18324
diff
changeset
|
140 | |
|
2eda48021b49
Fix core plugin dependency registering for gtkbuddynote to happen in plugin_init() so that it can work correctly. Add an additional sanity check in the core plugin unloading so that messed up dependency registrations don't cause crashes in the future. Thanks to deryni for helping figure this out.
Daniel Atallah <datallah@pidgin.im>
parents:
18324
diff
changeset
|
141 | info.dependencies = g_list_append(info.dependencies, |
|
2eda48021b49
Fix core plugin dependency registering for gtkbuddynote to happen in plugin_init() so that it can work correctly. Add an additional sanity check in the core plugin unloading so that messed up dependency registrations don't cause crashes in the future. Thanks to deryni for helping figure this out.
Daniel Atallah <datallah@pidgin.im>
parents:
18324
diff
changeset
|
142 | "core-plugin_pack-buddynote"); |
|
17681
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
143 | } |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
144 | |
|
b16ce226d996
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <deryni@pidgin.im>
parents:
diff
changeset
|
145 | PURPLE_INIT_PLUGIN(gtkbuddynote, init_plugin, info) |