From f13168005512fe4219741d9daf83681dd9ed3d63 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 24 Mar 2020 22:13:14 +0100 Subject: titlebar: allow displaying MUC name and MUC jid `/titlebar use name|jid` -> `/titlebar show|hide name|jid` Fix https://github.com/profanity-im/profanity/issues/1284 --- src/ui/console.c | 14 +++++++++++--- src/ui/window.c | 21 ++++++++++++++------- 2 files changed, 25 insertions(+), 10 deletions(-) (limited to 'src/ui') diff --git a/src/ui/console.c b/src/ui/console.c index 8d2fb26d..360950a1 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -1159,9 +1159,17 @@ cons_titlebar_setting(void) cons_show("Titlebar presence (/titlebar) : OFF"); } - char *muctitle = prefs_get_string(PREF_TITLEBAR_MUC_TITLE); - cons_show("MUC window title (/titlebar) : %s", muctitle); - prefs_free_string(muctitle); + if (prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_NAME)) { + cons_show("Titlebar show MUC name (/titlebar) : ON"); + } else { + cons_show("Titlebar show MUC name (/titlebar) : OFF"); + } + + if (prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_JID)) { + cons_show("Titlebar show MUC JID (/titlebar) : ON"); + } else { + cons_show("Titlebar show MUC JID (/titlebar) : OFF"); + } } void diff --git a/src/ui/window.c b/src/ui/window.c index 9ccc19ee..7dc2f62d 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -300,14 +300,21 @@ win_get_title(ProfWin *window) ProfMucWin *mucwin = (ProfMucWin*) window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *use_as_name = prefs_get_string(PREF_TITLEBAR_MUC_TITLE); - if ((g_strcmp0(use_as_name, "name") == 0) && mucwin->room_name) { - prefs_free_string(use_as_name); - return strdup(mucwin->room_name); - } else { - prefs_free_string(use_as_name); - return strdup(mucwin->roomjid); + gboolean show_titlebar_jid = prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_JID); + gboolean show_titlebar_name = prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_NAME); + GString *title = g_string_new(""); + + if (show_titlebar_name) { + g_string_append(title, mucwin->room_name); + g_string_append(title, " "); + } + if (show_titlebar_jid) { + g_string_append(title, mucwin->roomjid); } + + char *title_str = title->str; + g_string_free(title, FALSE); + return title_str; } if (window->type == WIN_CONFIG) { ProfConfWin *confwin = (ProfConfWin*) window; -- cgit 1.4.1-2-gfad0