aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2019-08-18 17:14:25 -0500
committerLeandro A. F. Pereira <leandro@hardinfo.org>2019-08-22 23:09:35 +0200
commit9d825229c63d8618802749e294126ff6e118042a (patch)
treeaef6be6d59c6b0c9316e3f97b40c0b7419849bd5 /shell
parentf6b11e254c38a94b307df4f027a51030a1fcbfa7 (diff)
various: entry hide flag, fix text format report, fix key_*() funcs
* fix key_is_highlighted() and key_wants_details() so that they don't look for flags in the label. * fix -r -f text, g_hash-related warnings from icon cache * add MODULE_FLAG_HIDE flag to hide module entries instead of using the '#' at the beginning of string hack, which didn't work everywhere, and screwed up translated strings. * hide GPU Drawing benchmark See: https://github.com/lpereira/hardinfo/issues/329 Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/report.c2
-rw-r--r--shell/shell.c25
2 files changed, 17 insertions, 10 deletions
diff --git a/shell/report.c b/shell/report.c
index 549264de..3fcca668 100644
--- a/shell/report.c
+++ b/shell/report.c
@@ -126,6 +126,7 @@ gchar *make_icon_css(const gchar *file) {
}
void cache_icon(ReportContext *ctx, const gchar *file) {
+ if (!ctx->icon_data) return;
if (!g_hash_table_lookup(ctx->icon_data, file) )
g_hash_table_insert(ctx->icon_data, g_strdup(file), make_icon_css(file));
}
@@ -684,6 +685,7 @@ report_create_inner_from_module_list(ReportContext * ctx, GSList * modules)
for (entries = module->entries; entries; entries = entries->next) {
ShellModuleEntry *entry = (ShellModuleEntry *) entries->data;
+ if (entry->flags & MODULE_FLAG_HIDE) continue;
if (!params.gui_running)
fprintf(stderr, "\033[2K\033[40;32;1m %s\033[0m\n",
diff --git a/shell/shell.c b/shell/shell.c
index 5e13bde6..2f3a68fc 100644
--- a/shell/shell.c
+++ b/shell/shell.c
@@ -648,6 +648,7 @@ void shell_add_modules_to_gui(gpointer _shell_module, gpointer _shell_tree)
for (p = module->entries; p; p = g_slist_next(p)) {
GtkTreeIter child;
entry = (ShellModuleEntry *) p->data;
+ if (entry->flags & MODULE_FLAG_HIDE) continue;
gtk_tree_store_append(store, &child, &parent);
gtk_tree_store_set(store, &child, TREE_COL_NAME, entry->name,
@@ -2165,17 +2166,21 @@ gboolean key_is_flagged(const gchar *key) {
}
gboolean key_is_highlighted(const gchar *key) {
- if (key_is_flagged(key)) {
- if (strchr(key, '*'))
- return TRUE;
+ gchar *flags;
+ key_get_components(key, &flags, NULL, NULL, NULL, NULL, TRUE);
+ if (flags && strchr(flags, '*')) {
+ g_free(flags);
+ return TRUE;
}
return FALSE;
}
gboolean key_wants_details(const gchar *key) {
- if (key_is_flagged(key)) {
- if (strchr(key, '!'))
- return TRUE;
+ gchar *flags;
+ key_get_components(key, &flags, NULL, NULL, NULL, NULL, TRUE);
+ if (flags && strchr(flags, '!')) {
+ g_free(flags);
+ return TRUE;
}
return FALSE;
}
@@ -2217,11 +2222,8 @@ void key_get_components(const gchar *key,
gchar **flags, gchar **tag, gchar **name, gchar **label, gchar **dis,
gboolean null_empty) {
- if (!key || !*key)
- return;
-
if (null_empty) {
-#define K_NULL_EMPTY(f) if (f && *f) { *f = NULL; }
+#define K_NULL_EMPTY(f) if (f) { *f = NULL; }
K_NULL_EMPTY(flags);
K_NULL_EMPTY(tag);
K_NULL_EMPTY(name);
@@ -2229,6 +2231,9 @@ void key_get_components(const gchar *key,
K_NULL_EMPTY(dis);
}
+ if (!key || !*key)
+ return;
+
const gchar *np = g_utf8_strchr(key+1, -1, '$') + 1;
if (*key == '$' && np) {
/* is flagged */