forked from enlightenment/evisum
evisum: Clean up orderly.
Whether this is meritted, I don't know. It might be useful in the future.
This commit is contained in:
parent
1f0d8827b8
commit
d2a72510cb
|
@ -21,7 +21,9 @@ static void
|
||||||
_win_del_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
_win_del_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
exit(0);
|
Ui *ui = data;
|
||||||
|
|
||||||
|
evisum_ui_shutdown(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Ui *
|
static Ui *
|
||||||
|
@ -131,7 +133,7 @@ main(int argc, char **argv)
|
||||||
if (ui)
|
if (ui)
|
||||||
{
|
{
|
||||||
ecore_main_loop_begin();
|
ecore_main_loop_begin();
|
||||||
evisum_ui_shutdown(ui);
|
evisum_ui_del(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
|
@ -745,7 +745,10 @@ static void
|
||||||
_quit_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
_quit_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
exit(0);
|
Ui *ui = data;
|
||||||
|
|
||||||
|
evas_object_hide(ui->win);
|
||||||
|
evisum_ui_shutdown(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1278,6 +1281,23 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
|
||||||
void
|
void
|
||||||
evisum_ui_shutdown(Ui *ui)
|
evisum_ui_shutdown(Ui *ui)
|
||||||
|
{
|
||||||
|
if (ui->win_cpu)
|
||||||
|
evas_object_smart_callback_call(ui->win_cpu, "delete,request", NULL);
|
||||||
|
if (ui->win_mem)
|
||||||
|
evas_object_smart_callback_call(ui->win_mem, "delete,request", NULL);
|
||||||
|
if (ui->win_disk)
|
||||||
|
evas_object_smart_callback_call(ui->win_disk, "delete,request", NULL);
|
||||||
|
if (ui->win_misc)
|
||||||
|
evas_object_smart_callback_call(ui->win_misc, "delete,request", NULL);
|
||||||
|
if (ui->win_about)
|
||||||
|
evas_object_smart_callback_call(ui->win_about, "delete,request", NULL);
|
||||||
|
|
||||||
|
ecore_main_loop_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evisum_ui_del(Ui *ui)
|
||||||
{
|
{
|
||||||
evas_object_del(ui->win);
|
evas_object_del(ui->win);
|
||||||
|
|
||||||
|
@ -1287,9 +1307,6 @@ evisum_ui_shutdown(Ui *ui)
|
||||||
if (ui->thread_system)
|
if (ui->thread_system)
|
||||||
ecore_thread_cancel(ui->thread_system);
|
ecore_thread_cancel(ui->thread_system);
|
||||||
|
|
||||||
if (ui->thread_cpu)
|
|
||||||
ecore_thread_cancel(ui->thread_cpu);
|
|
||||||
|
|
||||||
if (ui->thread_process)
|
if (ui->thread_process)
|
||||||
ecore_thread_cancel(ui->thread_process);
|
ecore_thread_cancel(ui->thread_process);
|
||||||
|
|
||||||
|
@ -1299,14 +1316,8 @@ evisum_ui_shutdown(Ui *ui)
|
||||||
if (ui->thread_process)
|
if (ui->thread_process)
|
||||||
ecore_thread_wait(ui->thread_process, 1.0);
|
ecore_thread_wait(ui->thread_process, 1.0);
|
||||||
|
|
||||||
if (ui->thread_cpu)
|
|
||||||
ecore_thread_wait(ui->thread_cpu, 1.0);
|
|
||||||
|
|
||||||
_proc_pid_cpu_times_free(ui);
|
_proc_pid_cpu_times_free(ui);
|
||||||
|
|
||||||
if (ui->cpu_list)
|
|
||||||
eina_list_free(ui->cpu_list);
|
|
||||||
|
|
||||||
if (ui->cache)
|
if (ui->cache)
|
||||||
evisum_ui_item_cache_free(ui->cache);
|
evisum_ui_item_cache_free(ui->cache);
|
||||||
|
|
||||||
|
@ -1426,7 +1437,7 @@ _menu_setup(Ui *ui)
|
||||||
|
|
||||||
menu = elm_win_main_menu_get(ui->win);
|
menu = elm_win_main_menu_get(ui->win);
|
||||||
menu_it = elm_menu_item_add(menu, NULL, NULL, _("File"), NULL, NULL);
|
menu_it = elm_menu_item_add(menu, NULL, NULL, _("File"), NULL, NULL);
|
||||||
elm_menu_item_add(menu, menu_it, "exit", _("Quit"), _quit_cb, NULL);
|
elm_menu_item_add(menu, menu_it, "exit", _("Quit"), _quit_cb, ui);
|
||||||
menu_it = elm_menu_item_add(menu, NULL, NULL, _("View"), NULL, NULL);
|
menu_it = elm_menu_item_add(menu, NULL, NULL, _("View"), NULL, NULL);
|
||||||
elm_menu_item_add(menu, menu_it, NULL, _("CPU"), _menu_cpu_activity_clicked_cb, ui);
|
elm_menu_item_add(menu, menu_it, NULL, _("CPU"), _menu_cpu_activity_clicked_cb, ui);
|
||||||
elm_menu_item_add(menu, menu_it, NULL, _("Memory"),
|
elm_menu_item_add(menu, menu_it, NULL, _("Memory"),
|
||||||
|
|
|
@ -37,16 +37,16 @@ typedef struct Ui
|
||||||
Evas_Object *scroller;
|
Evas_Object *scroller;
|
||||||
Evas_Object *content;
|
Evas_Object *content;
|
||||||
|
|
||||||
|
Evas_Object *win_cpu;
|
||||||
|
Evas_Object *win_mem;
|
||||||
|
Evas_Object *win_disk;
|
||||||
|
Evas_Object *win_misc;
|
||||||
|
Evas_Object *win_about;
|
||||||
|
|
||||||
Evas_Object *disk_activity;
|
Evas_Object *disk_activity;
|
||||||
Evas_Object *misc_activity;
|
Evas_Object *misc_activity;
|
||||||
Evas_Object *system_activity;
|
Evas_Object *system_activity;
|
||||||
|
|
||||||
Eina_Bool cpu_visible;
|
|
||||||
Eina_Bool misc_visible;
|
|
||||||
Eina_Bool disk_visible;
|
|
||||||
Eina_Bool mem_visible;
|
|
||||||
Eina_Bool about_visible;
|
|
||||||
|
|
||||||
Evas_Object *progress_cpu;
|
Evas_Object *progress_cpu;
|
||||||
Evas_Object *progress_mem;
|
Evas_Object *progress_mem;
|
||||||
|
|
||||||
|
@ -98,6 +98,9 @@ typedef struct Ui
|
||||||
Ui *
|
Ui *
|
||||||
evisum_ui_add(Evas_Object *win);
|
evisum_ui_add(Evas_Object *win);
|
||||||
|
|
||||||
|
void
|
||||||
|
evisum_ui_del(Ui *ui);
|
||||||
|
|
||||||
void
|
void
|
||||||
evisum_ui_shutdown(Ui *ui);
|
evisum_ui_shutdown(Ui *ui);
|
||||||
|
|
||||||
|
|
|
@ -163,12 +163,6 @@ _core_times_cb(void *data, Ecore_Thread *thread)
|
||||||
|
|
||||||
for (int i = 0; !ecore_thread_check(thread); i = 0)
|
for (int i = 0; !ecore_thread_check(thread); i = 0)
|
||||||
{
|
{
|
||||||
if (!ui->cpu_visible)
|
|
||||||
{
|
|
||||||
usleep(1000000);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
cores = system_cpu_usage_get(&ncpu);
|
cores = system_cpu_usage_get(&ncpu);
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
|
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
|
||||||
|
@ -190,8 +184,8 @@ _win_del_cb(void *data, Evas_Object *obj,
|
||||||
Progress *progress;
|
Progress *progress;
|
||||||
Ui *ui = data;
|
Ui *ui = data;
|
||||||
|
|
||||||
|
evas_object_hide(obj);
|
||||||
ecore_thread_cancel(ui->thread_cpu);
|
ecore_thread_cancel(ui->thread_cpu);
|
||||||
evas_object_del(obj);
|
|
||||||
|
|
||||||
EINA_LIST_FREE(ui->cpu_list, progress)
|
EINA_LIST_FREE(ui->cpu_list, progress)
|
||||||
{
|
{
|
||||||
|
@ -201,7 +195,8 @@ _win_del_cb(void *data, Evas_Object *obj,
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_thread_wait(ui->thread_cpu, 1.0);
|
ecore_thread_wait(ui->thread_cpu, 1.0);
|
||||||
ui->cpu_visible = EINA_FALSE;
|
evas_object_del(obj);
|
||||||
|
ui->win_cpu = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -212,11 +207,9 @@ ui_win_cpu_add(Ui *ui)
|
||||||
Evas_Object *bg, *line, *obj;
|
Evas_Object *bg, *line, *obj;
|
||||||
int cpu_count;
|
int cpu_count;
|
||||||
|
|
||||||
if (ui->cpu_visible) return;
|
if (ui->win_cpu) return;
|
||||||
|
|
||||||
ui->cpu_visible = EINA_TRUE;
|
ui->win_cpu = win = elm_win_util_standard_add("evisum", _("CPU Usage"));
|
||||||
|
|
||||||
win = elm_win_util_standard_add("evisum", _("CPU Usage"));
|
|
||||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||||
|
|
||||||
|
|
|
@ -161,8 +161,8 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
ecore_timer_del(ui->timer_disk);
|
ecore_timer_del(ui->timer_disk);
|
||||||
ui->timer_disk = NULL;
|
ui->timer_disk = NULL;
|
||||||
|
|
||||||
ui->disk_visible = EINA_FALSE;
|
|
||||||
evas_object_del(obj);
|
evas_object_del(obj);
|
||||||
|
ui->win_disk = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -171,10 +171,9 @@ ui_win_disk_add(Ui *ui)
|
||||||
Evas_Object *win, *box, *vbox, *scroller;
|
Evas_Object *win, *box, *vbox, *scroller;
|
||||||
Evas_Object *table, *rect;
|
Evas_Object *table, *rect;
|
||||||
|
|
||||||
if (ui->disk_visible) return;
|
if (ui->win_disk) return;
|
||||||
ui->disk_visible = EINA_TRUE;
|
|
||||||
|
|
||||||
win = elm_win_util_standard_add("evisum", _("Storage"));
|
ui->win_disk = win = elm_win_util_standard_add("evisum", _("Storage"));
|
||||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ _win_del_cb(void *data, Evas_Object *obj,
|
||||||
if (widgets) free(widgets);
|
if (widgets) free(widgets);
|
||||||
|
|
||||||
evas_object_del(obj);
|
evas_object_del(obj);
|
||||||
ui->mem_visible = EINA_FALSE;
|
ui->win_mem = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -125,14 +125,12 @@ ui_win_memory_add(Ui *ui)
|
||||||
Evas_Object *win, *frame, *pb;
|
Evas_Object *win, *frame, *pb;
|
||||||
Evas_Object *border, *rect, *label, *table;
|
Evas_Object *border, *rect, *label, *table;
|
||||||
|
|
||||||
if (ui->mem_visible) return;
|
if (ui->win_mem) return;
|
||||||
|
|
||||||
ui->mem_visible = EINA_TRUE;
|
|
||||||
|
|
||||||
Widgets *widgets = calloc(1, sizeof(Widgets));
|
Widgets *widgets = calloc(1, sizeof(Widgets));
|
||||||
if (!widgets) return;
|
if (!widgets) return;
|
||||||
|
|
||||||
win = elm_win_util_standard_add("evisum", _("Memory Usage"));
|
ui->win_mem = win = elm_win_util_standard_add("evisum", _("Memory Usage"));
|
||||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||||
|
|
||||||
|
|
|
@ -335,7 +335,7 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
ui->timer_misc = NULL;
|
ui->timer_misc = NULL;
|
||||||
|
|
||||||
evas_object_del(obj);
|
evas_object_del(obj);
|
||||||
ui->misc_visible = EINA_FALSE;
|
ui->win_misc = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -344,10 +344,9 @@ ui_win_misc_add(Ui *ui)
|
||||||
Evas_Object *win, *box, *hbox, *frame, *scroller;
|
Evas_Object *win, *box, *hbox, *frame, *scroller;
|
||||||
Evas_Object *table, *border, *rect;
|
Evas_Object *table, *border, *rect;
|
||||||
|
|
||||||
if (ui->misc_visible) return;
|
if (ui->win_misc) return;
|
||||||
ui->misc_visible = EINA_TRUE;
|
|
||||||
|
|
||||||
win = elm_win_util_standard_add("evisum", _("Stuff"));
|
ui->win_misc = win = elm_win_util_standard_add("evisum", _("Stuff"));
|
||||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||||
evas_object_size_hint_align_set(win, FILL, FILL);
|
evas_object_size_hint_align_set(win, FILL, FILL);
|
||||||
|
|
||||||
|
|
|
@ -231,8 +231,8 @@ _win_del_cb(void *data, Evas_Object *obj,
|
||||||
_animator = NULL;
|
_animator = NULL;
|
||||||
ui = evas_object_data_get(win, "ui");
|
ui = evas_object_data_get(win, "ui");
|
||||||
if (!ui) return;
|
if (!ui) return;
|
||||||
ui->about_visible = EINA_FALSE;
|
|
||||||
evas_object_del(win);
|
evas_object_del(win);
|
||||||
|
ui->win_about = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
@ -282,11 +282,9 @@ evisum_about_window_show(void *data)
|
||||||
|
|
||||||
ui = data;
|
ui = data;
|
||||||
|
|
||||||
if (ui->about_visible) return;
|
if (ui->win_about) return;
|
||||||
|
|
||||||
ui->about_visible = EINA_TRUE;
|
ui->win_about = win = elm_win_add(ui->win, "evisum", ELM_WIN_DIALOG_BASIC);
|
||||||
|
|
||||||
win = elm_win_add(ui->win, "evisum", ELM_WIN_DIALOG_BASIC);
|
|
||||||
elm_win_title_set(win, "About Evisum");
|
elm_win_title_set(win, "About Evisum");
|
||||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, win);
|
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, win);
|
||||||
evas_object_data_set(win, "ui", ui);
|
evas_object_data_set(win, "ui", ui);
|
||||||
|
|
Loading…
Reference in New Issue