netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=101d03c2c0a71f62114094d7a11b4ace1e26dc93

commit 101d03c2c0a71f62114094d7a11b4ace1e26dc93
Author: Alastair Poole <nets...@gmail.com>
Date:   Tue Dec 29 10:41:15 2020 +0000

    ui: profile
---
 src/bin/ui/ui_process_list.c | 57 ++++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 18 deletions(-)

diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index 1443d6f..71ffcc7 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -10,6 +10,8 @@
 #include <sys/resource.h>
 #include <pwd.h>
 
+#define PROGRESS_CUSTOM_FORMAT 0
+
 extern int EVISUM_EVENT_CONFIG_CHANGED;
 
 typedef struct
@@ -58,9 +60,12 @@ typedef struct
 
 static Ui_Data *_pd = NULL;
 
-// See pb_format_cb.
+#if defined(PROGRESS_CUSTOM_FORMAT)
+
 static double _cpu_usage = 0.0;
 
+#endif
+
 static int
 _sort_by_pid(const void *p1, const void *p2)
 {
@@ -242,6 +247,7 @@ _item_column_add(Evas_Object *tbl, const char *text, int 
col)
    return lb;
 }
 
+#if defined(PROGRESS_CUSTOM_FORMAT)
 static char *
 _pb_format_cb(double val)
 {
@@ -257,6 +263,7 @@ _pb_format_free_cb(char *str)
 {
    free(str);
 }
+#endif
 
 static Evas_Object *
 _item_create(Evas_Object *parent)
@@ -327,7 +334,9 @@ _item_create(Evas_Object *parent)
    pb = elm_progressbar_add(hbx);
    evas_object_size_hint_weight_set(pb, EXPAND, EXPAND);
    evas_object_size_hint_align_set(pb, FILL, FILL);
+#if defined(PROGRESS_CUSTOM_FORMAT)
    elm_progressbar_unit_format_function_set(pb, _pb_format_cb, 
_pb_format_free_cb);
+#endif
    elm_box_pack_end(hbx, pb);
    evas_object_data_set(tbl, "proc_cpu_usage", pb);
 
@@ -340,6 +349,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    Proc_Info *proc;
    struct passwd *pwd_entry;
    Evas_Object *l, *r, *o, *hbx, *pb;
+   char buf[128];
    Evas_Coord w, ow;
    Ui_Data *pd = _pd;
 
@@ -358,7 +368,8 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
 
    evas_object_geometry_get(pd->btn_pid, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "proc_pid");
-   elm_object_text_set(l, eina_slstr_printf("%d", proc->pid));
+   snprintf(buf, sizeof(buf), "%d", proc->pid);
+   elm_object_text_set(l, buf);
    evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
    if (ow > w) evas_object_size_hint_min_set(pd->btn_pid, w, 1);
    r = evas_object_data_get(l, "rec");
@@ -370,9 +381,10 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    l = evas_object_data_get(it->obj, "proc_uid");
    pwd_entry = getpwuid(proc->uid);
    if (pwd_entry)
-     elm_object_text_set(l, eina_slstr_printf("%s", pwd_entry->pw_name));
+     snprintf(buf, sizeof(buf), "%s", pwd_entry->pw_name);
    else
-     elm_object_text_set(l, eina_slstr_printf("%d", proc->uid));
+     snprintf(buf, sizeof(buf), "%i", proc->uid);
+   elm_object_text_set(l, buf);
    evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
    if (ow > w) evas_object_size_hint_min_set(pd->btn_uid, w, 1);
    r = evas_object_data_get(l, "rec");
@@ -382,7 +394,8 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    evas_object_geometry_get(pd->btn_size, NULL, NULL, &w, NULL);
    w += PAD_W;
    l = evas_object_data_get(it->obj, "proc_size");
-   elm_object_text_set(l, eina_slstr_printf("%s", 
evisum_size_format(proc->mem_size)));
+   snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_size));
+   elm_object_text_set(l, buf);
    evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
    if (ow > w) evas_object_size_hint_min_set(pd->btn_size, w, 1);
    r = evas_object_data_get(l, "rec");
@@ -392,7 +405,8 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    evas_object_geometry_get(pd->btn_rss, NULL, NULL, &w, NULL);
    w += PAD_W;
    l = evas_object_data_get(it->obj, "proc_rss");
