static void new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog) { EmpathyAccountChooser *account_chooser; TpAccount *account; const gchar *room; const gchar *server = NULL; gchar *room_name = NULL; room = gtk_entry_get_text (GTK_ENTRY (dialog->entry_room)); server = gtk_entry_get_text (GTK_ENTRY (dialog->entry_server)); account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser); account = empathy_account_chooser_get_account (account_chooser); if (!EMP_STR_EMPTY (server)) { room_name = g_strconcat (room, "@", server, NULL); } else { room_name = g_strdup (room); } g_strstrip (room_name); DEBUG ("Requesting channel for '%s'", room_name); empathy_join_muc (account, room_name, empathy_get_current_action_time ()); g_free (room_name); }
void empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self, gint64 timestamp) { EmpathyChatManagerPriv *priv = GET_PRIV (self); ChatData *data; data = g_queue_pop_tail (priv->closed_queue); if (data == NULL) return; DEBUG ("Removing %s from closed queue and starting a chat with: %s", data->room ? "room" : "contact", data->id); if (data->room) empathy_join_muc (data->account, data->id, timestamp); else if (data->sms) empathy_sms_contact_id (data->account, data->id, timestamp, NULL, NULL); else empathy_chat_with_contact_id (data->account, data->id, timestamp, NULL, NULL); g_signal_emit (self, signals[CLOSED_CHATS_CHANGED], 0, g_queue_get_length (priv->closed_queue)); chat_data_free (data); }
static gboolean channel_name_activated_cb ( GtkLabel *label, gchar *uri, TpAccount *account) { empathy_join_muc (account, uri, empathy_get_current_action_time ()); return TRUE; }