diff options
Diffstat (limited to 'libempathy-gtk/empathy-chat.c')
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index c146941b3..0b61d53f5 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -44,7 +44,6 @@ #include <libempathy/empathy-utils.h> #include <libempathy/empathy-request-util.h> #include <libempathy/empathy-chatroom-manager.h> -#include <src/empathy-chat-window.h> #include "empathy-chat.h" #include "empathy-spell.h" @@ -158,6 +157,7 @@ typedef struct { enum { COMPOSING, NEW_MESSAGE, + PART_COMMAND_ENTERED, LAST_SIGNAL }; @@ -683,7 +683,6 @@ nick_command_supported (EmpathyChat *chat) EMP_IFACE_QUARK_CONNECTION_INTERFACE_RENAMING); } -#if 0 static gboolean part_command_supported (EmpathyChat *chat) { @@ -694,7 +693,6 @@ part_command_supported (EmpathyChat *chat) return tp_proxy_has_interface_by_id (channel, TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP); } -#endif static void chat_command_clear (EmpathyChat *chat, @@ -761,35 +759,12 @@ chat_command_join (EmpathyChat *chat, g_strfreev (rooms); } -void -empathy_chat_leave_chat (EmpathyChat *chat) -{ - EmpathyChatPriv *priv = GET_PRIV (chat); - - empathy_tp_chat_leave (priv->tp_chat, ""); -} - -#if 0 static void chat_command_part (EmpathyChat *chat, GStrv strv) { - EmpathyChatPriv *priv = GET_PRIV (chat); - EmpathyChat *chat_to_be_parted; - - if (strv[1] == NULL) { - empathy_tp_chat_leave (priv->tp_chat, ""); - return; - } - chat_to_be_parted = empathy_chat_window_find_chat (priv->account, strv[1]); - - if (chat_to_be_parted != NULL) { - empathy_tp_chat_leave (empathy_chat_get_tp_chat (chat_to_be_parted), strv[2]); - } else { - empathy_tp_chat_leave (priv->tp_chat, strv[1]); - } + g_signal_emit (chat, signals[PART_COMMAND_ENTERED], 0, strv); } -#endif static void chat_command_msg_internal (EmpathyChat *chat, @@ -940,12 +915,10 @@ static ChatCommandItem commands[] = { {"j", 2, 2, chat_command_join, NULL, N_("/j <chat room ID>: join a new chat room")}, -#if 0 /* FIXME: https://bugzilla.gnome.org/show_bug.cgi?id=643295 */ {"part", 1, 3, chat_command_part, part_command_supported, N_("/part [<chat room ID>] [<reason>]: leave the chat room, " "by default the current one")}, -#endif {"query", 2, 3, chat_command_query, NULL, N_("/query <contact ID> [<message>]: open a private chat")}, @@ -2983,6 +2956,16 @@ empathy_chat_class_init (EmpathyChatClass *klass) G_TYPE_NONE, 2, EMPATHY_TYPE_MESSAGE, G_TYPE_BOOLEAN); + signals[PART_COMMAND_ENTERED] = + g_signal_new ("part-command-entered", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, G_TYPE_STRV); + g_type_class_add_private (object_class, sizeof (EmpathyChatPriv)); } |