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 0000000..f77bfe3
Binary files /dev/null and b/data/images/mount.png differ
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);