mirror of
https://github.com/profanity-im/profanity.git
synced 2025-01-03 14:57:42 -05:00
Moved otr properties to WIN_CHAT type
This commit is contained in:
parent
7b44ac97cc
commit
12d0d22ab3
@ -344,8 +344,8 @@ _ui_incoming_msg(const char * const from, const char * const message,
|
|||||||
if (window == NULL) {
|
if (window == NULL) {
|
||||||
window = wins_new(from, win_type);
|
window = wins_new(from, win_type);
|
||||||
#ifdef HAVE_LIBOTR
|
#ifdef HAVE_LIBOTR
|
||||||
if (otr_is_secure(from)) {
|
if (win_type == WIN_CHAT && otr_is_secure(from)) {
|
||||||
window->is_otr = TRUE;
|
window->wins.chat.is_otr = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
win_created = TRUE;
|
win_created = TRUE;
|
||||||
@ -615,7 +615,7 @@ _ui_close_connected_win(int index)
|
|||||||
} else if ((win_type == WIN_CHAT) || (win_type == WIN_PRIVATE)) {
|
} else if ((win_type == WIN_CHAT) || (win_type == WIN_PRIVATE)) {
|
||||||
#ifdef HAVE_LIBOTR
|
#ifdef HAVE_LIBOTR
|
||||||
ProfWin *window = wins_get_by_num(index);
|
ProfWin *window = wins_get_by_num(index);
|
||||||
if (window->is_otr) {
|
if (win_is_otr(window)) {
|
||||||
otr_end_session(window->from);
|
otr_end_session(window->from);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -884,10 +884,14 @@ _ui_gone_secure(const char * const recipient, gboolean trusted)
|
|||||||
window = wins_new(recipient, WIN_CHAT);
|
window = wins_new(recipient, WIN_CHAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window->type != WIN_CHAT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FREE_SET_NULL(window->chat_resource);
|
FREE_SET_NULL(window->chat_resource);
|
||||||
|
|
||||||
window->is_otr = TRUE;
|
window->wins.chat.is_otr = TRUE;
|
||||||
window->is_trusted = trusted;
|
window->wins.chat.is_trusted = trusted;
|
||||||
if (trusted) {
|
if (trusted) {
|
||||||
win_save_print(window, '!', NULL, 0, THEME_OTR_STARTED_TRUSTED, "", "OTR session started (trusted).");
|
win_save_print(window, '!', NULL, 0, THEME_OTR_STARTED_TRUSTED, "", "OTR session started (trusted).");
|
||||||
} else {
|
} else {
|
||||||
@ -1006,8 +1010,11 @@ _ui_gone_insecure(const char * const recipient)
|
|||||||
{
|
{
|
||||||
ProfWin *window = wins_get_by_recipient(recipient);
|
ProfWin *window = wins_get_by_recipient(recipient);
|
||||||
if (window != NULL) {
|
if (window != NULL) {
|
||||||
window->is_otr = FALSE;
|
if (window->type != WIN_CHAT) {
|
||||||
window->is_trusted = FALSE;
|
return;
|
||||||
|
}
|
||||||
|
window->wins.chat.is_otr = FALSE;
|
||||||
|
window->wins.chat.is_trusted = FALSE;
|
||||||
win_save_print(window, '!', NULL, 0, THEME_OTR_ENDED, "", "OTR session ended.");
|
win_save_print(window, '!', NULL, 0, THEME_OTR_ENDED, "", "OTR session ended.");
|
||||||
|
|
||||||
if (wins_is_current(window)) {
|
if (wins_is_current(window)) {
|
||||||
@ -1023,8 +1030,11 @@ _ui_trust(const char * const recipient)
|
|||||||
{
|
{
|
||||||
ProfWin *window = wins_get_by_recipient(recipient);
|
ProfWin *window = wins_get_by_recipient(recipient);
|
||||||
if (window != NULL) {
|
if (window != NULL) {
|
||||||
window->is_otr = TRUE;
|
if (window->type != WIN_CHAT) {
|
||||||
window->is_trusted = TRUE;
|
return;
|
||||||
|
}
|
||||||
|
window->wins.chat.is_otr = TRUE;
|
||||||
|
window->wins.chat.is_trusted = TRUE;
|
||||||
win_save_print(window, '!', NULL, 0, THEME_OTR_TRUSTED, "", "OTR session trusted.");
|
win_save_print(window, '!', NULL, 0, THEME_OTR_TRUSTED, "", "OTR session trusted.");
|
||||||
|
|
||||||
if (wins_is_current(window)) {
|
if (wins_is_current(window)) {
|
||||||
@ -1040,8 +1050,11 @@ _ui_untrust(const char * const recipient)
|
|||||||
{
|
{
|
||||||
ProfWin *window = wins_get_by_recipient(recipient);
|
ProfWin *window = wins_get_by_recipient(recipient);
|
||||||
if (window != NULL) {
|
if (window != NULL) {
|
||||||
window->is_otr = TRUE;
|
if (window->type != WIN_CHAT) {
|
||||||
window->is_trusted = FALSE;
|
return;
|
||||||
|
}
|
||||||
|
window->wins.chat.is_otr = TRUE;
|
||||||
|
window->wins.chat.is_trusted = FALSE;
|
||||||
win_save_print(window, '!', NULL, 0, THEME_OTR_UNTRUSTED, "", "OTR session untrusted.");
|
win_save_print(window, '!', NULL, 0, THEME_OTR_UNTRUSTED, "", "OTR session untrusted.");
|
||||||
|
|
||||||
if (wins_is_current(window)) {
|
if (wins_is_current(window)) {
|
||||||
@ -1159,14 +1172,16 @@ static gboolean
|
|||||||
_ui_current_win_is_otr(void)
|
_ui_current_win_is_otr(void)
|
||||||
{
|
{
|
||||||
ProfWin *current = wins_get_current();
|
ProfWin *current = wins_get_current();
|
||||||
return current->is_otr;
|
return win_is_otr(current);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ui_current_set_otr(gboolean value)
|
_ui_current_set_otr(gboolean value)
|
||||||
{
|
{
|
||||||
ProfWin *current = wins_get_current();
|
ProfWin *current = wins_get_current();
|
||||||
current->is_otr = value;
|
if (current->type == WIN_CHAT) {
|
||||||
|
current->wins.chat.is_otr = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1377,7 +1392,7 @@ _ui_outgoing_msg(const char * const from, const char * const to,
|
|||||||
window = wins_new(to, WIN_CHAT);
|
window = wins_new(to, WIN_CHAT);
|
||||||
#ifdef HAVE_LIBOTR
|
#ifdef HAVE_LIBOTR
|
||||||
if (otr_is_secure(to)) {
|
if (otr_is_secure(to)) {
|
||||||
window->is_otr = TRUE;
|
window->wins.chat.is_otr = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -263,7 +263,7 @@ _show_privacy(void)
|
|||||||
int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET);
|
int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET);
|
||||||
|
|
||||||
ProfWin *current = wins_get_current();
|
ProfWin *current = wins_get_current();
|
||||||
if (!current->is_otr) {
|
if (!win_is_otr(current)) {
|
||||||
if (prefs_get_boolean(PREF_OTR_WARN)) {
|
if (prefs_get_boolean(PREF_OTR_WARN)) {
|
||||||
int unencrypted_attrs = theme_attrs(THEME_TITLE_UNENCRYPTED);
|
int unencrypted_attrs = theme_attrs(THEME_TITLE_UNENCRYPTED);
|
||||||
wprintw(win, " ");
|
wprintw(win, " ");
|
||||||
@ -289,7 +289,7 @@ _show_privacy(void)
|
|||||||
wattron(win, bracket_attrs);
|
wattron(win, bracket_attrs);
|
||||||
wprintw(win, "]");
|
wprintw(win, "]");
|
||||||
wattroff(win, bracket_attrs);
|
wattroff(win, bracket_attrs);
|
||||||
if (current->is_trusted) {
|
if (win_is_trusted(current)) {
|
||||||
int trusted_attrs = theme_attrs(THEME_TITLE_TRUSTED);
|
int trusted_attrs = theme_attrs(THEME_TITLE_TRUSTED);
|
||||||
wprintw(win, " ");
|
wprintw(win, " ");
|
||||||
wattron(win, bracket_attrs);
|
wattron(win, bracket_attrs);
|
||||||
|
@ -79,7 +79,9 @@ win_create(const char * const title, win_type_t type)
|
|||||||
ProfWin *new_win = malloc(sizeof(ProfWin));
|
ProfWin *new_win = malloc(sizeof(ProfWin));
|
||||||
int cols = getmaxx(stdscr);
|
int cols = getmaxx(stdscr);
|
||||||
|
|
||||||
switch (type) {
|
new_win->type = type;
|
||||||
|
|
||||||
|
switch (new_win->type) {
|
||||||
case WIN_CONSOLE:
|
case WIN_CONSOLE:
|
||||||
new_win->win = newpad(PAD_SIZE, (cols));
|
new_win->win = newpad(PAD_SIZE, (cols));
|
||||||
wbkgd(new_win->win, theme_attrs(THEME_TEXT));
|
wbkgd(new_win->win, theme_attrs(THEME_TEXT));
|
||||||
@ -116,10 +118,14 @@ win_create(const char * const title, win_type_t type)
|
|||||||
new_win->paged = 0;
|
new_win->paged = 0;
|
||||||
new_win->unread = 0;
|
new_win->unread = 0;
|
||||||
new_win->history_shown = 0;
|
new_win->history_shown = 0;
|
||||||
new_win->type = type;
|
|
||||||
new_win->is_otr = FALSE;
|
if (new_win->type == WIN_CHAT) {
|
||||||
new_win->is_trusted = FALSE;
|
new_win->wins.chat.is_otr = FALSE;
|
||||||
|
new_win->wins.chat.is_trusted = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
new_win->chat_resource = NULL;
|
new_win->chat_resource = NULL;
|
||||||
|
|
||||||
scrollok(new_win->win, TRUE);
|
scrollok(new_win->win, TRUE);
|
||||||
|
|
||||||
return new_win;
|
return new_win;
|
||||||
@ -178,6 +184,24 @@ win_show_subwin(ProfWin *window)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean win_is_otr(ProfWin *window)
|
||||||
|
{
|
||||||
|
if (window->type == WIN_CHAT) {
|
||||||
|
return window->wins.chat.is_otr;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean win_is_trusted(ProfWin *window)
|
||||||
|
{
|
||||||
|
if (window->type == WIN_CHAT) {
|
||||||
|
return window->wins.chat.is_trusted;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
win_free(ProfWin* window)
|
win_free(ProfWin* window)
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,6 @@ typedef enum {
|
|||||||
} win_type_t;
|
} win_type_t;
|
||||||
|
|
||||||
typedef struct prof_win_t {
|
typedef struct prof_win_t {
|
||||||
|
|
||||||
win_type_t type;
|
win_type_t type;
|
||||||
|
|
||||||
WINDOW *win;
|
WINDOW *win;
|
||||||
@ -75,11 +74,8 @@ typedef struct prof_win_t {
|
|||||||
char *chat_resource;
|
char *chat_resource;
|
||||||
int y_pos;
|
int y_pos;
|
||||||
int paged;
|
int paged;
|
||||||
gboolean is_otr;
|
|
||||||
gboolean is_trusted;
|
|
||||||
int unread;
|
int unread;
|
||||||
int history_shown;
|
int history_shown;
|
||||||
|
|
||||||
union {
|
union {
|
||||||
// WIN_CONSOLE
|
// WIN_CONSOLE
|
||||||
struct {
|
struct {
|
||||||
@ -89,6 +85,8 @@ typedef struct prof_win_t {
|
|||||||
|
|
||||||
// WIN_CHAT
|
// WIN_CHAT
|
||||||
struct {
|
struct {
|
||||||
|
gboolean is_otr;
|
||||||
|
gboolean is_trusted;
|
||||||
} chat;
|
} chat;
|
||||||
|
|
||||||
// WIN_MUC
|
// WIN_MUC
|
||||||
@ -136,5 +134,7 @@ void win_show_subwin(ProfWin *window);
|
|||||||
int win_roster_cols(void);
|
int win_roster_cols(void);
|
||||||
int win_occpuants_cols(void);
|
int win_occpuants_cols(void);
|
||||||
void win_printline_nowrap(WINDOW *win, char *msg);
|
void win_printline_nowrap(WINDOW *win, char *msg);
|
||||||
|
gboolean win_is_otr(ProfWin *window);
|
||||||
|
gboolean win_is_trusted(ProfWin *window);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user