--- a/libpurple/protocol.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocol.c Tue Jul 13 15:23:59 2021 -0500
@@ -28,6 +28,7 @@
@@ -36,6 +37,7 @@
PurpleProtocolOptions options;
@@ -69,6 +71,17 @@
+purple_protocol_set_description(PurpleProtocol *protocol, const gchar *description) { + PurpleProtocolPrivate *priv = NULL; + priv = purple_protocol_get_instance_private(protocol); + g_free(priv->description); + priv->description = g_strdup(description); + g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_DESCRIPTION]); purple_protocol_set_options(PurpleProtocol *protocol,
PurpleProtocolOptions options)
@@ -96,6 +109,9 @@
g_value_set_string(value, purple_protocol_get_name(protocol));
+ g_value_set_string(value, purple_protocol_get_description(protocol)); g_value_set_flags(value, purple_protocol_get_options(protocol));
@@ -118,6 +134,9 @@
purple_protocol_set_name(protocol, g_value_get_string(value));
+ purple_protocol_set_description(protocol, g_value_get_string(value)); purple_protocol_set_options(protocol, g_value_get_flags(value));
@@ -141,7 +160,7 @@
g_clear_pointer(&priv->id, g_free);
g_clear_pointer(&priv->name, g_free);
+ g_clear_pointer(&priv->description, g_free); /* I'm not sure that we can finalize a protocol plugin if an account is
* still using it.. Right now accounts don't ref protocols, but maybe
@@ -203,6 +222,17 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * PurpleProtocol::description: + * The description to show in user interface for the protocol. + properties[PROP_DESCRIPTION] = g_param_spec_string( + "description", "description", + "The description of the protocol to show in the user interface", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); * PurpleProtocol::options:
* The #PurpleProtocolOptions for the protocol.
@@ -242,6 +272,17 @@
+purple_protocol_get_description(PurpleProtocol *protocol) { + PurpleProtocolPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL); + priv = purple_protocol_get_instance_private(protocol); + return priv->description; purple_protocol_get_options(PurpleProtocol *protocol) {
PurpleProtocolPrivate *priv = NULL;
--- a/libpurple/protocol.h Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocol.h Tue Jul 13 15:23:59 2021 -0500
@@ -199,6 +199,18 @@
const gchar *purple_protocol_get_name(PurpleProtocol *protocol);
+ * purple_protocol_get_description: + * @protocol: The #PurpleProtocol instance. + * Gets the description of a protocol. + * Returns: The Description of the protocol. +const gchar *purple_protocol_get_description(PurpleProtocol *protocol); * purple_protocol_get_options:
* @protocol: The #PurpleProtocol instance.
--- a/libpurple/protocols/bonjour/bonjour.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/bonjour/bonjour.c Tue Jul 13 15:23:59 2021 -0500
@@ -753,6 +753,7 @@
+ "description", "Bonjour is a serverless protocol, developed by Apple", "options", OPT_PROTO_NO_PASSWORD,
--- a/libpurple/protocols/facebook/facebook.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/facebook/facebook.c Tue Jul 13 15:23:59 2021 -0500
@@ -1706,6 +1706,7 @@
fb_protocol = g_object_new(FACEBOOK_TYPE_PROTOCOL,
+ "description", "Facebook is a chat protocol, developed by Facebook", "options", OPT_PROTO_CHAT_TOPIC,
--- a/libpurple/protocols/gg/gg.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/gg/gg.c Tue Jul 13 15:23:59 2021 -0500
@@ -1209,6 +1209,7 @@
+ "description", "Gadu-Gadu is a Polish instant messaging client", --- a/libpurple/protocols/irc/irc.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/irc/irc.c Tue Jul 13 15:23:59 2021 -0500
@@ -1135,6 +1135,7 @@
+ "description", "Internet Relay Chat (IRC) is a text-based chat system", "options", OPT_PROTO_CHAT_TOPIC | OPT_PROTO_PASSWORD_OPTIONAL |
OPT_PROTO_SLASH_COMMANDS_NATIVE,
--- a/libpurple/protocols/jabber/xmpp.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/jabber/xmpp.c Tue Jul 13 15:23:59 2021 -0500
@@ -146,6 +146,7 @@
+ "description", "Extensible Messaging and Presence Protocol for IM, voice and video", --- a/libpurple/protocols/novell/novell.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/novell/novell.c Tue Jul 13 15:23:59 2021 -0500
@@ -3625,6 +3625,7 @@
+ "description", "GroupWise is a messaging and collaboration platform from Micro Focus", --- a/libpurple/protocols/sametime/sametime.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/sametime/sametime.c Tue Jul 13 15:23:59 2021 -0500
@@ -68,6 +68,7 @@
#define PROTOCOL_ID "prpl-meanwhile"
#define PROTOCOL_NAME "Sametime"
+#define PROTOCOL_DESCRIPTION "Sametime chat by Lotus" /* considering that there's no display of this information for protocols,
@@ -5385,6 +5386,7 @@
+ "description", PROTOCOL_DESCRIPTION, --- a/libpurple/protocols/silc/silc.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/silc/silc.c Tue Jul 13 15:23:59 2021 -0500
@@ -2341,6 +2341,7 @@
SILCPURPLE_TYPE_PROTOCOL,
+ "description", "SILC - Secure Internet Live Conferencing protocol", "options", OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME |
OPT_PROTO_PASSWORD_OPTIONAL |
OPT_PROTO_SLASH_COMMANDS_NATIVE,
--- a/libpurple/protocols/zephyr/zephyr.c Tue Jul 13 14:56:02 2021 -0500
+++ b/libpurple/protocols/zephyr/zephyr.c Tue Jul 13 15:23:59 2021 -0500
@@ -1713,6 +1713,7 @@
+ "description", "Zephyr is an instant messaging protocol, created at MIT", "options", OPT_PROTO_CHAT_TOPIC | OPT_PROTO_NO_PASSWORD,