diff options
author | John Hernandez <129467592+H3rnand3zzz@users.noreply.github.com> | 2023-04-04 00:06:04 +0200 |
---|---|---|
committer | John Hernandez <129467592+H3rnand3zzz@users.noreply.github.com> | 2023-04-10 11:04:20 +0200 |
commit | 0740d692dc401dd8614fcbc9f628086279ca3c93 (patch) | |
tree | 25184bded131a66afd30a25566afb1d6379392b3 | |
parent | 54cf152130fe7829740a20780533ca2c8d957135 (diff) | |
download | profani-tty-0740d692dc401dd8614fcbc9f628086279ca3c93.tar.gz |
Improve titlebar flexibility
Before this change, only nickname or JID (if no nickname set) is shown in the titlebar. Change allows to alter nickname/JID preference using already implemented /titlebar show jid|name setting. If both are set to "show", then it is displayed in "nickname <JID>" format.
-rw-r--r-- | src/command/cmd_defs.c | 4 | ||||
-rw-r--r-- | src/ui/window.c | 26 |
2 files changed, 19 insertions, 11 deletions
diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index b985464f..574b9656 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -1260,8 +1260,8 @@ static const struct cmd_t command_defs[] = { { "show tls", "Show or hide TLS indicator in the titlebar." }, { "show encwarn", "Enable or disable the unencrypted warning message in the titlebar." }, { "show resource", "Show or hide the current resource in the titlebar." }, - { "show name", "In case of a MUC. Show the MUC name in the titlebar." }, - { "show jid", "In case of a MUC. Show the JID in the titlebar." }) + { "show name", "Show the nickname or MUC name in the titlebar." }, + { "show jid", "Show the JID in the titlebar." }) CMD_EXAMPLES( "/titlebar up", "/titlebar show tls", diff --git a/src/ui/window.c b/src/ui/window.c index c1d5edf3..6718d0c5 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -312,18 +312,26 @@ win_get_title(ProfWin* window) { ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + + gboolean show_titlebar_jid = prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_JID); + gboolean show_titlebar_name = prefs_get_boolean(PREF_TITLEBAR_MUC_TITLE_NAME); jabber_conn_status_t conn_status = connection_get_status(); - if (conn_status == JABBER_CONNECTED) { - PContact contact = roster_get_contact(chatwin->barejid); - if (contact) { - const char* name = p_contact_name_or_jid(contact); - return strdup(name); - } else { - return strdup(chatwin->barejid); - } - } else { + + if (conn_status != JABBER_CONNECTED || !show_titlebar_name) { + return strdup(chatwin->barejid); + } + PContact contact = roster_get_contact(chatwin->barejid); + if (!contact) { return strdup(chatwin->barejid); } + const char* name = p_contact_name(contact); + if (name == NULL) { + return strdup(chatwin->barejid); + } + if(show_titlebar_jid){ + return g_strdup_printf("%s <%s>", name, chatwin->barejid); + } + return g_strdup_printf("%s", name); } case WIN_MUC: { |