fields: unset when config unchanged.

This commit is contained in:
Alastair Poole 2021-04-04 21:42:10 +01:00
parent b082f121a0
commit d014049970
4 changed files with 106 additions and 95 deletions

View File

@ -4,6 +4,8 @@
#include <Ecore_File.h> #include <Ecore_File.h>
#include <Efreet.h> #include <Efreet.h>
Evisum_Config *_evisum_config;
static const char * static const char *
_config_file_path(void) _config_file_path(void)
{ {
@ -29,6 +31,12 @@ config_shutdown(void)
efreet_shutdown(); efreet_shutdown();
} }
Evisum_Config *
config(void)
{
return _evisum_config;
}
static void static void
_config_fail(const char *msg) _config_fail(const char *msg)
{ {
@ -95,6 +103,7 @@ config_load(void)
eet_close(f); eet_close(f);
} }
_evisum_config = cfg;
return cfg; return cfg;
} }

View File

@ -78,5 +78,6 @@ void config_init(void);
void config_shutdown(void); void config_shutdown(void);
Evisum_Config *config_load(void); Evisum_Config *config_load(void);
Eina_Bool config_save(Evisum_Config *); Eina_Bool config_save(Evisum_Config *);
Evisum_Config *config(void);
#endif #endif

View File

@ -14,7 +14,6 @@
#include "ui/ui_process_view.h" #include "ui/ui_process_view.h"
#include "ui/ui_process_list.h" #include "ui/ui_process_list.h"
Evisum_Config *_evisum_config;
int EVISUM_EVENT_CONFIG_CHANGED; int EVISUM_EVENT_CONFIG_CHANGED;
static Evas_Object *_slider_alpha = NULL; static Evas_Object *_slider_alpha = NULL;
@ -24,87 +23,87 @@ evisum_ui_config_save(Evisum_Ui *ui)
{ {
Eina_Bool notify = 0; Eina_Bool notify = 0;
if (!_evisum_config) return; if (!config()) return;
_evisum_config->effects = ui->effects; config()->effects = ui->effects;
_evisum_config->backgrounds = 0; config()->backgrounds = 0;
if (ui->proc.win) if (ui->proc.win)
{ {
if ((_evisum_config->proc.poll_delay != ui->proc.poll_delay) || if ((config()->proc.poll_delay != ui->proc.poll_delay) ||
(_evisum_config->proc.show_kthreads != ui->proc.show_kthreads) || (config()->proc.show_kthreads != ui->proc.show_kthreads) ||
(_evisum_config->proc.show_user != ui->proc.show_user) || (config()->proc.show_user != ui->proc.show_user) ||
(_evisum_config->proc.show_scroller != ui->proc.show_scroller) || (config()->proc.show_scroller != ui->proc.show_scroller) ||
(_evisum_config->proc.transparent != ui->proc.transparent) || (config()->proc.transparent != ui->proc.transparent) ||
(_evisum_config->proc.alpha != ui->proc.alpha) (config()->proc.alpha != ui->proc.alpha)
) )
{ {
notify = 1; notify = 1;
} }
_evisum_config->proc.width = ui->proc.width; config()->proc.width = ui->proc.width;
_evisum_config->proc.height = ui->proc.height; config()->proc.height = ui->proc.height;
_evisum_config->proc.x = ui->proc.x; config()->proc.x = ui->proc.x;
_evisum_config->proc.y = ui->proc.y; config()->proc.y = ui->proc.y;
_evisum_config->proc.restart = ui->proc.restart; config()->proc.restart = ui->proc.restart;
_evisum_config->proc.sort_type = ui->proc.sort_type; config()->proc.sort_type = ui->proc.sort_type;
_evisum_config->proc.sort_reverse = ui->proc.sort_reverse; config()->proc.sort_reverse = ui->proc.sort_reverse;
_evisum_config->proc.poll_delay = ui->proc.poll_delay; config()->proc.poll_delay = ui->proc.poll_delay;
_evisum_config->proc.show_kthreads = ui->proc.show_kthreads; config()->proc.show_kthreads = ui->proc.show_kthreads;
_evisum_config->proc.show_user = ui->proc.show_user; config()->proc.show_user = ui->proc.show_user;
_evisum_config->proc.show_scroller = ui->proc.show_scroller; config()->proc.show_scroller = ui->proc.show_scroller;
_evisum_config->proc.transparent = ui->proc.transparent; config()->proc.transparent = ui->proc.transparent;
_evisum_config->proc.alpha = ui->proc.alpha; config()->proc.alpha = ui->proc.alpha;
_evisum_config->proc.fields = ui->proc.fields; config()->proc.fields = ui->proc.fields;
proc_info_kthreads_show_set(ui->proc.show_kthreads); proc_info_kthreads_show_set(ui->proc.show_kthreads);
} }
if (ui->cpu.win) if (ui->cpu.win)
{ {
_evisum_config->cpu.width = ui->cpu.width; config()->cpu.width = ui->cpu.width;
_evisum_config->cpu.height = ui->cpu.height; config()->cpu.height = ui->cpu.height;
_evisum_config->cpu.x = ui->cpu.x; config()->cpu.x = ui->cpu.x;
_evisum_config->cpu.y = ui->cpu.y; config()->cpu.y = ui->cpu.y;
_evisum_config->cpu.restart = ui->cpu.restart; config()->cpu.restart = ui->cpu.restart;
} }
if (ui->mem.win) if (ui->mem.win)
{ {
_evisum_config->mem.width = ui->mem.width; config()->mem.width = ui->mem.width;
_evisum_config->mem.height = ui->mem.height; config()->mem.height = ui->mem.height;
_evisum_config->mem.x = ui->mem.x; config()->mem.x = ui->mem.x;
_evisum_config->mem.y = ui->mem.y; config()->mem.y = ui->mem.y;
_evisum_config->mem.restart = ui->mem.restart; config()->mem.restart = ui->mem.restart;
} }
if (ui->disk.win) if (ui->disk.win)
{ {
_evisum_config->disk.width = ui->disk.width; config()->disk.width = ui->disk.width;
_evisum_config->disk.height = ui->disk.height; config()->disk.height = ui->disk.height;
_evisum_config->disk.x = ui->disk.x; config()->disk.x = ui->disk.x;
_evisum_config->disk.y = ui->disk.y; config()->disk.y = ui->disk.y;
_evisum_config->disk.restart = ui->disk.restart; config()->disk.restart = ui->disk.restart;
} }
if (ui->sensors.win) if (ui->sensors.win)
{ {
_evisum_config->sensors.width = ui->sensors.width; config()->sensors.width = ui->sensors.width;
_evisum_config->sensors.height = ui->sensors.height; config()->sensors.height = ui->sensors.height;
_evisum_config->sensors.x = ui->sensors.x; config()->sensors.x = ui->sensors.x;
_evisum_config->sensors.y = ui->sensors.y; config()->sensors.y = ui->sensors.y;
_evisum_config->sensors.restart = ui->sensors.restart; config()->sensors.restart = ui->sensors.restart;
} }
if (ui->network.win) if (ui->network.win)
{ {
_evisum_config->network.width = ui->network.width; config()->network.width = ui->network.width;
_evisum_config->network.height = ui->network.height; config()->network.height = ui->network.height;
_evisum_config->network.x = ui->network.x; config()->network.x = ui->network.x;
_evisum_config->network.y = ui->network.y; config()->network.y = ui->network.y;
_evisum_config->network.restart = ui->network.restart; config()->network.restart = ui->network.restart;
} }
config_save(_evisum_config); config_save(config());
if (notify) if (notify)
ecore_event_add(EVISUM_EVENT_CONFIG_CHANGED, NULL, NULL, NULL); ecore_event_add(EVISUM_EVENT_CONFIG_CHANGED, NULL, NULL, NULL);
@ -125,58 +124,56 @@ evisum_ui_effects_enabled_set(Evisum_Ui *ui, Eina_Bool enabled)
void void
evisum_ui_config_load(Evisum_Ui *ui) evisum_ui_config_load(Evisum_Ui *ui)
{ {
_evisum_config = NULL; config_load();
_evisum_config = config_load(); ui->effects = config()->effects;
ui->effects = _evisum_config->effects; ui->proc.sort_type = config()->proc.sort_type;
ui->proc.sort_reverse = config()->proc.sort_reverse;
ui->proc.sort_type = _evisum_config->proc.sort_type; ui->proc.poll_delay = config()->proc.poll_delay;
ui->proc.sort_reverse = _evisum_config->proc.sort_reverse; ui->proc.show_kthreads = config()->proc.show_kthreads;
ui->proc.poll_delay = _evisum_config->proc.poll_delay; ui->proc.fields = config()->proc.fields;
ui->proc.show_kthreads = _evisum_config->proc.show_kthreads;
ui->proc.fields = _evisum_config->proc.fields;
proc_info_kthreads_show_set(ui->proc.show_kthreads); proc_info_kthreads_show_set(ui->proc.show_kthreads);
ui->proc.show_user = _evisum_config->proc.show_user; ui->proc.show_user = config()->proc.show_user;
ui->proc.show_scroller = _evisum_config->proc.show_scroller; ui->proc.show_scroller = config()->proc.show_scroller;
ui->proc.transparent = _evisum_config->proc.transparent; ui->proc.transparent = config()->proc.transparent;
ui->proc.alpha = _evisum_config->proc.alpha; ui->proc.alpha = config()->proc.alpha;
ui->proc.width = _evisum_config->proc.width; ui->proc.width = config()->proc.width;
ui->proc.height = _evisum_config->proc.height; ui->proc.height = config()->proc.height;
ui->proc.x = _evisum_config->proc.x; ui->proc.x = config()->proc.x;
ui->proc.y = _evisum_config->proc.y; ui->proc.y = config()->proc.y;
ui->proc.restart = _evisum_config->proc.restart; ui->proc.restart = config()->proc.restart;
ui->cpu.width = _evisum_config->cpu.width; ui->cpu.width = config()->cpu.width;
ui->cpu.height = _evisum_config->cpu.height; ui->cpu.height = config()->cpu.height;
ui->cpu.x = _evisum_config->cpu.x; ui->cpu.x = config()->cpu.x;
ui->cpu.y = _evisum_config->cpu.y; ui->cpu.y = config()->cpu.y;
ui->cpu.restart = _evisum_config->cpu.restart; ui->cpu.restart = config()->cpu.restart;
ui->mem.width = _evisum_config->mem.width; ui->mem.width = config()->mem.width;
ui->mem.height = _evisum_config->mem.height; ui->mem.height = config()->mem.height;
ui->mem.x = _evisum_config->mem.x; ui->mem.x = config()->mem.x;
ui->mem.y = _evisum_config->mem.y; ui->mem.y = config()->mem.y;
ui->mem.restart = _evisum_config->mem.restart; ui->mem.restart = config()->mem.restart;
ui->disk.width = _evisum_config->disk.width; ui->disk.width = config()->disk.width;
ui->disk.height = _evisum_config->disk.height; ui->disk.height = config()->disk.height;
ui->disk.x = _evisum_config->disk.x; ui->disk.x = config()->disk.x;
ui->disk.y = _evisum_config->disk.y; ui->disk.y = config()->disk.y;
ui->disk.restart = _evisum_config->disk.restart; ui->disk.restart = config()->disk.restart;
ui->sensors.width = _evisum_config->sensors.width; ui->sensors.width = config()->sensors.width;
ui->sensors.height = _evisum_config->sensors.height; ui->sensors.height = config()->sensors.height;
ui->sensors.x = _evisum_config->sensors.x; ui->sensors.x = config()->sensors.x;
ui->sensors.y = _evisum_config->sensors.y; ui->sensors.y = config()->sensors.y;
ui->sensors.restart = _evisum_config->sensors.restart; ui->sensors.restart = config()->sensors.restart;
ui->network.width = _evisum_config->network.width; ui->network.width = config()->network.width;
ui->network.height = _evisum_config->network.height; ui->network.height = config()->network.height;
ui->network.x = _evisum_config->network.x; ui->network.x = config()->network.x;
ui->network.y = _evisum_config->network.y; ui->network.y = config()->network.y;
ui->network.restart = _evisum_config->network.restart; ui->network.restart = config()->network.restart;
} }
void void

View File

@ -254,15 +254,19 @@ _field_menu_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
ui = wd->ui; ui = wd->ui;
wd->skip_update = 1; wd->skip_update = 1;
wd->fields_changed = 1;
f = data; f = data;
// Updating here is far too expensive. Maybe in 10 years time. :) // Updating here is far too expensive. Maybe in 10 years time. :)
// f->enabled = !f->enabled; // f->enabled = !f->enabled;
// _content_reset(wd); // _content_reset(wd);
ui->proc.fields ^= (1 << f->id); ui->proc.fields ^= (1 << f->id);
wd->fields_changed = (ui->proc.fields != config()->proc.fields);
ic = evas_object_data_get(obj, "icon"); ic = evas_object_data_get(obj, "icon");
evas_object_show(ic); if (!wd->fields_changed)
evas_object_hide(ic);
else
evas_object_show(ic);
} }
static void static void