aboutsummaryrefslogtreecommitdiff
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
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>
-rw-r--r--includes/hardinfo.h1
-rw-r--r--modules/benchmark/benches.c8
-rw-r--r--modules/devices.c2
-rw-r--r--shell/report.c2
-rw-r--r--shell/shell.c25
5 files changed, 23 insertions, 15 deletions
diff --git a/includes/hardinfo.h b/includes/hardinfo.h
index 1c705443..72ef780d 100644
--- a/includes/hardinfo.h
+++ b/includes/hardinfo.h
@@ -40,6 +40,7 @@ typedef enum {
MODULE_FLAG_NONE = 0,
MODULE_FLAG_NO_REMOTE = 1<<0,
MODULE_FLAG_HAS_HELP = 1<<1,
+ MODULE_FLAG_HIDE = 1<<2,
} ModuleEntryFlags;
typedef struct _ModuleEntry ModuleEntry;
diff --git a/modules/benchmark/benches.c b/modules/benchmark/benches.c
index de1aa507..945cfe15 100644
--- a/modules/benchmark/benches.c
+++ b/modules/benchmark/benches.c
@@ -101,16 +101,16 @@ static ModuleEntry entries[] = {
[BENCHMARK_SBCPU_ALL] =
{N_("SysBench CPU (Multi-thread)"), "processor.png", callback_benchmark_sbcpu_all, scan_benchmark_sbcpu_all, MODULE_FLAG_NONE},
[BENCHMARK_SBCPU_QUAD] =
- {N_("#SysBench CPU (Four threads)"), "processor.png", callback_benchmark_sbcpu_quad, scan_benchmark_sbcpu_quad, MODULE_FLAG_NONE},
+ {N_("#SysBench CPU (Four threads)"), "processor.png", callback_benchmark_sbcpu_quad, scan_benchmark_sbcpu_quad, MODULE_FLAG_HIDE},
[BENCHMARK_MEMORY_SINGLE] =
- {N_("#SysBench Memory (Single-thread)"), "memory.png", callback_benchmark_memory_single, scan_benchmark_memory_single, MODULE_FLAG_NONE},
+ {N_("#SysBench Memory (Single-thread)"), "memory.png", callback_benchmark_memory_single, scan_benchmark_memory_single, MODULE_FLAG_HIDE},
[BENCHMARK_MEMORY_DUAL] =
- {N_("#SysBench Memory (Two threads)"), "memory.png", callback_benchmark_memory_dual, scan_benchmark_memory_dual, MODULE_FLAG_NONE},
+ {N_("#SysBench Memory (Two threads)"), "memory.png", callback_benchmark_memory_dual, scan_benchmark_memory_dual, MODULE_FLAG_HIDE},
[BENCHMARK_MEMORY_QUAD] =
{N_("SysBench Memory"), "memory.png", callback_benchmark_memory_quad, scan_benchmark_memory_quad, MODULE_FLAG_NONE},
#if !GTK_CHECK_VERSION(3,0,0)
[BENCHMARK_GUI] =
- {N_("GPU Drawing"), "module.png", callback_gui, scan_gui, MODULE_FLAG_NO_REMOTE},
+ {N_("GPU Drawing"), "module.png", callback_gui, scan_gui, MODULE_FLAG_NO_REMOTE | MODULE_FLAG_HIDE},
#else
[BENCHMARK_GUI] = { "#" },
#endif
diff --git a/modules/devices.c b/modules/devices.c
index 14b3708c..a13213ba 100644
--- a/modules/devices.c
+++ b/modules/devices.c
@@ -110,7 +110,7 @@ static ModuleEntry entries[] = {
[ENTRY_DMI] = {N_("System DMI"), "computer.png", callback_dmi, scan_dmi, MODULE_FLAG_NONE},
[ENTRY_DMI_MEM] = {N_("Memory Devices"), "memory.png", callback_dmi_mem, scan_dmi_mem, MODULE_FLAG_NONE},
#if defined(ARCH_x86) || defined(ARCH_x86_64)
- [ENTRY_DTREE] = {"#"},
+ [ENTRY_DTREE] = {N_("Device Tree"), "devices.png", callback_dtree, scan_dtree, MODULE_FLAG_HIDE},
#else
[ENTRY_DTREE] = {N_("Device Tree"), "devices.png", callback_dtree, scan_dtree, MODULE_FLAG_NONE},
#endif /* x86 or x86_64 */
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 */