]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-chat.c
Merge commit 'jtellier/confirm-lose-accounts-settings'
[empathy.git] / libempathy-gtk / empathy-chat.c
index 0358b0ada14f4da1a3d333d3ad16351fcd8fe97e..c08b49c3fbe7a21b22be279d24dff67eb490e34f 100644 (file)
@@ -203,7 +203,8 @@ chat_new_connection_cb (EmpathyAccountManager *manager,
        EmpathyChatPriv *priv = GET_PRIV (chat);
        EmpathyAccount *account;
 
-       account = empathy_account_manager_get_account (manager, connection);
+       account = empathy_account_manager_get_account_for_connection (manager,
+               connection);
        if (!priv->tp_chat && account == priv->account &&
            priv->handle_type != TP_HANDLE_TYPE_NONE &&
            !EMP_STR_EMPTY (priv->id)) {
@@ -390,25 +391,20 @@ chat_send (EmpathyChat  *chat,
 
        chat_sent_message_add (chat, msg);
 
-       if (g_str_has_prefix (msg, "/clear")) {
+       if (strcmp (msg, "/clear") == 0) {
                empathy_chat_view_clear (chat->view);
                return;
        }
 
-       /* Blacklist messages begining by '/', except for "/me" and "/say"
-        * because they are handled in EmpathyMessage */
-       if (msg[0] == '/' &&
-           !g_str_has_prefix (msg, "/me") &&
-           !g_str_has_prefix (msg, "/say")) {
+       message = empathy_message_new_from_entry (msg);
+
+       if (message == NULL) {
                empathy_chat_view_append_event (chat->view,
                        _("Unsupported command"));
-               return;
+       } else {
+               empathy_tp_chat_send (priv->tp_chat, message);
+               g_object_unref (message);
        }
-
-       /* We can send the message */
-       message = empathy_message_new (msg);
-       empathy_tp_chat_send (priv->tp_chat, message);
-       g_object_unref (message);
 }
 
 static void
@@ -527,7 +523,7 @@ chat_message_received_cb (EmpathyTpChat  *tp_chat,
 
 static void
 chat_send_error_cb (EmpathyTpChat          *tp_chat,
-                   EmpathyMessage         *message,
+                   const gchar            *message_body,
                    TpChannelTextSendError  error_code,
                    EmpathyChat            *chat)
 {
@@ -556,7 +552,7 @@ chat_send_error_cb (EmpathyTpChat          *tp_chat,
        }
 
        str = g_strdup_printf (_("Error sending message '%s': %s"),
-                              empathy_message_get_body (message),
+                              message_body,
                               error);
        empathy_chat_view_append_event (chat->view, str);
        g_free (str);
@@ -1182,7 +1178,10 @@ build_part_message (guint           reason,
                break;
        case TP_CHANNEL_GROUP_CHANGE_REASON_KICKED:
                if (actor_name != NULL) {
-                       g_string_append_printf (s, _("%s was kicked by %s"),
+                       /* translators: reverse the order of these arguments
+                        * if the kicked should come before the kicker in your locale.
+                        */
+                       g_string_append_printf (s, _("%1$s was kicked by %2$s"),
                                name, actor_name);
                } else {
                        g_string_append_printf (s, _("%s was kicked"), name);
@@ -1190,7 +1189,10 @@ build_part_message (guint           reason,
                break;
        case TP_CHANNEL_GROUP_CHANGE_REASON_BANNED:
                if (actor_name != NULL) {
-                       g_string_append_printf (s, _("%s was banned by %s"),
+                       /* translators: reverse the order of these arguments
+                        * if the banned should come before the banner in your locale.
+                        */
+                       g_string_append_printf (s, _("%1$s was banned by %2$s"),
                                name, actor_name);
                } else {
                        g_string_append_printf (s, _("%s was banned"), name);
@@ -1766,7 +1768,8 @@ empathy_chat_set_tp_chat (EmpathyChat   *chat,
 
        priv->tp_chat = g_object_ref (tp_chat);
        connection = empathy_tp_chat_get_connection (priv->tp_chat);
-       priv->account = empathy_account_manager_get_account (priv->account_manager,
+       priv->account = empathy_account_manager_get_account_for_connection (
+                                                            priv->account_manager,
                                                             connection);
        g_object_ref (priv->account);