feat(ui): add cons_show_warning() (issue #87)
All checks were successful
CI Code / Check coding style (pull_request) Successful in 25s
CI Code / Check spelling (pull_request) Successful in 14s
CI Code / Code Coverage (pull_request) Successful in 3m16s
CI Code / Linux (ubuntu) (pull_request) Successful in 5m7s
CI Code / Linux (arch) (pull_request) Successful in 6m50s
CI Code / Linux (debian) (pull_request) Successful in 8m26s
All checks were successful
CI Code / Check coding style (pull_request) Successful in 25s
CI Code / Check spelling (pull_request) Successful in 14s
CI Code / Code Coverage (pull_request) Successful in 3m16s
CI Code / Linux (ubuntu) (pull_request) Successful in 5m7s
CI Code / Linux (arch) (pull_request) Successful in 6m50s
CI Code / Linux (debian) (pull_request) Successful in 8m26s
The console had cons_show() for information and cons_show_error() for failures, but nothing in between, so callers reporting a condition the user should notice had to pick between hiding it and dressing it up as an error. cons_show_warning() prints through the new THEME_WARNING item, yellow by default, and prefixes the text with "Warning: ". Themes that do not set the "warning" colour fall back to that default, so the bundled themes need no change. Logging stays with the caller, as it does for the other console functions.
This commit is contained in:
@@ -87,6 +87,7 @@ theme_init(const char* const theme_name)
|
||||
g_hash_table_insert(defaults, strdup("main.help.header"), strdup("default"));
|
||||
g_hash_table_insert(defaults, strdup("main.trackbar"), strdup("default"));
|
||||
g_hash_table_insert(defaults, strdup("error"), strdup("red"));
|
||||
g_hash_table_insert(defaults, strdup("warning"), strdup("yellow"));
|
||||
g_hash_table_insert(defaults, strdup("incoming"), strdup("yellow"));
|
||||
g_hash_table_insert(defaults, strdup("mention"), strdup("yellow"));
|
||||
g_hash_table_insert(defaults, strdup("trigger"), strdup("yellow"));
|
||||
@@ -703,6 +704,9 @@ theme_attrs(theme_item_t attrs)
|
||||
case THEME_ERROR:
|
||||
_theme_prep_fgnd("error", lookup_str, &bold);
|
||||
break;
|
||||
case THEME_WARNING:
|
||||
_theme_prep_fgnd("warning", lookup_str, &bold);
|
||||
break;
|
||||
case THEME_INCOMING:
|
||||
_theme_prep_fgnd("incoming", lookup_str, &bold);
|
||||
break;
|
||||
|
||||
@@ -23,6 +23,7 @@ typedef enum {
|
||||
THEME_SPLASH,
|
||||
THEME_HELP_HEADER,
|
||||
THEME_ERROR,
|
||||
THEME_WARNING,
|
||||
THEME_INCOMING,
|
||||
THEME_MENTION,
|
||||
THEME_TRIGGER,
|
||||
|
||||
@@ -155,6 +155,20 @@ cons_show_error(const char* const msg, ...)
|
||||
cons_alert(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
cons_show_warning(const char* const msg, ...)
|
||||
{
|
||||
va_list arg;
|
||||
va_start(arg, msg);
|
||||
GString* fmt_msg = g_string_new(NULL);
|
||||
g_string_vprintf(fmt_msg, msg, arg);
|
||||
win_println(wins_get_console(), THEME_WARNING, "-", "Warning: %s", fmt_msg->str);
|
||||
g_string_free(fmt_msg, TRUE);
|
||||
va_end(arg);
|
||||
|
||||
cons_alert(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
cons_show_tlscert_summary(const TLSCertificate* cert)
|
||||
{
|
||||
|
||||
@@ -252,6 +252,8 @@ G_GNUC_PRINTF(1, 2)
|
||||
void cons_debug(const char* const msg, ...);
|
||||
G_GNUC_PRINTF(1, 2)
|
||||
void cons_show_error(const char* const cmd, ...);
|
||||
G_GNUC_PRINTF(1, 2)
|
||||
void cons_show_warning(const char* const msg, ...);
|
||||
void cons_show_contacts(GSList* list);
|
||||
void cons_show_roster(GSList* list);
|
||||
void cons_show_roster_group(const char* const group, GSList* list);
|
||||
|
||||
@@ -49,6 +49,18 @@ expect_any_cons_show_error(void)
|
||||
expect_any(cons_show_error, output);
|
||||
}
|
||||
|
||||
void
|
||||
expect_cons_show_warning(char* expected)
|
||||
{
|
||||
expect_string(cons_show_warning, output, expected);
|
||||
}
|
||||
|
||||
void
|
||||
expect_any_cons_show_warning(void)
|
||||
{
|
||||
expect_any(cons_show_warning, output);
|
||||
}
|
||||
|
||||
void
|
||||
expect_win_println(char* message)
|
||||
{
|
||||
@@ -845,6 +857,16 @@ cons_show_error(const char* const cmd, ...)
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void
|
||||
cons_show_warning(const char* const msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
vsnprintf(output, sizeof(output), msg, args);
|
||||
check_expected(output);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void
|
||||
cons_show_contacts(GSList* list)
|
||||
{
|
||||
|
||||
@@ -10,4 +10,6 @@ void expect_cons_show(char* expected);
|
||||
void expect_any_cons_show(void);
|
||||
void expect_cons_show_error(char* expected);
|
||||
void expect_any_cons_show_error(void);
|
||||
void expect_cons_show_warning(char* expected);
|
||||
void expect_any_cons_show_warning(void);
|
||||
void expect_win_println(char* message);
|
||||
|
||||
Reference in New Issue
Block a user