about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2020-03-24 22:13:14 +0100
committerMichael Vetter <jubalh@iodoru.org>2020-03-24 22:22:16 +0100
commitf13168005512fe4219741d9daf83681dd9ed3d63 (patch)
treea6a9697bc8f9580fb4689d3a423e9a29e5308ef9 /src/ui
parentfd090d384da14a6fe65cfb4ecb23f02c29d10eba (diff)
downloadprofani-tty-f13168005512fe4219741d9daf83681dd9ed3d63.tar.gz
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
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/console.c14
-rw-r--r--src/ui/window.c21
2 files changed, 25 insertions, 10 deletions
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;