Mercurial > pidgin.yaz
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 |
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) |