diff options
| author | Burt P <pburt0@gmail.com> | 2019-08-18 17:14:25 -0500 | 
|---|---|---|
| committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2019-08-22 23:09:35 +0200 | 
| commit | 9d825229c63d8618802749e294126ff6e118042a (patch) | |
| tree | aef6be6d59c6b0c9316e3f97b40c0b7419849bd5 | |
| parent | f6b11e254c38a94b307df4f027a51030a1fcbfa7 (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.h | 1 | ||||
| -rw-r--r-- | modules/benchmark/benches.c | 8 | ||||
| -rw-r--r-- | modules/devices.c | 2 | ||||
| -rw-r--r-- | shell/report.c | 2 | ||||
| -rw-r--r-- | shell/shell.c | 25 | 
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 */ | 
