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,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
exit(0);
|
||||
Ui *ui = data;
|
||||
|
||||
evisum_ui_shutdown(ui);
|
||||
}
|
||||
|
||||
static Ui *
|
||||
|
@ -131,7 +133,7 @@ main(int argc, char **argv)
|
|||
if (ui)
|
||||
{
|
||||
ecore_main_loop_begin();
|
||||
evisum_ui_shutdown(ui);
|
||||
evisum_ui_del(ui);
|
||||
}
|
||||
|
||||
elm_shutdown();
|
||||
|
|
|
@ -743,9 +743,12 @@ _btn_state_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
|
||||
static void
|
||||
_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
|
||||
|
@ -1278,6 +1281,23 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
|
||||
void
|
||||
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);
|
||||
|
||||
|
@ -1287,9 +1307,6 @@ evisum_ui_shutdown(Ui *ui)
|
|||
if (ui->thread_system)
|
||||
ecore_thread_cancel(ui->thread_system);
|
||||
|
||||
if (ui->thread_cpu)
|
||||
ecore_thread_cancel(ui->thread_cpu);
|
||||
|
||||
if (ui->thread_process)
|
||||
ecore_thread_cancel(ui->thread_process);
|
||||
|
||||
|
@ -1299,14 +1316,8 @@ evisum_ui_shutdown(Ui *ui)
|
|||
if (ui->thread_process)
|
||||
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);
|
||||
|
||||
if (ui->cpu_list)
|
||||
eina_list_free(ui->cpu_list);
|
||||
|
||||
if (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_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);
|
||||
elm_menu_item_add(menu, menu_it, NULL, _("CPU"), _menu_cpu_activity_clicked_cb, ui);
|
||||
elm_menu_item_add(menu, menu_it, NULL, _("Memory"),
|
||||
|
|
|
@ -37,16 +37,16 @@ typedef struct Ui
|
|||
Evas_Object *scroller;
|
||||
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 *misc_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_mem;
|
||||
|
||||
|
@ -98,6 +98,9 @@ typedef struct Ui
|
|||
Ui *
|
||||
evisum_ui_add(Evas_Object *win);
|
||||
|
||||
void
|
||||
evisum_ui_del(Ui *ui);
|
||||
|
||||
void
|
||||
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)
|
||||
{
|
||||
if (!ui->cpu_visible)
|
||||
{
|
||||
usleep(1000000);
|
||||
continue;
|
||||
}
|
||||
|
||||
cores = system_cpu_usage_get(&ncpu);
|
||||
|
||||
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
|
||||
|
@ -190,8 +184,8 @@ _win_del_cb(void *data, Evas_Object *obj,
|
|||
Progress *progress;
|
||||
Ui *ui = data;
|
||||
|
||||
evas_object_hide(obj);
|
||||
ecore_thread_cancel(ui->thread_cpu);
|
||||
evas_object_del(obj);
|
||||
|
||||
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);
|
||||
ui->cpu_visible = EINA_FALSE;
|
||||
evas_object_del(obj);
|
||||
ui->win_cpu = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -212,11 +207,9 @@ ui_win_cpu_add(Ui *ui)
|
|||
Evas_Object *bg, *line, *obj;
|
||||
int cpu_count;
|
||||
|
||||
if (ui->cpu_visible) return;
|
||||
if (ui->win_cpu) return;
|
||||
|
||||
ui->cpu_visible = EINA_TRUE;
|
||||
|
||||
win = elm_win_util_standard_add("evisum", _("CPU Usage"));
|
||||
ui->win_cpu = win = elm_win_util_standard_add("evisum", _("CPU Usage"));
|
||||
evas_object_size_hint_weight_set(win, EXPAND, EXPAND);
|
||||
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);
|
||||
ui->timer_disk = NULL;
|
||||
|
||||
ui->disk_visible = EINA_FALSE;
|
||||
evas_object_del(obj);
|
||||
ui->win_disk = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -171,10 +171,9 @@ ui_win_disk_add(Ui *ui)
|
|||
Evas_Object *win, *box, *vbox, *scroller;
|
||||
Evas_Object *table, *rect;
|
||||
|
||||
if (ui->disk_visible) return;
|
||||
ui->disk_visible = EINA_TRUE;
|
||||
if (ui->win_disk) return;
|
||||
|
||||
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_align_set(win, FILL, FILL);
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ _win_del_cb(void *data, Evas_Object *obj,
|
|||
if (widgets) free(widgets);
|
||||
|
||||
evas_object_del(obj);
|
||||
ui->mem_visible = EINA_FALSE;
|
||||
ui->win_mem = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -125,14 +125,12 @@ ui_win_memory_add(Ui *ui)
|
|||
Evas_Object *win, *frame, *pb;
|
||||
Evas_Object *border, *rect, *label, *table;
|
||||
|
||||
if (ui->mem_visible) return;
|
||||
|
||||
ui->mem_visible = EINA_TRUE;
|
||||
if (ui->win_mem) return;
|
||||
|
||||
Widgets *widgets = calloc(1, sizeof(Widgets));
|
||||
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_align_set(win, FILL, FILL);
|
||||
|
||||
|
|
|
@ -335,7 +335,7 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
ui->timer_misc = NULL;
|
||||
|
||||
evas_object_del(obj);
|
||||
ui->misc_visible = EINA_FALSE;
|
||||
ui->win_misc = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -344,10 +344,9 @@ ui_win_misc_add(Ui *ui)
|
|||
Evas_Object *win, *box, *hbox, *frame, *scroller;
|
||||
Evas_Object *table, *border, *rect;
|
||||
|
||||
if (ui->misc_visible) return;
|
||||
ui->misc_visible = EINA_TRUE;
|
||||
if (ui->win_misc) return;
|
||||
|
||||
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_align_set(win, FILL, FILL);
|
||||
|
||||
|
|
|
@ -231,8 +231,8 @@ _win_del_cb(void *data, Evas_Object *obj,
|
|||
_animator = NULL;
|
||||
ui = evas_object_data_get(win, "ui");
|
||||
if (!ui) return;
|
||||
ui->about_visible = EINA_FALSE;
|
||||
evas_object_del(win);
|
||||
ui->win_about = NULL;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -282,11 +282,9 @@ evisum_about_window_show(void *data)
|
|||
|
||||
ui = data;
|
||||
|
||||
if (ui->about_visible) return;
|
||||
if (ui->win_about) return;
|
||||
|
||||
ui->about_visible = EINA_TRUE;
|
||||
|
||||
win = elm_win_add(ui->win, "evisum", ELM_WIN_DIALOG_BASIC);
|
||||
ui->win_about = win = elm_win_add(ui->win, "evisum", ELM_WIN_DIALOG_BASIC);
|
||||
elm_win_title_set(win, "About Evisum");
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, win);
|
||||
evas_object_data_set(win, "ui", ui);
|
||||
|
|
Loading…
Reference in New Issue