--- a/plugins/history.c Tue Aug 09 04:28:59 2005 +0000 +++ b/plugins/history.c Tue Aug 09 05:20:07 2005 +0000 @@ -7,6 +7,7 @@ #include "conversation.h" #include "debug.h" #include "log.h" +#include "notify.h" #include "prefs.h" #include "signals.h" #include "util.h" @@ -49,6 +50,11 @@ GSList *buddies; GSList *cur; + /* If we're not logging, don't show anything. + * Otherwise, we might show a very old log. */ + if (!gaim_prefs_get_bool("/core/logging/log_ims")) + return; + /* Find buddies for this conversation. */ buddies = gaim_find_buddies(account, name); @@ -87,7 +93,14 @@ logs = g_list_sort(logs, gaim_log_compare); } else if (convtype == GAIM_CONV_CHAT) + { + /* If we're not logging, don't show anything. + * Otherwise, we might show a very old log. */ + if (!gaim_prefs_get_bool("/core/logging/log_chats")) + return; + logs = gaim_log_get_logs(GAIM_LOG_CHAT, name, account); + } if (logs == NULL) return; @@ -115,6 +128,24 @@ g_list_free(logs); } +static void +history_prefs_check(GaimPlugin *plugin) +{ + if (!gaim_prefs_get_bool("/core/logging/log_ims") && + !gaim_prefs_get_bool("/core/logging/log_chats")) + { + gaim_notify_warning(plugin, NULL, _("History Plugin Requires Logging"), + _("Logging can be enabled from Tools -> Preferences -> Logging.\n\n" + "Enabling logs for instant messages and/or chats will activate " + "history for the same conversation type(s).")); + } +} + +static void history_prefs_cb(const char *name, GaimPrefType type, gpointer val, gpointer data) +{ + history_prefs_check((GaimPlugin *)data); +} + static gboolean plugin_load(GaimPlugin *plugin) { @@ -122,6 +153,13 @@ "conversation-created", plugin, GAIM_CALLBACK(historize), NULL); + gaim_prefs_connect_callback(plugin, "/core/logging/log_ims", + history_prefs_cb, plugin); + gaim_prefs_connect_callback(plugin, "/core/logging/log_chats", + history_prefs_cb, plugin); + + history_prefs_check(plugin); + return TRUE; } @@ -139,7 +177,13 @@ N_("History"), VERSION, N_("Shows recently logged conversations in new conversations."), - N_("When a new conversation is opened this plugin will insert the last conversation into the current conversation."), + N_("When a new conversation is opened this plugin will insert " + "the last conversation into the current conversation.\n\n" + "The history plugin requires logging be enabled. Logging can " + "be enabled from Tools -> Preferences -> Logging. Enabling logs " + "for instant messages and/or chats will activate history for " + "the same conversation type(s)." + ), "Sean Egan <bj91704@binghamton.edu>", GAIM_WEBSITE, plugin_load,