annotate pidgin/plugins/gtkbuddynote.c @ 19514:7b348650524e

merge of '45cf46d3ba2b0debc7f98159ddf5a0262809cde4' and '9a3d36b0c95c012e35437cbd6cbab3949631344e'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 28 Aug 2007 21:03:49 +0000
parents f05360b5470d
children 44b4e8bd759b
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
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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')) {
a2c488006756 Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents: 17812
diff changeset
34 g_string_append_printf(text, _("\n<b>Buddy Note</b>: %s"),
17812
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
35 note);
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
36 }
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
37 }
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
38 }
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 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
41 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
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 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
44 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
45 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
46 }
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
47
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
48 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
49 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
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 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
52
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
53 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
54
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
55 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
56
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
57 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
58 }
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 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
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 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
63 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
64 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
65 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
66 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
67 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
68 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
69 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
70 "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
71 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
72 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
73 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
74 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
75 "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
76 "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
77 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
78 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
79 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
80 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
81 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
82 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
83 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
84 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
85
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
86 /* padding */
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,
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
88 NULL,
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
89 NULL,
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 };
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
92
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
93 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
94 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
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 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
97 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
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 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
100
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
101 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
102 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
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
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
105 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
106 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
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 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
109
18264
a2c488006756 Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents: 17812
diff changeset
110
a2c488006756 Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents: 17812
diff changeset
111 /* 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
112 * 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
113 * 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
114 * 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
115 * 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
116 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
117 !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
118 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
119 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
120 }
a2c488006756 Make gtkbuddynote load itself if it finds buddynote was loaded and it is
Stu Tomlinson <stu@nosnilmot.com>
parents: 17812
diff changeset
121
17812
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
122 } else {
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
123 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
124 }
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
125
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
126 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
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 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
130 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
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 /* 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
133 * 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
134 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
135
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
136 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
137 "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
138 }
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
139
f2869d5facfe Fix #318 which asked for the buddynote plugins notes to be shown in the
Etan Reisner <pidgin@unreliablesource.net>
parents:
diff changeset
140 PURPLE_INIT_PLUGIN(gtkbuddynote, init_plugin, info)