1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Reuse ui_new_chat_win

This commit is contained in:
James Booth 2015-04-29 21:42:29 +01:00
parent 0296a60390
commit 15b34692fd

View File

@ -1401,13 +1401,19 @@ ui_new_chat_win(const char * const barejid)
ProfWin *window = wins_new_chat(barejid); ProfWin *window = wins_new_chat(barejid);
ProfChatWin *chatwin = (ProfChatWin *)window; ProfChatWin *chatwin = (ProfChatWin *)window;
#ifdef HAVE_LIBOTR
if (otr_is_secure(barejid)) {
chatwin->is_otr = TRUE;
}
#endif
if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) { if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
_win_show_history(chatwin, barejid); _win_show_history(chatwin, barejid);
} }
// if the contact is offline, show a message // if the contact is offline, show a message
PContact contact = roster_get_contact(barejid); PContact contact = roster_get_contact(barejid);
if (contact != NULL) { if (contact) {
if (strcmp(p_contact_presence(contact), "offline") == 0) { if (strcmp(p_contact_presence(contact), "offline") == 0) {
const char * const show = p_contact_presence(contact); const char * const show = p_contact_presence(contact);
const char * const status = p_contact_status(contact); const char * const status = p_contact_status(contact);
@ -1421,37 +1427,13 @@ ui_new_chat_win(const char * const barejid)
void void
ui_outgoing_chat_msg(const char * const barejid, const char * const message, char *id) ui_outgoing_chat_msg(const char * const barejid, const char * const message, char *id)
{ {
PContact contact = roster_get_contact(barejid);
ProfWin *window = (ProfWin*)wins_get_chat(barejid); ProfWin *window = (ProfWin*)wins_get_chat(barejid);
int num = 0;
// create new window // create new window
if (window == NULL) { if (!window) {
window = wins_new_chat(barejid); window = ui_new_chat_win(barejid);
#ifdef HAVE_LIBOTR
ProfChatWin *chatwin = (ProfChatWin*)window;
if (otr_is_secure(barejid)) {
chatwin->is_otr = TRUE;
}
#endif
num = wins_get_num(window);
if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
_win_show_history(chatwin, barejid);
} }
if (contact != NULL) {
if (strcmp(p_contact_presence(contact), "offline") == 0) {
const char *show = p_contact_presence(contact);
const char *status = p_contact_status(contact);
win_show_status_string(window, barejid, show, status, NULL, "--", "offline");
}
}
// use existing window
} else {
num = wins_get_num(window);
}
ProfChatWin *chatwin = (ProfChatWin*)window; ProfChatWin *chatwin = (ProfChatWin*)window;
chat_state_active(chatwin->state); chat_state_active(chatwin->state);
@ -1460,47 +1442,27 @@ ui_outgoing_chat_msg(const char * const barejid, const char * const message, cha
} else { } else {
win_print(window, '-', NULL, 0, THEME_TEXT_ME, "me", message); win_print(window, '-', NULL, 0, THEME_TEXT_ME, "me", message);
} }
int num = wins_get_num(window);
ui_switch_win_num(num); ui_switch_win_num(num);
} }
void void
ui_outgoing_chat_msg_carbon(const char * const barejid, const char * const message) ui_outgoing_chat_msg_carbon(const char * const barejid, const char * const message)
{ {
PContact contact = roster_get_contact(barejid);
ProfWin *window = (ProfWin*)wins_get_chat(barejid); ProfWin *window = (ProfWin*)wins_get_chat(barejid);
int num = 0;
// create new window // create new window
if (window == NULL) { if (!window) {
window = wins_new_chat(barejid); window = ui_new_chat_win(barejid);
#ifdef HAVE_LIBOTR
ProfChatWin *chatwin = (ProfChatWin*)window;
if (otr_is_secure(barejid)) {
chatwin->is_otr = TRUE;
}
#endif
num = wins_get_num(window);
if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
_win_show_history(chatwin, barejid);
} }
if (contact != NULL) {
if (strcmp(p_contact_presence(contact), "offline") == 0) {
const char *show = p_contact_presence(contact);
const char *status = p_contact_status(contact);
win_show_status_string(window, barejid, show, status, NULL, "--", "offline");
}
}
// use existing window
} else {
num = wins_get_num(window);
}
ProfChatWin *chatwin = (ProfChatWin*)window; ProfChatWin *chatwin = (ProfChatWin*)window;
chat_state_active(chatwin->state); chat_state_active(chatwin->state);
win_print(window, '-', NULL, 0, THEME_TEXT_ME, "me", message); win_print(window, '-', NULL, 0, THEME_TEXT_ME, "me", message);
int num = wins_get_num(window);
status_bar_active(num); status_bar_active(num);
} }