mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Merge pull request #1817 from H3rnand3zzz/feature/full-jid
JID Display in Titlebar and Fix
This commit is contained in:
commit
e3beac414e
@ -1260,8 +1260,8 @@ static const struct cmd_t command_defs[] = {
|
|||||||
{ "show tls", "Show or hide TLS indicator in the titlebar." },
|
{ "show tls", "Show or hide TLS indicator in the titlebar." },
|
||||||
{ "show encwarn", "Enable or disable the unencrypted warning message 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 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 name", "Show the nickname or MUC name in the titlebar." },
|
||||||
{ "show jid", "In case of a MUC. Show the JID in the titlebar." })
|
{ "show jid", "Show the JID in the titlebar." })
|
||||||
CMD_EXAMPLES(
|
CMD_EXAMPLES(
|
||||||
"/titlebar up",
|
"/titlebar up",
|
||||||
"/titlebar show tls",
|
"/titlebar show tls",
|
||||||
|
@ -182,10 +182,7 @@ status_bar_inactive(const int win)
|
|||||||
void
|
void
|
||||||
_create_tab(const int win, win_type_t wintype, char* identifier, gboolean highlight)
|
_create_tab(const int win, win_type_t wintype, char* identifier, gboolean highlight)
|
||||||
{
|
{
|
||||||
int true_win = win;
|
int true_win = win == 0 ? 10 : win;
|
||||||
if (true_win == 0) {
|
|
||||||
true_win = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusBarTab* tab = malloc(sizeof(StatusBarTab));
|
StatusBarTab* tab = malloc(sizeof(StatusBarTab));
|
||||||
tab->identifier = strdup(identifier);
|
tab->identifier = strdup(identifier);
|
||||||
@ -198,11 +195,12 @@ _create_tab(const int win, win_type_t wintype, char* identifier, gboolean highli
|
|||||||
if (roster_exists()) {
|
if (roster_exists()) {
|
||||||
contact = roster_get_contact(tab->identifier);
|
contact = roster_get_contact(tab->identifier);
|
||||||
}
|
}
|
||||||
if (contact && p_contact_name(contact)) {
|
const char* pcontact_name = contact ? p_contact_name(contact) : NULL;
|
||||||
tab->display_name = strdup(p_contact_name(contact));
|
auto_char char* pref = prefs_get_string(PREF_STATUSBAR_CHAT);
|
||||||
} else {
|
|
||||||
char* pref = prefs_get_string(PREF_STATUSBAR_CHAT);
|
|
||||||
if (g_strcmp0("user", pref) == 0) {
|
if (g_strcmp0("user", pref) == 0) {
|
||||||
|
if (pcontact_name) {
|
||||||
|
tab->display_name = strdup(pcontact_name);
|
||||||
|
} else {
|
||||||
Jid* jidp = jid_create(tab->identifier);
|
Jid* jidp = jid_create(tab->identifier);
|
||||||
if (jidp) {
|
if (jidp) {
|
||||||
tab->display_name = jidp->localpart != NULL ? strdup(jidp->localpart) : strdup(jidp->barejid);
|
tab->display_name = jidp->localpart != NULL ? strdup(jidp->localpart) : strdup(jidp->barejid);
|
||||||
@ -210,11 +208,10 @@ _create_tab(const int win, win_type_t wintype, char* identifier, gboolean highli
|
|||||||
} else {
|
} else {
|
||||||
tab->display_name = strdup(tab->identifier);
|
tab->display_name = strdup(tab->identifier);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
tab->display_name = strdup(tab->identifier);
|
tab->display_name = strdup(tab->identifier);
|
||||||
}
|
}
|
||||||
g_free(pref);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_hash_table_replace(statusbar->tabs, GINT_TO_POINTER(true_win), tab);
|
g_hash_table_replace(statusbar->tabs, GINT_TO_POINTER(true_win), tab);
|
||||||
@ -518,12 +515,17 @@ _status_bar_draw_maintext(int pos)
|
|||||||
const char* maintext = NULL;
|
const char* maintext = NULL;
|
||||||
auto_jid Jid* jidp = NULL;
|
auto_jid Jid* jidp = NULL;
|
||||||
auto_char char* self = prefs_get_string(PREF_STATUSBAR_SELF);
|
auto_char char* self = prefs_get_string(PREF_STATUSBAR_SELF);
|
||||||
|
|
||||||
if (statusbar->prompt) {
|
if (statusbar->prompt) {
|
||||||
mvwprintw(statusbar_win, 0, pos, "%s", statusbar->prompt);
|
mvwprintw(statusbar_win, 0, pos, "%s", statusbar->prompt);
|
||||||
return utf8_display_len(statusbar->prompt);
|
return utf8_display_len(statusbar->prompt);
|
||||||
} else if (g_strcmp0(self, "off") == 0) {
|
}
|
||||||
|
|
||||||
|
if (g_strcmp0(self, "off") == 0) {
|
||||||
return pos;
|
return pos;
|
||||||
} else if (statusbar->fulljid) {
|
}
|
||||||
|
|
||||||
|
if (statusbar->fulljid) {
|
||||||
jidp = jid_create(statusbar->fulljid);
|
jidp = jid_create(statusbar->fulljid);
|
||||||
if (g_strcmp0(self, "user") == 0) {
|
if (g_strcmp0(self, "user") == 0) {
|
||||||
maintext = jidp->localpart;
|
maintext = jidp->localpart;
|
||||||
@ -538,6 +540,28 @@ _status_bar_draw_maintext(int pos)
|
|||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (statusbar->fulljid) {
|
||||||
|
auto_char char* pref = prefs_get_string(PREF_STATUSBAR_SELF);
|
||||||
|
|
||||||
|
if (g_strcmp0(pref, "off") == 0) {
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
if (g_strcmp0(pref, "user") == 0) {
|
||||||
|
Jid* jidp = jid_create(statusbar->fulljid);
|
||||||
|
mvwprintw(statusbar_win, 0, pos, "%s", jidp->localpart);
|
||||||
|
jid_destroy(jidp);
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
if (g_strcmp0(pref, "barejid") == 0) {
|
||||||
|
Jid* jidp = jid_create(statusbar->fulljid);
|
||||||
|
mvwprintw(statusbar_win, 0, pos, "%s", jidp->barejid);
|
||||||
|
jid_destroy(jidp);
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
mvwprintw(statusbar_win, 0, pos, "%s", statusbar->fulljid);
|
||||||
|
}
|
||||||
|
|
||||||
gboolean actlist_tabmode = _tabmode_is_actlist();
|
gboolean actlist_tabmode = _tabmode_is_actlist();
|
||||||
auto_gchar gchar* maintext_ = NULL;
|
auto_gchar gchar* maintext_ = NULL;
|
||||||
if (actlist_tabmode) {
|
if (actlist_tabmode) {
|
||||||
|
@ -312,18 +312,26 @@ win_get_title(ProfWin* window)
|
|||||||
{
|
{
|
||||||
ProfChatWin* chatwin = (ProfChatWin*)window;
|
ProfChatWin* chatwin = (ProfChatWin*)window;
|
||||||
assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
|
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();
|
jabber_conn_status_t conn_status = connection_get_status();
|
||||||
if (conn_status == JABBER_CONNECTED) {
|
|
||||||
|
if (conn_status != JABBER_CONNECTED || !show_titlebar_name) {
|
||||||
|
return strdup(chatwin->barejid);
|
||||||
|
}
|
||||||
PContact contact = roster_get_contact(chatwin->barejid);
|
PContact contact = roster_get_contact(chatwin->barejid);
|
||||||
if (contact) {
|
if (!contact) {
|
||||||
const char* name = p_contact_name_or_jid(contact);
|
|
||||||
return strdup(name);
|
|
||||||
} else {
|
|
||||||
return strdup(chatwin->barejid);
|
return strdup(chatwin->barejid);
|
||||||
}
|
}
|
||||||
} else {
|
const char* name = p_contact_name(contact);
|
||||||
|
if (name == NULL) {
|
||||||
return strdup(chatwin->barejid);
|
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:
|
case WIN_MUC:
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user