From 24cbca1c0996d08709bdfb464e70088251356b8b Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Fri, 19 Jun 2020 12:52:00 +0100 Subject: [PATCH] ui: TRY to improve Storage and Misc Tab Design. This looks better. It's not perfect by a long shot. Need to fix CPU and meh meh memory --- data/images/meson.build | 2 +- data/images/mount.png | Bin 0 -> 1883 bytes src/bin/ui/ui_disk.c | 119 ++++++++++++++++++++++++++++++---------- src/bin/ui/ui_misc.c | 2 +- 4 files changed, 91 insertions(+), 32 deletions(-) create mode 100644 data/images/mount.png diff --git a/data/images/meson.build b/data/images/meson.build index ba6b109..fca3f17 100644 --- a/data/images/meson.build +++ b/data/images/meson.build @@ -3,5 +3,5 @@ install_data('go-up.png', 'go-down.png', 'window.png', 'start.png', 'stop.png', 'kill.png', 'cancel.png', 'increase.png', 'decrease.png', - 'sensor.png', + 'sensor.png', 'mount.png', install_dir: join_paths(dir_data, 'evisum/images')) diff --git a/data/images/mount.png b/data/images/mount.png new file mode 100644 index 0000000000000000000000000000000000000000..f77bfe31a7d37457752c937549d6bbce38e1dab6 GIT binary patch literal 1883 zcmV-h2c-CkP)0hkt`TrMA*R<^gdQ;?lbN6QxAwsnzwf^1d70Lnd!9$P+ik6{ zum5F!e*Sk#sdcUO9)KDy=$FgovyUG?{!_JD{Z$;t8GvR{xtP2j=bix~=abhGv}?R+ zU%q_#_1xUtZ-JK9It~C%pFUmQ*w~nCG#axzJ39dMdOh0hHvN8oEa3Kzk0NF7vgbtwUbh}+vS68`l;|7zHlbocq z+ihOFc)|7S*NLKtN~O{Sz5w39zz0;4B);$akx^}{)naybmUHLMktE59fd^h6GC&e4UAT(}mZ7FH5p9^>+ zNs{b~aFERdo+O~P=722yor)na+*r@_rv!Z8SFQ&>7fF)DX%zuOThdx96S~X;pBn*T zLg{7)0HspN+uq*xfQ$)!PJUnr3^&z7Ix!4VyDS~@RCW@gluGf8bYl6yVKrb!3RmR# zR51iB4FFa(YJA|Z8Zcm`?;HmK&+}3|CfOPZ0For}wAP-zbE61IVCLNHls(SKQHYq` z7h%*(37GlKiD7$?1|&E$)>U%5#(#<^rHJELnou?h0mN~v>?Af00b6SlxXbAdOTcpC zEP1V6Gr8Wi`;n$+T{<272^YWrG!}_;~mn3Y(SEv5p$mR%u$?KMxfkMB93Ei zXJLDH4M-Ol6CvanN$x1x&{`A6aefriS}TUdoO~!Rg1ADZSw!~PAPy^LGjlWX&d!dO zi`x&|rem9l+;x`*jw)teG3Wj$WB}Q*+b^A zChO{xJ8#?bxJl6QQlE7OhNXnjz=sbX@O|GoscT_7sg3h4AR~*Zbz~$>lM~(^6 z@AvUMk4u*>@%r^^9zA-5`P}XTm1kn3uJig_7+v>0RZ*t z)hn)Ey~^h1CU@@K;nuBN`&25g4GX$!Sww=@T4&x-ZDMxVvq{@yOeO4!Qiepg+oj!Z^Y-mqaDCV^vb?-Zuh*m3>#@DP zovKX!W|APr6_+nq*>zvoHF>03tx~Ji2!en@p^%wZMj;i3A%#MLD2mdf{l3N5|NbM- zzFETDmt)NJK}V@n;=zLll*?rn78a;fDl9H8QmfTiSXfBgdcDr#;vy3h6FhwQkco*2 zYPA~GYL!BvKp2L`Vz4!k5-1jnc%DZb$NcmC-}&WNS9rGcFZT9+&Z$$UG8!0H3sDsD z?%g{YjfS&rHk+)itu z`GF+xlP_oaY49_G?+5Je?xuk9YLh$(!;qUdZ{m4gruBW_*>Bn~3^N*78HAyYA?EZy zaSfQMR4TuopP&ED-Me?E%H?v{>2%oK+(c$*+lfELk%J(h-|uJIIF1Q|AkDh{ejnfW z)10KWre3ep>-Bn1pFUl?fB*iUJDtv7fp4_d9}NKooCAIcTn8=z6JsO$Ze)YOuhkd8 ze}MmLt+f)N%mW(0c?RGM?s-m3x(rCH1MjuggI6<0^%yYl4bPt8ge3v`TI;^-{2yOV V0bK9bZR`L5002ovPDHLkV1jy)mlFU0 literal 0 HcmV?d00001 diff --git a/src/bin/ui/ui_disk.c b/src/bin/ui/ui_disk.c index ef86a4a..6c6e974 100644 --- a/src/bin/ui/ui_disk.c +++ b/src/bin/ui/ui_disk.c @@ -37,11 +37,42 @@ ui_tab_disk_add(Ui *ui) elm_box_pack_end(box, frame); } +static char * +_file_system_usage_format(File_System *inf) +{ + return strdup(eina_slstr_printf("%s / %s", + evisum_size_format(inf->usage.used), + evisum_size_format(inf->usage.total))); +} + +static void +_separator_add(Evas_Object *box) +{ + Evas_Object *hbox, *sep; + + hbox = elm_box_add(box); + elm_box_horizontal_set(hbox, EINA_TRUE); + evas_object_size_hint_weight_set(hbox, EXPAND, EXPAND); + evas_object_size_hint_align_set(hbox, FILL, FILL); + evas_object_show(hbox); + + sep = elm_separator_add(hbox); + evas_object_size_hint_weight_set(sep, EXPAND, EXPAND); + evas_object_size_hint_align_set(sep, FILL, FILL); + elm_separator_horizontal_set(sep, EINA_TRUE); + evas_object_show(sep); + + elm_box_pack_end(hbox, sep); + elm_box_pack_end(box, hbox); +} + static void _ui_disk_add(Ui *ui, File_System *inf) { - Evas_Object *box, *frame, *pb, *label; + Evas_Object *frame, *vbox, *hbox, *pb, *ic, *label; + Evas_Object *parent; const char *type; + char *usage; double ratio, value; type = inf->type_name; @@ -49,29 +80,55 @@ _ui_disk_add(Ui *ui, File_System *inf) type = file_system_name_by_id(inf->type); if (!type) type = "unknown"; - box = elm_box_add(ui->disk_activity); - evas_object_size_hint_align_set(box, FILL, FILL); - evas_object_size_hint_weight_set(box, EXPAND, EXPAND); - evas_object_show(box); + parent = ui->disk_activity; - label = elm_label_add(box); - evas_object_size_hint_align_set(label, FILL, FILL); + frame = elm_frame_add(parent); + evas_object_size_hint_align_set(frame, FILL, FILL); + evas_object_size_hint_weight_set(frame, EXPAND, EXPAND); + elm_object_style_set(frame, "pad_huge"); + evas_object_show(frame); + + vbox = elm_box_add(parent); + evas_object_size_hint_align_set(vbox, FILL, FILL); + evas_object_size_hint_weight_set(vbox, EXPAND, EXPAND); + evas_object_show(vbox); + + label = elm_label_add(parent); + evas_object_size_hint_align_set(label, 1.0, FILL); evas_object_size_hint_weight_set(label, EXPAND, EXPAND); - elm_object_text_set(label, - eina_slstr_printf(_( - "%s
mounted at %s (%s)" - "
%s of %s"), - inf->path, inf->mount, type, evisum_size_format(inf->usage.used), - evisum_size_format(inf->usage.total))); evas_object_show(label); - elm_box_pack_end(box, label); + elm_box_pack_end(vbox, label); - pb = elm_progressbar_add(box); + elm_object_text_set(label, eina_slstr_printf("%s", + inf->mount)); + + hbox = elm_box_add(parent); + evas_object_size_hint_align_set(hbox, FILL, FILL); + evas_object_size_hint_weight_set(hbox, EXPAND, EXPAND); + elm_box_horizontal_set(hbox, EINA_TRUE); + evas_object_show(hbox); + + ic = elm_image_add(parent); + elm_image_file_set(ic, evisum_icon_path_get("mount"), NULL); + evas_object_size_hint_min_set(ic, 32 * elm_config_scale_get(), + 32 * elm_config_scale_get()); + evas_object_show(ic); + elm_box_pack_end(hbox, ic); + + + pb = elm_progressbar_add(frame); evas_object_size_hint_align_set(pb, FILL, FILL); evas_object_size_hint_weight_set(pb, EXPAND, EXPAND); elm_progressbar_span_size_set(pb, 1.0); evas_object_show(pb); + usage = _file_system_usage_format(inf); + if (usage) + { + elm_progressbar_unit_format_set(pb, usage); + free(usage); + } + ratio = inf->usage.total / 100.0; value = inf->usage.used / ratio; @@ -80,14 +137,21 @@ _ui_disk_add(Ui *ui, File_System *inf) else elm_progressbar_value_set(pb, value / 100.0); - frame = elm_frame_add(ui->misc_activity); - evas_object_size_hint_align_set(frame, FILL, FILL); - evas_object_size_hint_weight_set(frame, EXPAND, EXPAND); - elm_object_style_set(frame, "pad_large"); - evas_object_show(frame); + label = elm_label_add(parent); + evas_object_size_hint_align_set(label, 1.0, FILL); + evas_object_size_hint_weight_set(label, EXPAND, EXPAND); + evas_object_show(label); - elm_box_pack_end(box, pb); - elm_object_content_set(frame, box); + elm_object_text_set(label, + eina_slstr_printf("%s (%s)", + inf->path, type)); + + elm_box_pack_end(vbox, label); + elm_box_pack_end(hbox, pb); + elm_box_pack_end(vbox, hbox); + _separator_add(vbox); + + elm_object_content_set(frame, vbox); elm_box_pack_end(ui->disk_activity, frame); } @@ -101,7 +165,6 @@ ui_tab_disk_update(Ui *ui) if (!ui->disk_visible) return; - // FIXME elm_box_clear(ui->disk_activity); disks = disks_get(); @@ -110,9 +173,7 @@ ui_tab_disk_update(Ui *ui) File_System *fs = file_system_info_get(path); if (fs) { - // ZFS usage may have changed during application's lifetime. - // Keep track of ZFS mounts else we may report bogus use - // of memory. + // Check for ZFS mount. if (fs->type == file_system_id_by_name("ZFS")) zfs_mounted = EINA_TRUE; @@ -122,9 +183,7 @@ ui_tab_disk_update(Ui *ui) free(path); } - // Need to keep track of ZFS mounts. If we have no mounts - // then memory usage should not take into account the ZFS - // ARC memory allocation. - if (!zfs_mounted) ui->zfs_mounted = EINA_FALSE; + // Need to keep track of ZFS mounts (ARC memory usage). + ui->zfs_mounted = zfs_mounted; } diff --git a/src/bin/ui/ui_misc.c b/src/bin/ui/ui_misc.c index 361a524..24a1fc7 100644 --- a/src/bin/ui/ui_misc.c +++ b/src/bin/ui/ui_misc.c @@ -305,7 +305,7 @@ ui_tab_misc_update(Ui *ui, Sys_Info *info) frame = elm_frame_add(ui->misc_activity); evas_object_size_hint_align_set(frame, FILL, FILL); evas_object_size_hint_weight_set(frame, EXPAND, EXPAND); - elm_object_style_set(frame, "pad_medium"); + elm_object_style_set(frame, "pad_huge"); evas_object_show(frame); elm_object_content_set(frame, box);