[empathy: 61/148] Cleanup after rebase v2



commit 9d33f23f7615d118c685c5e6352492a4ee7703f6
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Tue May 5 21:19:38 2009 +0200

    Cleanup after rebase v2
---
 libempathy/empathy-tp-file.c |   10 ++++++++
 src/empathy-event-manager.c  |   51 +++++++++++++++++++++++++++++------------
 src/empathy-ft-manager.c     |   10 ++++++++
 src/empathy-ft-manager.h     |    1 +
 src/empathy-main-window.c    |    4 +--
 5 files changed, 58 insertions(+), 18 deletions(-)

diff --git a/libempathy/empathy-tp-file.c b/libempathy/empathy-tp-file.c
index 7fa4548..a2a999b 100644
--- a/libempathy/empathy-tp-file.c
+++ b/libempathy/empathy-tp-file.c
@@ -812,5 +812,15 @@ empathy_tp_file_is_incoming (EmpathyTpFile *tp_file)
 void
 empathy_tp_file_cancel (EmpathyTpFile *tp_file)
 {
+  g_return_if_fail (EMPATHY_IS_TP_FILE (tp_file));
+
   close_channel_internal (tp_file, TRUE);
 }
+
+void
+empathy_tp_file_close (EmpathyTpFile *tp_file)
+{
+  g_return_if_fail (EMPATHY_IS_TP_FILE (tp_file));
+
+  close_channel_internal (tp_file, FALSE);
+}
diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c
index bd31b19..c8749bc 100644
--- a/src/empathy-event-manager.c
+++ b/src/empathy-event-manager.c
@@ -752,6 +752,32 @@ event_manager_muc_invite_got_contact_cb (EmpathyTpContactFactory *factory,
 }
 
 static void
+event_manager_ft_got_contact_cb (EmpathyTpContactFactory *factory,
+                                 EmpathyContact *contact,
+                                 const GError *error,
+                                 gpointer user_data,
+                                 GObject *object)
+{
+  EventManagerApproval *approval = (EventManagerApproval *) user_data;
+  char *header;
+
+  approval->contact = contact;
+
+  header = g_strdup_printf (_("Incoming file transfer from %s"),
+                            empathy_contact_get_name (approval->contact));
+
+  event_manager_add (approval->manager, approval->contact,
+      EMPATHY_IMAGE_DOCUMENT_SEND, header, NULL, approval,
+      event_channel_process_func, NULL);
+
+  /* FIXME better sound for incoming file transfers ?*/
+  empathy_sound_play (empathy_main_window_get (),
+                      EMPATHY_SOUND_CONVERSATION_NEW);
+
+  g_free (header);
+}
+
+static void
 event_manager_approve_channel_cb (EmpathyDispatcher *dispatcher,
   EmpathyDispatchOperation  *operation, EmpathyEventManager *manager)
 {
@@ -839,23 +865,18 @@ event_manager_approve_channel_cb (EmpathyDispatcher *dispatcher,
     }
   else if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER))
     {
-      EmpathyTpFile *file;
-      gchar *header;
-
-      file = EMPATHY_TP_FILE (empathy_dispatch_operation_get_channel_wrapper (operation));
-      approval->contact = g_object_ref (empathy_tp_file_get_contact (file));
-
-      header = g_strdup_printf (_("Incoming file transfer from %s"),
-        empathy_contact_get_name (approval->contact));
-
-      event_manager_add (manager, approval->contact, EMPATHY_IMAGE_DOCUMENT_SEND,
-        header, NULL, approval, event_channel_process_func, NULL);
+      TpChannel *channel;
+      TpConnection *connection;
+      TpHandle handle;
+      EmpathyTpContactFactory *factory;
 
-      /* FIXME better sound for incoming file transfers ?*/
-      empathy_sound_play (empathy_main_window_get (),
-        EMPATHY_SOUND_CONVERSATION_NEW);
+      channel = empathy_dispatch_operation_get_channel (operation);
+      handle = tp_channel_get_handle (channel, NULL);
 
-      g_free (header);
+      connection = tp_channel_borrow_connection (channel);
+      factory = empathy_tp_contact_factory_dup_singleton (connection);
+      empathy_tp_contact_factory_get_from_handle (factory, handle,
+        event_manager_ft_got_contact_cb, approval, NULL, G_OBJECT (manager));
     }
   else if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_STREAM_TUBE) ||
       !tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE))
diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c
index 91c1ef0..40a1d7b 100644
--- a/src/empathy-ft-manager.c
+++ b/src/empathy-ft-manager.c
@@ -1084,3 +1084,13 @@ empathy_ft_manager_display_error (EmpathyFTManager *manager,
   ft_manager_add_handler_to_list (manager, handler, error);
   gtk_window_present (GTK_WINDOW (priv->window));
 }
+
+void
+empathy_ft_manager_show (EmpathyFTManager *manager)
+{
+  EmpathyFTManagerPriv *priv = GET_PRIV (manager);
+
+  g_return_if_fail (EMPATHY_IS_FT_MANAGER (manager));
+
+  gtk_window_present (GTK_WINDOW (priv->window));
+}
diff --git a/src/empathy-ft-manager.h b/src/empathy-ft-manager.h
index 7a2fbcd..7200f3f 100644
--- a/src/empathy-ft-manager.h
+++ b/src/empathy-ft-manager.h
@@ -66,6 +66,7 @@ void empathy_ft_manager_add_handler (EmpathyFTManager *ft_manager,
     EmpathyFTHandler *handler);
 void empathy_ft_manager_display_error (EmpathyFTManager *ft_manager,
     EmpathyFTHandler *handler, const GError *error);
+void empathy_ft_manager_show (EmpathyFTManager *manager);
 
 G_END_DECLS
 
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index e538072..43e9224 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -696,12 +696,10 @@ main_window_view_show_ft_manager (GtkAction         *action,
 				  EmpathyMainWindow *window)
 {
 	EmpathyFTManager *manager;
-	GtkWidget *dialog;
 
 	manager = empathy_ft_manager_dup_singleton ();
-	dialog = empathy_ft_manager_get_dialog (manager);
+	empathy_ft_manager_show (manager);
 
-	gtk_window_present (GTK_WINDOW (dialog));
 	g_object_unref (manager);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]