diff options
-rw-r--r-- | src/empathy-ft-manager.c | 33 | ||||
-rw-r--r-- | src/empathy.c | 2 |
2 files changed, 25 insertions, 10 deletions
diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c index 638f11aff..26a242825 100644 --- a/src/empathy-ft-manager.c +++ b/src/empathy-ft-manager.c @@ -127,28 +127,42 @@ ft_manager_update_buttons (EmpathyFTManager *manager) GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; +<<<<<<< HEAD:src/empathy-ft-manager.c EmpathyTpFile *tp_file; TpFileTransferState state; +======= + EmpathyFTHandler *handler; +>>>>>>> Use the proper TP interface instead of emp_cli:src/empathy-ft-manager.c gboolean open_enabled = FALSE; gboolean abort_enabled = FALSE; + gboolean is_completed, is_cancelled; EmpathyFTManagerPriv *priv = GET_PRIV (manager); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - gtk_tree_model_get (model, &iter, COL_FT_OBJECT, &tp_file, -1); - state = empathy_tp_file_get_state (tp_file, NULL); + gtk_tree_model_get (model, &iter, COL_FT_OBJECT, &handler, -1); + + is_completed = empathy_ft_handler_is_completed (handler); + is_cancelled = empathy_ft_handler_is_cancelled (handler); /* I can open the file if the transfer is completed and was incoming */ +<<<<<<< HEAD:src/empathy-ft-manager.c open_enabled = (state == TP_FILE_TRANSFER_STATE_COMPLETED && empathy_tp_file_is_incoming (tp_file)); /* I can abort if the transfer is not already finished */ abort_enabled = (state != TP_FILE_TRANSFER_STATE_CANCELLED && state != TP_FILE_TRANSFER_STATE_COMPLETED); +======= + open_enabled = (is_completed && empathy_ft_handler_is_incoming (handler)); + + /* I can abort if the transfer is not already finished */ + abort_enabled = (is_cancelled == FALSE && is_completed == FALSE); +>>>>>>> Use the proper TP interface instead of emp_cli:src/empathy-ft-manager.c - g_object_unref (tp_file); + g_object_unref (handler); } gtk_widget_set_sensitive (priv->open_button, open_enabled); @@ -273,9 +287,9 @@ remove_finished_transfer_foreach (gpointer key, { EmpathyFTHandler *handler = key; EmpathyFTManager *manager = user_data; - EmpathyFTManagerPriv *priv = GET_PRIV (manager); - if (!g_hash_table_lookup (priv->cancellable_refs, handler)) + if (empathy_ft_handler_is_completed (handler) || + empathy_ft_handler_is_cancelled (handler)) { ft_manager_remove_file_from_model (manager, handler); return TRUE; @@ -316,8 +330,8 @@ static char * ft_manager_format_contact_info (EmpathyFTHandler *handler) { gboolean incoming; - const char *filename, *contact_name; - char *first_line_format, *retval; + const char *filename, *contact_name, *first_line_format; + char *retval; incoming = empathy_ft_handler_is_incoming (handler); contact_name = empathy_contact_get_name @@ -333,8 +347,6 @@ ft_manager_format_contact_info (EmpathyFTHandler *handler) retval = g_strdup_printf (first_line_format, filename, contact_name); - g_free (first_line_format); - return retval; } @@ -426,6 +438,9 @@ ft_handler_transfer_done_cb (EmpathyFTHandler *handler, /* remove the cancellable object */ g_hash_table_remove (priv->cancellable_refs, handler); + /* update buttons */ + ft_manager_update_buttons (manager); + g_free (message); g_free (first_line); g_free (second_line); diff --git a/src/empathy.c b/src/empathy.c index 1b3483fba..b0866340b 100644 --- a/src/empathy.c +++ b/src/empathy.c @@ -129,7 +129,7 @@ dispatch_cb (EmpathyDispatcher *dispatcher, factory = empathy_call_factory_get (); empathy_call_factory_claim_channel (factory, operation); - } else if (channel_type == EMP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER) { + } else if (channel_type == TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER) { EmpathyFTFactory *factory; factory = empathy_ft_factory_dup_singleton (); |