libpurple/contact.c

changeset 42725
ceb13f1de2d2
parent 42715
f886f74847b0
--- a/libpurple/contact.c	Sun Apr 14 01:08:37 2024 -0500
+++ b/libpurple/contact.c	Sun Apr 14 01:14:59 2024 -0500
@@ -21,24 +21,24 @@
  */
 
 #include "contact.h"
+
+#include "buddylist.h"
 #include "prefs.h"
 #include "purpleconversationmanager.h"
 #include "purpleprivate.h"
+#include "signals.h"
 #include "util.h"
 
 typedef struct _PurpleMetaContactPrivate    PurpleMetaContactPrivate;
 
 struct _PurpleMetaContactPrivate {
 	char *alias;                  /* The user-set alias of the contact  */
-	PurpleBuddy *priority_buddy;  /* The "top" buddy for this contact   */
-	gboolean priority_valid;      /* Is priority valid?                 */
 };
 
 enum
 {
 	PROP_0,
 	PROP_ALIAS,
-	PROP_PRIORITY_BUDDY,
 	N_PROPERTIES,
 };
 
@@ -53,53 +53,6 @@
 /******************************************************************************
  * API
  *****************************************************************************/
-static void
-purple_meta_contact_compute_priority_buddy(PurpleMetaContact *contact) {
-	PurpleBlistNode *bnode;
-	PurpleBuddy *new_priority = NULL;
-	PurpleMetaContactPrivate *priv =
-			purple_meta_contact_get_instance_private(contact);
-
-	priv->priority_buddy = NULL;
-	for (bnode = PURPLE_BLIST_NODE(contact)->child;
-			bnode != NULL;
-			bnode = bnode->next)
-	{
-		PurpleBuddy *buddy;
-
-		if (!PURPLE_IS_BUDDY(bnode))
-			continue;
-
-		buddy = PURPLE_BUDDY(bnode);
-		if (new_priority == NULL)
-		{
-			new_priority = buddy;
-			continue;
-		}
-
-		if (purple_account_is_connected(purple_buddy_get_account(buddy)))
-		{
-			int cmp = 1;
-			if (purple_account_is_connected(purple_buddy_get_account(new_priority)))
-				cmp = purple_presence_compare(
-						purple_buddy_get_presence(new_priority),
-						purple_buddy_get_presence(buddy));
-
-			if (cmp > 0 || (cmp == 0 &&
-			                purple_prefs_get_bool("/purple/contact/last_match")))
-			{
-				new_priority = buddy;
-			}
-		}
-	}
-
-	priv->priority_buddy = new_priority;
-	priv->priority_valid = TRUE;
-
-	g_object_notify_by_pspec(G_OBJECT(contact),
-			properties[PROP_PRIORITY_BUDDY]);
-}
-
 void
 purple_meta_contact_set_alias(PurpleMetaContact *contact, const char *alias)
 {
@@ -149,50 +102,7 @@
 	if (priv->alias)
 		return priv->alias;
 
-	return purple_buddy_get_alias(purple_meta_contact_get_priority_buddy(contact));
-}
-
-gboolean purple_meta_contact_on_account(PurpleMetaContact *c, PurpleAccount *account)
-{
-	PurpleBlistNode *bnode, *cnode = (PurpleBlistNode *) c;
-
-	g_return_val_if_fail(PURPLE_IS_META_CONTACT(c), FALSE);
-	g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), FALSE);
-
-	for (bnode = cnode->child; bnode; bnode = bnode->next) {
-		PurpleBuddy *buddy;
-
-		if (! PURPLE_IS_BUDDY(bnode))
-			continue;
-
-		buddy = (PurpleBuddy *)bnode;
-		if (purple_buddy_get_account(buddy) == account)
-			return TRUE;
-	}
-	return FALSE;
-}
-
-void purple_meta_contact_invalidate_priority_buddy(PurpleMetaContact *contact)
-{
-	PurpleMetaContactPrivate *priv = NULL;
-
-	g_return_if_fail(PURPLE_IS_META_CONTACT(contact));
-
-	priv = purple_meta_contact_get_instance_private(contact);
-	priv->priority_valid = FALSE;
-}
-
-PurpleBuddy *purple_meta_contact_get_priority_buddy(PurpleMetaContact *contact)
-{
-	PurpleMetaContactPrivate *priv = NULL;
-
-	g_return_val_if_fail(PURPLE_IS_META_CONTACT(contact), NULL);
-
-	priv = purple_meta_contact_get_instance_private(contact);
-	if (!priv->priority_valid)
-		purple_meta_contact_compute_priority_buddy(contact);
-
-	return priv->priority_buddy;
+	return NULL;
 }
 
 /**************************************************************************
@@ -228,9 +138,6 @@
 		case PROP_ALIAS:
 			g_value_set_string(value, priv->alias);
 			break;
-		case PROP_PRIORITY_BUDDY:
-			g_value_set_object(value, purple_meta_contact_get_priority_buddy(contact));
-			break;
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
 			break;
@@ -283,21 +190,6 @@
 		G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
 	);
 
-	/**
-	 * PurpleMetaContact:priority-buddy:
-	 *
-	 * The priority buddy of the contact.
-	 *
-	 * Since: 3.0
-	 */
-	properties[PROP_PRIORITY_BUDDY] = g_param_spec_object(
-		"priority-buddy",
-		"Priority buddy",
-		"The priority buddy of the contact.",
-		PURPLE_TYPE_BUDDY,
-		G_PARAM_READABLE | G_PARAM_STATIC_STRINGS
-	);
-
 	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
 }
 

mercurial