--- a/ChangeLog.API Sat Dec 21 03:12:10 2019 -0500
+++ b/ChangeLog.API Sat Dec 21 20:14:34 2019 -0500
@@ -325,6 +325,10 @@
* account-authorization-requested-with-message signal
+ * file-recv-accept, file-recv-cancel, file-recv-complete, + file-recv-start, file-send-accept, file-send-cancel, + file-send-complete, file-send-start signals. Use + notify::status on #PurpleXfer objects instead. * network-configuration-changed signal
* PurpleAccountPrefsUiOps
--- a/doc/reference/libpurple/signals_xfer.xml Sat Dec 21 03:12:10 2019 -0500
+++ b/doc/reference/libpurple/signals_xfer.xml Sat Dec 21 20:14:34 2019 -0500
@@ -8,105 +8,13 @@
<refsect1 id="xfers.signals" role="signal_proto">
<title role="signal_proto.title">List of signals</title>
- "<link linkend="xfers-file-recv-accept">file-recv-accept</link>"
- "<link linkend="xfers-file-recv-start">file-recv-start</link>"
- "<link linkend="xfers-file-recv-cancel">file-recv-cancel</link>"
- "<link linkend="xfers-file-recv-complete">file-recv-complete</link>"
"<link linkend="xfers-file-recv-request">file-recv-request</link>"
- "<link linkend="xfers-file-send-accept">file-send-accept</link>"
- "<link linkend="xfers-file-send-start">file-send-start</link>"
- "<link linkend="xfers-file-send-cancel">file-send-cancel</link>"
- "<link linkend="xfers-file-send-complete">file-send-complete</link>"
<refsect1 id="xfers.signal-details" role="signals">
<title role="signals.title">Signal details</title>
-<refsect2 id="xfers-file-recv-accept" role="signal">
- <title>The <literal>"file-recv-accept"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an incoming file transfer has been accepted.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-recv-start" role="signal">
- <title>The <literal>"file-recv-start"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an incoming file transfer has been started.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-recv-cancel" role="signal">
- <title>The <literal>"file-recv-cancel"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an incoming file transfer has been canceled.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-recv-complete" role="signal">
- <title>The <literal>"file-recv-complete"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an incoming file transfer has been completed.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
<refsect2 id="xfers-file-recv-request" role="signal">
<title>The <literal>"file-recv-request"</literal> signal</title>
@@ -128,90 +36,6 @@
-<refsect2 id="xfers-file-send-accept" role="signal">
- <title>The <literal>"file-send-accept"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an outgoing file transfer has been accepted.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-send-start" role="signal">
- <title>The <literal>"file-send-start"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an outgoing file transfer has started.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-send-cancel" role="signal">
- <title>The <literal>"file-send-cancel"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an outgoing file transfer has been canceled.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
-<refsect2 id="xfers-file-send-complete" role="signal">
- <title>The <literal>"file-send-complete"</literal> signal</title>
-void user_function (PurpleXfer *xfer,
-Emitted when an outgoing file transfer has been completed.
- <variablelist role="params">
- <term><parameter>xfer</parameter> :</term>
- <listitem><simpara>The file transfer.</simpara></listitem>
- <term><parameter>data</parameter> :</term>
- <listitem><simpara>User data.</simpara></listitem>
--- a/libpurple/plugins/autoaccept.c Sat Dec 21 03:12:10 2019 -0500
+++ b/libpurple/plugins/autoaccept.c Sat Dec 21 20:14:34 2019 -0500
@@ -63,11 +63,17 @@
-auto_accept_complete_cb(PurpleXfer *xfer, PurpleXfer *my)
+auto_accept_complete_cb(PurpleXfer *xfer, G_GNUC_UNUSED GParamSpec *pspec, + G_GNUC_UNUSED gpointer data) - if (xfer == my && purple_prefs_get_bool(PREF_NOTIFY) &&
- !purple_conversations_find_im_with_account(purple_xfer_get_remote_user(xfer), purple_xfer_get_account(xfer)))
+ if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_DONE) { + if (purple_prefs_get_bool(PREF_NOTIFY) && + !purple_conversations_find_im_with_account( + purple_xfer_get_remote_user(xfer), + purple_xfer_get_account(xfer))) { char *message = g_strdup_printf(_("Autoaccepted file transfer of \"%s\" from \"%s\" completed."),
purple_xfer_get_filename(xfer), purple_xfer_get_remote_user(xfer));
purple_notify_info(NULL, _("Autoaccept complete"), message,
@@ -168,8 +174,8 @@
- purple_signal_connect(purple_xfers_get_handle(), "file-recv-complete", handle,
- PURPLE_CALLBACK(auto_accept_complete_cb), xfer);
+ g_signal_connect(xfer, "notify::status", + G_CALLBACK(auto_accept_complete_cb), NULL); purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_LOCAL);
--- a/libpurple/plugins/signals-test.c Sat Dec 21 03:12:10 2019 -0500
+++ b/libpurple/plugins/signals-test.c Sat Dec 21 20:14:34 2019 -0500
@@ -543,49 +543,6 @@
/**************************************************************************
- * File transfer signal callbacks
- **************************************************************************/
-ft_recv_accept_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file receive accepted\n");
-ft_send_accept_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file send accepted\n");
-ft_recv_start_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file receive started\n");
-ft_send_start_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file send started\n");
-ft_recv_cancel_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file receive cancelled\n");
-ft_send_cancel_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file send cancelled\n");
-ft_recv_complete_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file receive completed\n");
-ft_send_complete_cb(PurpleXfer *xfer, gpointer data) {
- purple_debug_misc("signals test", "file send completed\n");
-/**************************************************************************
**************************************************************************/
@@ -716,7 +673,6 @@
void *conn_handle = purple_connections_get_handle();
void *conv_handle = purple_conversations_get_handle();
void *accounts_handle = purple_accounts_get_handle();
- void *ft_handle = purple_xfers_get_handle();
void *sound_handle = purple_sounds_get_handle();
void *notify_handle = purple_notify_get_handle();
void *jabber_handle = purple_protocols_find("prpl-jabber");
@@ -833,24 +789,6 @@
purple_signal_connect(core_handle, "uri-handler",
plugin, PURPLE_CALLBACK(uri_handler), NULL);
- /* File transfer signals */
- purple_signal_connect(ft_handle, "file-recv-accept",
- plugin, PURPLE_CALLBACK(ft_recv_accept_cb), NULL);
- purple_signal_connect(ft_handle, "file-recv-start",
- plugin, PURPLE_CALLBACK(ft_recv_start_cb), NULL);
- purple_signal_connect(ft_handle, "file-recv-cancel",
- plugin, PURPLE_CALLBACK(ft_recv_cancel_cb), NULL);
- purple_signal_connect(ft_handle, "file-recv-complete",
- plugin, PURPLE_CALLBACK(ft_recv_complete_cb), NULL);
- purple_signal_connect(ft_handle, "file-send-accept",
- plugin, PURPLE_CALLBACK(ft_send_accept_cb), NULL);
- purple_signal_connect(ft_handle, "file-send-start",
- plugin, PURPLE_CALLBACK(ft_send_start_cb), NULL);
- purple_signal_connect(ft_handle, "file-send-cancel",
- plugin, PURPLE_CALLBACK(ft_send_cancel_cb), NULL);
- purple_signal_connect(ft_handle, "file-send-complete",
- plugin, PURPLE_CALLBACK(ft_send_complete_cb), NULL);
purple_signal_connect(sound_handle, "playing-sound-event", plugin,
PURPLE_CALLBACK(sound_playing_event_cb), NULL);
--- a/libpurple/xfer.c Sat Dec 21 03:12:10 2019 -0500
+++ b/libpurple/xfer.c Sat Dec 21 20:14:34 2019 -0500
@@ -181,44 +181,6 @@
g_object_notify_by_pspec(G_OBJECT(xfer), properties[PROP_STATUS]);
- if(priv->type == PURPLE_XFER_TYPE_SEND) {
- case PURPLE_XFER_STATUS_ACCEPTED:
- purple_signal_emit(purple_xfers_get_handle(), "file-send-accept", xfer);
- case PURPLE_XFER_STATUS_STARTED:
- purple_signal_emit(purple_xfers_get_handle(), "file-send-start", xfer);
- case PURPLE_XFER_STATUS_DONE:
- purple_signal_emit(purple_xfers_get_handle(), "file-send-complete", xfer);
- case PURPLE_XFER_STATUS_CANCEL_LOCAL:
- case PURPLE_XFER_STATUS_CANCEL_REMOTE:
- purple_signal_emit(purple_xfers_get_handle(), "file-send-cancel", xfer);
- } else if(priv->type == PURPLE_XFER_TYPE_RECEIVE) {
- case PURPLE_XFER_STATUS_ACCEPTED:
- purple_signal_emit(purple_xfers_get_handle(), "file-recv-accept", xfer);
- case PURPLE_XFER_STATUS_STARTED:
- purple_signal_emit(purple_xfers_get_handle(), "file-recv-start", xfer);
- case PURPLE_XFER_STATUS_DONE:
- purple_signal_emit(purple_xfers_get_handle(), "file-recv-complete", xfer);
- case PURPLE_XFER_STATUS_CANCEL_LOCAL:
- case PURPLE_XFER_STATUS_CANCEL_REMOTE:
- purple_signal_emit(purple_xfers_get_handle(), "file-recv-cancel", xfer);
@@ -2497,30 +2459,6 @@
void *handle = purple_xfers_get_handle();
- purple_signal_register(handle, "file-recv-accept",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-send-accept",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-recv-start",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-send-start",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-send-cancel",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-recv-cancel",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-send-complete",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "file-recv-complete",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
purple_signal_register(handle, "file-recv-request",
purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,