-   elm_object_text_set(l, eina_slstr_printf("%s", 
evisum_size_format(proc->mem_rss)));
+   snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_rss));
+   elm_object_text_set(l, buf);
    evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
    if (ow > w) evas_object_size_hint_min_set(pd->btn_rss, w, 1);
    r = evas_object_data_get(l, "rec");
@@ -403,7 +417,8 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    evas_object_geometry_get(pd->btn_cmd, NULL, NULL, &w, NULL);
    w += ow;
    l = evas_object_data_get(it->obj, "proc_cmd");
-   elm_object_text_set(l, eina_slstr_printf("%s", proc->command));
+   snprintf(buf, sizeof(buf), "%s", proc->command);
+   elm_object_text_set(l, buf);
    hbx = evas_object_data_get(l, "hbx");
    evas_object_geometry_get(hbx, NULL, NULL, &ow, NULL);
    if (ow > w) evas_object_size_hint_min_set(pd->btn_cmd, w, 1);
@@ -419,7 +434,9 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
 
    evas_object_geometry_get(pd->btn_state, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "proc_state");
-   elm_object_text_set(l, eina_slstr_printf("%s", proc->state));
+   snprintf(buf, sizeof(buf), "%s", proc->state);
+
+   elm_object_text_set(l, buf);
    evas_object_geometry_get(l, NULL, NULL, &ow, NULL);
    r = evas_object_data_get(l, "rec");
    evas_object_size_hint_min_set(r, w, 1);
@@ -427,7 +444,10 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
 
    pb = evas_object_data_get(it->obj, "proc_cpu_usage");
    _cpu_usage = proc->cpu_usage;
-   elm_progressbar_value_set(pb, proc->cpu_usage / 100.0);
+   double value = proc->cpu_usage / 100.0;
+   double last = elm_progressbar_value_get(pb);
+   if (!EINA_DBL_EQ(value, last))
+     elm_progressbar_value_set(pb, proc->cpu_usage / 100.0);
    evas_object_show(pb);
 
    evas_object_show(it->obj);
@@ -494,7 +514,7 @@ _bring_in(void *data)
    elm_scroller_last_page_get(pd->scroller, &h_page, &v_page);
    elm_scroller_page_bring_in(pd->scroller, h_page, v_page);
 
-   ecore_timer_add(0.5, _show_items, pd);
+   ecore_timer_add(2.0, _show_items, pd);
 
    return EINA_FALSE;
 }
@@ -1142,7 +1162,7 @@ _genlist_scroll_end_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
 static Evas_Object *
 _ui_content_system_add(Ui_Data *pd, Evas_Object *parent)
 {
-   Evas_Object *bx, *fr, *tbl, *btn, *plist;
+   Evas_Object *bx, *fr, *tbl, *btn, *glist;
    Ui *ui = pd->ui;
    int i = 0;
 
@@ -1252,18 +1272,19 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent)
    evas_object_smart_callback_add(btn, "clicked",
                                   _btn_cpu_usage_clicked_cb, pd);
 
-   pd->scroller = pd->genlist = plist = elm_genlist_add(parent);
-   elm_genlist_homogeneous_set(plist, 1);
+   pd->scroller = pd->genlist = glist = elm_genlist_add(parent);
+   elm_genlist_homogeneous_set(glist, 1);
    elm_scroller_gravity_set(pd->scroller, 0.0, 1.0);
-   elm_object_focus_allow_set(plist, EINA_FALSE);
+   elm_object_focus_allow_set(glist, EINA_FALSE);
    elm_scroller_movement_block_set(pd->scroller,
                                    ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL);
    elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF,
                            ELM_SCROLLER_POLICY_AUTO);
-   elm_genlist_multi_select_set(plist, EINA_FALSE);
-   evas_object_size_hint_weight_set(plist, EXPAND, EXPAND);
-   evas_object_size_hint_align_set(plist, FILL, FILL);
-   elm_table_pack(tbl, plist, 0, 2, i, 1);
+   elm_genlist_multi_select_set(glist, EINA_FALSE);
+   evas_object_size_hint_weight_set(glist, EXPAND, EXPAND);
+   evas_object_size_hint_align_set(glist, FILL, FILL);
+   evas_object_show(glist);
+   elm_table_pack(tbl, glist, 0, 2, i, 1);
 
    evas_object_smart_callback_add(pd->genlist, "selected",
                    _item_pid_clicked_cb, pd);

-- 


Reply via email to