im.pidgin.pidgin: 1666e4ac675420b25c9763e9e38caac93d16c5b0

iwasroot at gmail.com iwasroot at gmail.com
Sat Jan 5 13:10:38 EST 2008


-----------------------------------------------------------------
Revision: 1666e4ac675420b25c9763e9e38caac93d16c5b0
Ancestor: fc87a0a058f0e03b2193c74fe82ebeb51532576e
Author: iwasroot at gmail.com
Date: 2008-01-05T16:32:40
Branch: im.pidgin.pidgin

Modified files:
        COPYRIGHT ChangeLog pidgin/gtkconv.c

ChangeLog: 

Save the conversation "Enable Logging" option per-contact.

-------------- next part --------------
============================================================
--- COPYRIGHT	2311d8e470bd1d423bf8dade36e2c183871cc41d
+++ COPYRIGHT	fc0ae00a4e1b80e128254b5e358298a5d5092cbc
@@ -167,6 +167,7 @@ Justin Heiner
 Nick Hebner
 Mike Heffner
 Justin Heiner
+Moos Heintzen
 Benjamin Herrenschmidt
 Fernando Herrera
 hjheins
============================================================
--- ChangeLog	56b93e9f7acafbfb6b27bfe3f1b2e23707b73dbe
+++ ChangeLog	b17ed544cf98beac6c7166f6866b41b61f994a5c
@@ -12,8 +12,10 @@ version 2.4.0 (??/??/????):
 	* Added the ability to theme conversation name colors (red and blue)
 	  through your GTK+ theme, and exposed those theme settings to the 
 	  Pidgin GTK+ Theme Control plugin (Dustin Howett)
-	* Fixed having multiple alias edit areas in the infopane (Elliott Sales de
-	  Andrade)
+	* Fixed having multiple alias edit areas in the infopane (Elliott Sales
+	  de Andrade)
+	* Save the conversation "Enable Logging" option per-contact (Moos
+	  Heintzen)
 
 	Finch:
 	* Color is used in the buddylist to indicate status, and the conversation
============================================================
--- pidgin/gtkconv.c	9955929b8fe29f34aa9ab1cb107f8324f0becd55
+++ pidgin/gtkconv.c	4dbe27c9f39a6a6647043065956d7a6a6d5e169e
@@ -1350,6 +1350,7 @@ menu_logging_cb(gpointer data, guint act
 	PidginWindow *win = data;
 	PurpleConversation *conv;
 	gboolean logging;
+	PurpleBlistNode *node;
 
 	conv = pidgin_conv_window_get_active_conversation(win);
 
@@ -1360,6 +1361,8 @@ menu_logging_cb(gpointer data, guint act
 
 	if (logging == purple_conversation_is_logging(conv))
 		return;
+	
+	node = get_conversation_blist_node(conv);
 
 	if (logging)
 	{
@@ -1383,6 +1386,27 @@ menu_logging_cb(gpointer data, guint act
 		/* Disable the logging second, so that the above message can be logged. */
 		purple_conversation_set_logging(conv, FALSE);
 	}
+
+	/* Save the setting IFF it's different than the pref. */
+	switch (conv->type)
+	{
+		case PURPLE_CONV_TYPE_IM:
+			if (logging == purple_prefs_get_bool("/purple/logging/log_ims"))
+				purple_blist_node_remove_setting(node, "enable-logging");
+			else
+				purple_blist_node_set_bool(node, "enable-logging", logging);
+			break;
+
+		case PURPLE_CONV_TYPE_CHAT:
+			if (logging == purple_prefs_get_bool("/purple/logging/log_chats"))
+				purple_blist_node_remove_setting(node, "enable-logging");
+			else
+				purple_blist_node_set_bool(node, "enable-logging", logging);
+			break;
+
+		default:
+			break;
+	}
 }
 
 static void
@@ -4907,6 +4931,7 @@ private_gtkconv_new(PurpleConversation *
 	GtkWidget *pane = NULL;
 	GtkWidget *tab_cont;
 	PurpleBlistNode *convnode;
+	PurpleValue *value;
 
 	if (conv_type == PURPLE_CONV_TYPE_IM && (gtkconv = pidgin_conv_find_gtkconv(conv))) {
 		conv->ui_data = gtkconv;
@@ -4994,6 +5019,13 @@ private_gtkconv_new(PurpleConversation *
 	if (convnode == NULL || !purple_blist_node_get_bool(convnode, "gtk-mute-sound"))
 		gtkconv->make_sound = TRUE;
 
+	if (convnode != NULL &&
+	    (value = g_hash_table_lookup(convnode->settings, "enable-logging")) &&
+	    purple_value_get_type(value) == PURPLE_TYPE_BOOLEAN)
+	{
+		purple_conversation_set_logging(conv, purple_value_get_boolean(value));
+	}
+
 	if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar"))
 		gtk_widget_show(gtkconv->toolbar);
 	else


More information about the Commits mailing list