[empathy: 71/148] Adapt the manager code
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: svn-commits-list gnome org
- Subject: [empathy: 71/148] Adapt the manager code
- Date: Mon, 1 Jun 2009 12:13:32 -0400 (EDT)
commit 11bce5d5883782e2af15bd06a7a10b507b8bbef1
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed May 13 17:35:49 2009 +0200
Adapt the manager code
Adapt the manager code to react to the new possible hashing.
---
src/empathy-ft-manager.c | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c
index 40a1d7b..53bd7be 100644
--- a/src/empathy-ft-manager.c
+++ b/src/empathy-ft-manager.c
@@ -98,6 +98,9 @@ G_DEFINE_TYPE (EmpathyFTManager, empathy_ft_manager, G_TYPE_OBJECT);
static EmpathyFTManager *manager_singleton = NULL;
+static void ft_handler_hashing_started_cb (EmpathyFTHandler *handler,
+ EmpathyFTManager *manager);
+
static gchar *
ft_manager_format_interval (guint interval)
{
@@ -482,6 +485,11 @@ ft_handler_transfer_done_cb (EmpathyFTHandler *handler,
g_free (message);
g_free (first_line);
g_free (second_line);
+
+ if (empathy_ft_handler_is_incoming (handler) &&
+ empathy_ft_handler_get_use_hash (handler))
+ g_signal_connect (handler, "hashing-started",
+ G_CALLBACK (ft_handler_hashing_started_cb), manager);
}
static void
@@ -560,8 +568,9 @@ ft_handler_hashing_done_cb (EmpathyFTHandler *handler,
g_free (first_line);
g_free (second_line);
- g_signal_connect (handler, "transfer-started",
- G_CALLBACK (ft_handler_transfer_started_cb), manager);
+ if (!empathy_ft_handler_is_incoming (handler))
+ g_signal_connect (handler, "transfer-started",
+ G_CALLBACK (ft_handler_transfer_started_cb), manager);
}
static void
@@ -618,24 +627,26 @@ ft_manager_start_transfer (EmpathyFTManager *manager,
EmpathyFTHandler *handler)
{
EmpathyFTManagerPriv *priv;
- gboolean is_incoming;
+ gboolean is_outgoing;
priv = GET_PRIV (manager);
- is_incoming = empathy_ft_handler_is_incoming (handler);
+ is_outgoing = !empathy_ft_handler_is_incoming (handler);
- DEBUG ("Start transfer, is incoming %d", is_incoming);
+ DEBUG ("Start transfer, is outgoing %s",
+ is_outgoing ? "True" : "False");
/* now connect the signals */
g_signal_connect (handler, "transfer-error",
G_CALLBACK (ft_handler_transfer_error_cb), manager);
- if (is_incoming) {
- g_signal_connect (handler, "transfer-started",
- G_CALLBACK (ft_handler_transfer_started_cb), manager);
- } else {
+ if (is_outgoing && empathy_ft_handler_get_use_hash (handler)) {
g_signal_connect (handler, "hashing-started",
G_CALLBACK (ft_handler_hashing_started_cb), manager);
+ } else {
+ /* either incoming or outgoing without hash */
+ g_signal_connect (handler, "transfer-started",
+ G_CALLBACK (ft_handler_transfer_started_cb), manager);
}
empathy_ft_handler_start_transfer (handler);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]