annotate pidgin/plugins/gtkbuddynote.c @ 26262:b03430dae08e

Add xmlnode_set_attrib_full that enables you to set an attribute with both a prefix and a namespace. Also, change xmlnode_remove_attribute to remove all existing attributes that match the name. Otherwise, it would just take out the first one, and may not do what you want. Change Bonjour and XMPP to use the new function. References #7681. Fixes #8318.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 13 Mar 2009 04:29:11 +0000
parents 3cc856ca2338
children fddded5ee514
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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')) {
20157
2a8b576590d8 Convert buddy notes to plain text before displaying in the tooltip to
Stu Tomlinson <stu@nosnilmot.com>
parents: 19680
diff changeset
34 char *tmp;
2a8b576590d8 Convert buddy notes to plain text before displaying in the tooltip to
Stu Tomlinson <stu@nosnilmot.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"),
20157
2a8b576590d8 Convert buddy notes to plain text before displaying in the tooltip to
Stu Tomlinson <stu@nosnilmot.com>
parents: 19680
diff changeset
37 tmp);
2a8b576590d8 Convert buddy notes to plain text before displaying in the tooltip to
Stu Tomlinson <stu@nosnilmot.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 */
21030
3cc856ca2338 Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents: 20157
diff changeset
75 DISPLAY_VERSION, /**< version */
17812
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)