Mercurial > pidgin.yaz
annotate pidgin/plugins/gtkbuddynote.c @ 20365:9401a46da958
applied changes from d6da6a7a5ad01f170f0fd78424183f73200dc78c
through ca4c40c7119d3222ca33d10a8f578782de29ad28
applied changes from ca4c40c7119d3222ca33d10a8f578782de29ad28
through 4341e599d112f3be408cb2a92fa459cc7c25b29c
applied changes from 1e8c3f6ec50a7e8ea15b850e7e2974e273c1cb6c
through fe00ca8a057e772d955ff56c7b6557e221d3e514
applied changes from 35e02ab2f9968d9b567123e1ba43552597218596
through aed8cc0e2684056309c481d621fdafcd366b7d24
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sun, 21 Oct 2007 05:07:57 +0000 |
parents | 440a2d75e976 |
children | 3cc856ca2338 |
rev | line source |
---|---|
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
1 /* |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
2 * GtkBuddyNote - Store notes on particular buddies |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
3 * Copyright (C) 2007 Etan Reisner <deryni@pidgin.im> |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
4 * |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
5 * This program is free software; you can redistribute it and/or |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
6 * modify it under the terms of the GNU General Public License |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
7 * as published by the Free Software Foundation; either version 2 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
8 * of the License, or (at your option) any later version. |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
9 * |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
10 * This program is distributed in the hope that it will be useful, |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
13 * GNU General Public License for more details. |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
14 * |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
16 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18626
diff
changeset
|
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA. |
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
18 */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
19 #include "internal.h" |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
20 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
21 #include <gtkblist.h> |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
22 #include <gtkplugin.h> |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
23 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
24 #include <debug.h> |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
25 #include <version.h> |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
26 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
27 static void |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
28 append_to_tooltip(PurpleBlistNode *node, GString *text, gboolean full) |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
29 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
30 if (full) { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
31 const gchar *note = purple_blist_node_get_string(node, "notes"); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
32 |
18264
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
33 if ((note != NULL) && (*note != '\0')) { |
20200
440a2d75e976
applied changes from 23c81a483086f0c1541212be4c849abb05f9f3bd
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
34 char *tmp; |
440a2d75e976
applied changes from 23c81a483086f0c1541212be4c849abb05f9f3bd
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
35 purple_markup_html_to_xhtml(note, NULL, &tmp); |
18264
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
36 g_string_append_printf(text, _("\n<b>Buddy Note</b>: %s"), |
20200
440a2d75e976
applied changes from 23c81a483086f0c1541212be4c849abb05f9f3bd
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
37 tmp); |
440a2d75e976
applied changes from 23c81a483086f0c1541212be4c849abb05f9f3bd
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
38 g_free(tmp); |
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
39 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
40 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
41 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
42 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
43 static gboolean |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
44 plugin_load(PurplePlugin *plugin) |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
45 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
46 purple_signal_connect(pidgin_blist_get_handle(), "drawing-tooltip", |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
47 plugin, PURPLE_CALLBACK(append_to_tooltip), NULL); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
48 return TRUE; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
49 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
50 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
51 static gboolean |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
52 plugin_unload(PurplePlugin *plugin) |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
53 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
54 PurplePlugin *buddynote = NULL; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
55 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
56 buddynote = purple_plugins_find_with_id("core-plugin_pack-buddynote"); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
57 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
58 purple_plugin_unload(buddynote); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
59 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
60 return TRUE; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
61 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
62 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
63 static PurplePluginInfo info = |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
64 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
65 PURPLE_PLUGIN_MAGIC, |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
66 PURPLE_MAJOR_VERSION, /**< major version */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
67 PURPLE_MINOR_VERSION, /**< minor version */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
68 PURPLE_PLUGIN_STANDARD, /**< type */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
69 PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
70 0, /**< flags */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
71 NULL, /**< dependencies */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
72 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
73 "gtkbuddynote", /**< id */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
74 N_("Buddy Notes"), /**< name */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
75 VERSION, /**< version */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
76 N_("Store notes on particular buddies."), /**< summary */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
77 N_("Adds the option to store notes for buddies " |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
78 "on your buddy list."), /**< description */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
79 "Etan Reisner <deryni@pidgin.im>", /**< author */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
80 PURPLE_WEBSITE, /**< homepage */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
81 plugin_load, /**< load */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
82 plugin_unload, /**< unload */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
83 NULL, /**< destroy */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
84 NULL, /**< ui_info */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
85 NULL, /**< extra_info */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
86 NULL, /**< prefs_info */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
87 NULL, /**< actions */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
88 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
89 /* padding */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
90 NULL, |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
91 NULL, |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
92 NULL, |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
93 NULL |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
94 }; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
95 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
96 static gboolean |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
97 check_for_buddynote(gpointer data) |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
98 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
99 PurplePlugin *buddynote = NULL; |
18264
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
100 PurplePlugin *plugin = (PurplePlugin *)data; |
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
101 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
102 buddynote = purple_plugins_find_with_id("core-plugin_pack-buddynote"); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
103 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
104 if (buddynote == NULL) { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
105 buddynote = purple_plugins_find_with_basename("buddynote"); |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
106 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
107 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
108 if (buddynote != NULL) { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
109 PurplePluginInfo *bninfo = buddynote->info; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
110 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
111 bninfo->flags = PURPLE_PLUGIN_FLAG_INVISIBLE; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
112 |
18264
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
113 |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
114 /* If non-gtk buddy note plugin is loaded, but we are not, then load |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
115 * ourselves, otherwise people upgrading from pre-gtkbuddynote days |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
116 * will not have 'Buddy Notes' showing as loaded in the plugins list. |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
117 * We also trigger a save on the list of plugins because it's not been |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
118 * loaded through the UI. */ |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
119 if (purple_plugin_is_loaded(buddynote) && |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
120 !purple_plugin_is_loaded(plugin)) { |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
121 purple_plugin_load(plugin); |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
122 pidgin_plugins_save(); |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
123 } |
a2c488006756
Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents:
17812
diff
changeset
|
124 |
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
125 } else { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
126 info.flags = PURPLE_PLUGIN_FLAG_INVISIBLE; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
127 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
128 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
129 return FALSE; |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
130 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
131 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
132 static void |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
133 init_plugin(PurplePlugin *plugin) |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
134 { |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
135 /* Use g_idle_add so that the rest of the plugins can get loaded |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
136 * before we do our check. */ |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
137 g_idle_add(check_for_buddynote, plugin); |
18626
f05360b5470d
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 <daniel.atallah@gmail.com>
parents:
18264
diff
changeset
|
138 |
f05360b5470d
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 <daniel.atallah@gmail.com>
parents:
18264
diff
changeset
|
139 info.dependencies = g_list_append(info.dependencies, |
f05360b5470d
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 <daniel.atallah@gmail.com>
parents:
18264
diff
changeset
|
140 "core-plugin_pack-buddynote"); |
17812
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
141 } |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
142 |
f2869d5facfe
Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff
changeset
|
143 PURPLE_INIT_PLUGIN(gtkbuddynote, init_plugin, info) |