--- a/doc/reference/libpurple/libpurple-docs.xml Sat Aug 22 02:58:07 2020 -0500
+++ b/doc/reference/libpurple/libpurple-docs.xml Sat Aug 22 03:45:42 2020 -0500
@@ -66,6 +66,8 @@
<xi:include href="xml/purple-gio.xml" />
<xi:include href="xml/purpleaccountoption.xml" />
<xi:include href="xml/purpleaccountusersplit.xml" />
+ <xi:include href="xml/purplechatuser.xml" /> + <xi:include href="xml/purpleimconversation.xml" /> <xi:include href="xml/purplekeyvaluepair.xml" />
<xi:include href="xml/purpleprotocolfactory.xml" />
<xi:include href="xml/purpleprotocolim.xml" />
--- a/libpurple/conversationtypes.c Sat Aug 22 02:58:07 2020 -0500
+++ b/libpurple/conversationtypes.c Sat Aug 22 03:45:42 2020 -0500
@@ -62,61 +62,6 @@
G_DEFINE_TYPE_WITH_PRIVATE(PurpleChatConversation, purple_chat_conversation,
PURPLE_TYPE_CONVERSATION);
-/**************************************************************************/
-/**************************************************************************/
- * Structure representing a chat user instance.
- * Data for "Chat Buddies"
- PurpleChatConversation *chat; /* The chat */
- char *name; /* The chat participant's name in the
- char *alias; /* The chat participant's alias, if known;
- char *alias_key; /* A string by which this user will be
- sorted, or @c NULL if the user should be
- (This is currently always NULL. */
- gboolean buddy; /* TRUE if this chat participant is on
- the buddy list; FALSE otherwise. */
- PurpleChatUserFlags flags; /* A bitwise OR of flags for this
- participant, such as whether they
- are a channel operator. */
-} PurpleChatUserPrivate;
-/* Chat User Property enums */
-static GParamSpec *cu_properties[CU_PROP_LAST];
-G_DEFINE_TYPE_WITH_PRIVATE(PurpleChatUser, purple_chat_user,
-static int purple_chat_user_compare(PurpleChatUser *a,
/**************************************************************************
**************************************************************************/
@@ -1125,314 +1070,3 @@
-/**************************************************************************
- * Chat Conversation User API
- **************************************************************************/
-purple_chat_user_compare(PurpleChatUser *a, PurpleChatUser *b)
- PurpleChatUserFlags f1 = 0, f2 = 0;
- PurpleChatUserPrivate *priva, *privb;
- char *user1 = NULL, *user2 = NULL;
- priva = purple_chat_user_get_instance_private(a);
- privb = purple_chat_user_get_instance_private(b);
- user1 = priva->alias_key;
- user2 = privb->alias_key;
- if (user1 == NULL || user2 == NULL) {
- if (!(user1 == NULL && user2 == NULL))
- ret = (user1 == NULL) ? -1: 1;
- /* sort more important users first */
- ret = (f1 > f2) ? -1 : 1;
- } else if (priva->buddy != privb->buddy) {
- ret = priva->buddy ? -1 : 1;
- ret = purple_utf8_strcasecmp(user1, user2);
-purple_chat_user_get_alias(PurpleChatUser *cb)
- PurpleChatUserPrivate *priv;
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL);
- priv = purple_chat_user_get_instance_private(cb);
-purple_chat_user_get_name(PurpleChatUser *cb)
- PurpleChatUserPrivate *priv;
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL);
- priv = purple_chat_user_get_instance_private(cb);
-purple_chat_user_set_flags(PurpleChatUser *cb,
- PurpleChatUserFlags flags)
- PurpleConversationUiOps *ops;
- PurpleChatUserFlags oldflags;
- PurpleChatUserPrivate *priv;
- g_return_if_fail(PURPLE_IS_CHAT_USER(cb));
- priv = purple_chat_user_get_instance_private(cb);
- if (flags == priv->flags)
- oldflags = priv->flags;
- g_object_notify_by_pspec(G_OBJECT(cb), cu_properties[CU_PROP_FLAGS]);
- ops = purple_conversation_get_ui_ops(PURPLE_CONVERSATION(priv->chat));
- if (ops != NULL && ops->chat_update_user != NULL)
- ops->chat_update_user(cb);
- purple_signal_emit(purple_conversations_get_handle(),
- "chat-user-flags", cb, oldflags, flags);
-purple_chat_user_get_flags(PurpleChatUser *cb)
- PurpleChatUserPrivate *priv;
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), PURPLE_CHAT_USER_NONE);
- priv = purple_chat_user_get_instance_private(cb);
-purple_chat_user_set_ui_data(PurpleChatUser *cb, gpointer ui_data)
- g_return_if_fail(PURPLE_IS_CHAT_USER(cb));
-purple_chat_user_get_ui_data(PurpleChatUser *cb)
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL);
-purple_chat_user_set_chat(PurpleChatUser *cb,
- PurpleChatConversation *chat)
- PurpleChatUserPrivate *priv;
- g_return_if_fail(PURPLE_IS_CHAT_USER(cb));
- priv = purple_chat_user_get_instance_private(cb);
- g_object_notify_by_pspec(G_OBJECT(cb), cu_properties[CU_PROP_CHAT]);
-PurpleChatConversation *
-purple_chat_user_get_chat(PurpleChatUser *cb)
- PurpleChatUserPrivate *priv;
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL);
- priv = purple_chat_user_get_instance_private(cb);
-purple_chat_user_is_buddy(PurpleChatUser *cb)
- PurpleChatUserPrivate *priv;
- g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), FALSE);
- priv = purple_chat_user_get_instance_private(cb);
-/**************************************************************************
- * GObject code for chat user
- **************************************************************************/
-/* Set method for GObject properties */
-purple_chat_user_set_property(GObject *obj, guint param_id, const GValue *value,
- PurpleChatUser *cb = PURPLE_CHAT_USER(obj);
- PurpleChatUserPrivate *priv =
- purple_chat_user_get_instance_private(cb);
- priv->chat = g_value_get_object(value);
- priv->name = g_value_dup_string(value);
- priv->alias = g_value_dup_string(value);
- priv->flags = g_value_get_flags(value);
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-/* Get method for GObject properties */
-purple_chat_user_get_property(GObject *obj, guint param_id, GValue *value,
- PurpleChatUser *cb = PURPLE_CHAT_USER(obj);
- g_value_set_object(value, purple_chat_user_get_chat(cb));
- g_value_set_string(value, purple_chat_user_get_name(cb));
- g_value_set_string(value, purple_chat_user_get_alias(cb));
- g_value_set_flags(value, purple_chat_user_get_flags(cb));
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-/* GObject initialization function */
-purple_chat_user_init(PurpleChatUser *user)
-/* Called when done constructing */
-purple_chat_user_constructed(GObject *object)
- PurpleChatUserPrivate *priv = purple_chat_user_get_instance_private(
- PURPLE_CHAT_USER(object));
- PurpleAccount *account;
- G_OBJECT_CLASS(purple_chat_user_parent_class)->constructed(object);
- account = purple_conversation_get_account(PURPLE_CONVERSATION(priv->chat));
- if (purple_blist_find_buddy(account, priv->name) != NULL)
-/* GObject finalize function */
-purple_chat_user_finalize(GObject *object)
- PurpleChatUser *cb = PURPLE_CHAT_USER(object);
- PurpleChatUserPrivate *priv =
- purple_chat_user_get_instance_private(cb);
- purple_signal_emit(purple_conversations_get_handle(),
- "deleting-chat-user", cb);
- g_free(priv->alias_key);
- G_OBJECT_CLASS(purple_chat_user_parent_class)->finalize(object);
-/* Class initializer function */
-static void purple_chat_user_class_init(PurpleChatUserClass *klass)
- GObjectClass *obj_class = G_OBJECT_CLASS(klass);
- obj_class->constructed = purple_chat_user_constructed;
- obj_class->finalize = purple_chat_user_finalize;
- obj_class->get_property = purple_chat_user_get_property;
- obj_class->set_property = purple_chat_user_set_property;
- cu_properties[CU_PROP_CHAT] = g_param_spec_object("chat", "Chat",
- "The chat the buddy belongs to.", PURPLE_TYPE_CHAT_CONVERSATION,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS);
- cu_properties[CU_PROP_NAME] = g_param_spec_string("name", "Name",
- "Name of the chat user.", NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
- cu_properties[CU_PROP_ALIAS] = g_param_spec_string("alias", "Alias",
- "Alias of the chat user.", NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
- cu_properties[CU_PROP_FLAGS] = g_param_spec_flags("flags", "Buddy flags",
- "The flags for the chat user.",
- PURPLE_TYPE_CHAT_USER_FLAGS, PURPLE_CHAT_USER_NONE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
- g_object_class_install_properties(obj_class, CU_PROP_LAST, cu_properties);
-purple_chat_user_new(PurpleChatConversation *chat, const char *name,
- const char *alias, PurpleChatUserFlags flags)
- g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), NULL);
- g_return_val_if_fail(name != NULL, NULL);
- cb = g_object_new(PURPLE_TYPE_CHAT_USER,
--- a/libpurple/conversationtypes.h Sat Aug 22 02:58:07 2020 -0500
+++ b/libpurple/conversationtypes.h Sat Aug 22 03:45:42 2020 -0500
@@ -47,32 +47,7 @@
typedef struct _PurpleChatConversation PurpleChatConversation;
typedef struct _PurpleChatConversationClass PurpleChatConversationClass;
-typedef struct _PurpleChatUser PurpleChatUser;
- * @PURPLE_CHAT_USER_NONE: No flags
- * @PURPLE_CHAT_USER_VOICE: Voiced user or "Participant"
- * @PURPLE_CHAT_USER_HALFOP: Half-op
- * @PURPLE_CHAT_USER_OP: Channel Op or Moderator
- * @PURPLE_CHAT_USER_FOUNDER: Channel Founder
- * @PURPLE_CHAT_USER_TYPING: Currently typing
- * @PURPLE_CHAT_USER_AWAY: Currently away.
- * Flags applicable to users in Chats.
-typedef enum /*< flags >*/
- PURPLE_CHAT_USER_NONE = 0x0000,
- PURPLE_CHAT_USER_VOICE = 0x0001,
- PURPLE_CHAT_USER_HALFOP = 0x0002,
- PURPLE_CHAT_USER_OP = 0x0004,
- PURPLE_CHAT_USER_FOUNDER = 0x0008,
- PURPLE_CHAT_USER_TYPING = 0x0010,
- PURPLE_CHAT_USER_AWAY = 0x0020
+#include "purplechatuser.h" #include "purpleimconversation.h"
#include "conversation.h"
@@ -434,140 +409,6 @@
gboolean purple_chat_conversation_has_left(PurpleChatConversation *chat);
-/**************************************************************************/
-/* Chat Conversation User API */
-/**************************************************************************/
-#define PURPLE_TYPE_CHAT_USER purple_chat_user_get_type()
- * purple_chat_user_get_type:
- * Returns: The #GType for the ChatConversationBuddy object.
-G_DECLARE_FINAL_TYPE(PurpleChatUser, purple_chat_user, PURPLE, CHAT_USER,
- * purple_chat_user_set_chat:
- * @chat: The chat conversation that the buddy belongs to.
- * Set the chat conversation associated with this chat user.
-void purple_chat_user_set_chat(PurpleChatUser *cb,
- PurpleChatConversation *chat);
- * purple_chat_user_get_chat:
- * Get the chat conversation associated with this chat user.
- * Returns: (transfer none):
- * The chat conversation that the buddy belongs to.
-PurpleChatConversation *purple_chat_user_get_chat(PurpleChatUser *cb);
- * purple_chat_user_new:
- * @chat: The chat that the buddy belongs to.
- * Creates a new chat user
- * Returns: The new chat user
-PurpleChatUser *purple_chat_user_new(PurpleChatConversation *chat,
- const char *name, const char *alias, PurpleChatUserFlags flags);
- * purple_chat_user_set_ui_data:
- * @ui_data: A pointer to associate with this chat user.
- * Set the UI data associated with this chat user.
-void purple_chat_user_set_ui_data(PurpleChatUser *cb, gpointer ui_data);
- * purple_chat_user_get_ui_data:
- * Get the UI data associated with this chat user.
- * Returns: (transfer none):
- * The UI data associated with this chat user. This is a
- * convenience field provided to the UIs--it is not
- * used by the libpurple core.
-gpointer purple_chat_user_get_ui_data(PurpleChatUser *cb);
- * purple_chat_user_get_alias:
- * Get the alias of a chat user
- * Returns: The alias of the chat user.
-const char *purple_chat_user_get_alias(PurpleChatUser *cb);
- * purple_chat_user_get_name:
- * Get the name of a chat user
- * Returns: The name of the chat user.
-const char *purple_chat_user_get_name(PurpleChatUser *cb);
- * purple_chat_user_set_flags:
- * @flags: The new flags.
- * Set the flags of a chat user.
-void purple_chat_user_set_flags(PurpleChatUser *cb, PurpleChatUserFlags flags);
- * purple_chat_user_get_flags:
- * Get the flags of a chat user.
- * Returns: The flags of the chat user.
-PurpleChatUserFlags purple_chat_user_get_flags(PurpleChatUser *cb);
- * purple_chat_user_is_buddy:
- * Indicates if this chat user is on the buddy list.
- * Returns: TRUE if the chat user is on the buddy list.
-gboolean purple_chat_user_is_buddy(PurpleChatUser *cb);
#endif /* PURPLE_CONVERSATION_TYPES_H */
--- a/libpurple/meson.build Sat Aug 22 02:58:07 2020 -0500
+++ b/libpurple/meson.build Sat Aug 22 03:45:42 2020 -0500
@@ -49,6 +49,7 @@
'purpleaccountusersplit.c',
'purpleimconversation.c',
'purpleprotocolfactory.c',
@@ -127,6 +128,7 @@
'purpleaccountusersplit.h',
'purpleimconversation.h',
'purpleprotocolfactory.h',
@@ -200,13 +202,13 @@
'purpleimconversation.h',
--- a/po/POTFILES.in Sat Aug 22 02:58:07 2020 -0500
+++ b/po/POTFILES.in Sat Aug 22 03:45:42 2020 -0500
@@ -14,7 +14,6 @@
@@ -219,9 +218,6 @@
libpurple/protocols/simple/ntlm.c
libpurple/protocols/simple/simple.c
libpurple/protocols/simple/sipmsg.c
-libpurple/protocols/zephyr/error_message.c
-libpurple/protocols/zephyr/et_name.c
-libpurple/protocols/zephyr/init_et.c
libpurple/protocols/zephyr/ZAsyncLocate.c
libpurple/protocols/zephyr/ZCkAuth.c
libpurple/protocols/zephyr/ZCkIfNot.c
@@ -229,7 +225,6 @@
libpurple/protocols/zephyr/ZCmpUID.c
libpurple/protocols/zephyr/ZCmpUIDP.c
libpurple/protocols/zephyr/zephyr.c
-libpurple/protocols/zephyr/zephyr_err.c
libpurple/protocols/zephyr/ZFlsLocs.c
libpurple/protocols/zephyr/ZFlsSubs.c
libpurple/protocols/zephyr/ZFmtAuth.c
@@ -271,6 +266,8 @@
libpurple/protocols/zephyr/ZWait4Not.c
+libpurple/purplechatuser.c +libpurple/purpleimconversation.c libpurple/queuedoutputstream.c
libpurple/request-datasheet.c
@@ -283,12 +280,7 @@
libpurple/smiley-parser.c
-libpurple/sound-theme-loader.c
libpurple/tests/test_attention_type.c
libpurple/tests/test_image.c
@@ -328,7 +320,6 @@
@@ -339,7 +330,6 @@
pidgin/gtksmiley-manager.c
pidgin/gtkstatus-icon-theme.c
@@ -352,7 +342,6 @@
pidgin/pidgincontactcompletion.c
-pidgin/pidgindebugplugininfo.c
pidgin/pidgininvitedialog.c
@@ -361,12 +350,10 @@
-pidgin/plugins/cap/cap.c
pidgin/plugins/contact_priority.c
pidgin/plugins/disco/gtkdisco.c
pidgin/plugins/disco/xmppdisco.c
pidgin/plugins/disco/resources/disco.ui
-pidgin/plugins/extplacement.c
pidgin/plugins/gestures/gestures.c
pidgin/plugins/gestures/stroke.c
pidgin/plugins/gestures/stroke-draw.c
@@ -385,7 +372,6 @@
pidgin/plugins/musicmessaging/musicmessaging.c
pidgin/plugins/pidgininc.c
pidgin/plugins/screencap.c
pidgin/plugins/spellchk.c
@@ -407,8 +393,6 @@
pidgin/resources/Debug/debug.ui
pidgin/resources/Debug/plugininfo.ui
pidgin/resources/Conversations/invite_dialog.ui
-pidgin/win32/gtkdocklet-win32.c
pidgin/win32/gtkwin32dep.c
-pidgin/win32/MinimizeToTray.c