aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-chat.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-chat.c')
-rw-r--r--libempathy-gtk/empathy-chat.c41
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));
}