mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
statusbar: reduce duplicate code
status_bar_new() and status_bar_active() are almost identical. Let's use one helper function to not duplicate code. I thought about renaming both functions into one and adding another parameter but didn't come up with a good name for the function that clearly describes what it does. So staying with current names + helper functions.
This commit is contained in:
parent
ea62c3f293
commit
2d00444702
@ -173,7 +173,7 @@ status_bar_inactive(const int win)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
status_bar_active(const int win, win_type_t wintype, char *identifier)
|
_create_tab(const int win, win_type_t wintype, char *identifier, gboolean highlight)
|
||||||
{
|
{
|
||||||
int true_win = win;
|
int true_win = win;
|
||||||
if (true_win == 0) {
|
if (true_win == 0) {
|
||||||
@ -182,7 +182,7 @@ status_bar_active(const int win, win_type_t wintype, char *identifier)
|
|||||||
|
|
||||||
StatusBarTab *tab = malloc(sizeof(StatusBarTab));
|
StatusBarTab *tab = malloc(sizeof(StatusBarTab));
|
||||||
tab->identifier = strdup(identifier);
|
tab->identifier = strdup(identifier);
|
||||||
tab->highlight = FALSE;
|
tab->highlight = highlight;
|
||||||
tab->window_type = wintype;
|
tab->window_type = wintype;
|
||||||
tab->display_name = NULL;
|
tab->display_name = NULL;
|
||||||
|
|
||||||
@ -207,39 +207,16 @@ status_bar_active(const int win, win_type_t wintype, char *identifier)
|
|||||||
status_bar_draw();
|
status_bar_draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
status_bar_active(const int win, win_type_t wintype, char *identifier)
|
||||||
|
{
|
||||||
|
_create_tab(win, wintype, identifier, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
status_bar_new(const int win, win_type_t wintype, char* identifier)
|
status_bar_new(const int win, win_type_t wintype, char* identifier)
|
||||||
{
|
{
|
||||||
int true_win = win;
|
_create_tab(win, wintype, identifier, TRUE);
|
||||||
if (true_win == 0) {
|
|
||||||
true_win = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusBarTab *tab = malloc(sizeof(StatusBarTab));
|
|
||||||
tab->identifier = strdup(identifier);
|
|
||||||
tab->highlight = TRUE;
|
|
||||||
tab->window_type = wintype;
|
|
||||||
tab->display_name = NULL;
|
|
||||||
|
|
||||||
if (tab->window_type == WIN_CHAT) {
|
|
||||||
PContact contact = roster_get_contact(tab->identifier);
|
|
||||||
if (contact && p_contact_name(contact)) {
|
|
||||||
tab->display_name = strdup(p_contact_name(contact));
|
|
||||||
} else {
|
|
||||||
char *pref = prefs_get_string(PREF_STATUSBAR_CHAT);
|
|
||||||
if (g_strcmp0("user", pref) == 0) {
|
|
||||||
Jid *jidp = jid_create(tab->identifier);
|
|
||||||
tab->display_name = strdup(jidp->localpart);
|
|
||||||
jid_destroy(jidp);
|
|
||||||
} else {
|
|
||||||
tab->display_name = strdup(tab->identifier);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
g_hash_table_replace(statusbar->tabs, GINT_TO_POINTER(true_win), tab);
|
|
||||||
|
|
||||||
status_bar_draw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user