summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2020-06-18 10:48:41 +0200
committerStefano Facchini <stefano.facchini@gmail.com>2020-06-30 16:01:22 +0200
commitd11d3e7e8b487c2711dfd0ad17b4e400f557239b (patch)
treee4527286f53014334638382bf881f09c780212b4 /src
parent0d1af33e5e2a8e16d2a82e2fe2c8eed3b7410a37 (diff)
downloadbaobab-d11d3e7e8b487c2711dfd0ad17b4e400f557239b.tar.gz
Use the same formatting function everywhere in the UI
Diffstat (limited to 'src')
-rw-r--r--src/baobab-cellrenderers.vala78
-rw-r--r--src/baobab-chart.vala7
-rw-r--r--src/baobab-window.vala6
3 files changed, 50 insertions, 41 deletions
diff --git a/src/baobab-cellrenderers.vala b/src/baobab-cellrenderers.vala
index 042be57..23bae81 100644
--- a/src/baobab-cellrenderers.vala
+++ b/src/baobab-cellrenderers.vala
@@ -20,6 +20,48 @@
namespace Baobab {
+ public string format_name (string? display_name, string? name) {
+ if (display_name != null) {
+ return display_name;
+ }
+ if (name != null) {
+ return Filename.display_name (name);
+ }
+ return "";
+ }
+
+ public string format_items (int items) {
+ return ngettext ("%d item", "%d items", items).printf (items);
+ }
+
+ public string format_time_approximate (uint64 time) {
+ if (time == 0) {
+ // Translators: when the last modified time is unknown
+ return _("Unknown");
+ }
+
+ var dt = new DateTime.from_unix_local ((int64) time);
+ var now = new DateTime.now_local ();
+ var ts = now.difference (dt);
+ if (ts < TimeSpan.DAY) {
+ // Translators: when the last modified time is today
+ return _("Today");
+ }
+ if (ts < 31 * TimeSpan.DAY) {
+ var days = (ulong) (ts / TimeSpan.DAY);
+ // Translators: when the last modified time is "days" days ago
+ return ngettext ("%lu day", "%lu days", days).printf (days);
+ }
+ if (ts < 365 * TimeSpan.DAY) {
+ var months = (ulong) (ts / (31 * TimeSpan.DAY));
+ // Translators: when the last modified time is "months" months ago
+ return ngettext ("%lu month", "%lu months", months).printf (months);
+ }
+ var years = (ulong) (ts / (365 * TimeSpan.DAY));
+ // Translators: when the last modified time is "years" years ago
+ return ngettext ("%lu year", "%lu years", years).printf (years);
+ }
+
public class CellRendererName : Gtk.CellRendererText {
public Scanner.State state { set; get; }
@@ -27,12 +69,8 @@ namespace Baobab {
public string name {
set {
- string escaped = null;
- if (display_name != null) {
- escaped = Markup.escape_text (display_name);
- } else if (value != null) {
- escaped = Markup.escape_text (Filename.display_name (value));
- }
+ string escaped = Markup.escape_text (format_name (display_name, value));
+
switch (state) {
case Scanner.State.ERROR:
markup = "<b>%s</b>".printf (escaped);
@@ -85,7 +123,7 @@ namespace Baobab {
public int items {
set {
- text = (value >= 0 && state != Scanner.State.ERROR) ? ngettext ("%d item", "%d items", value).printf (value) : "";
+ text = (value >= 0 && state != Scanner.State.ERROR) ? format_items (value) : "";
}
}
}
@@ -93,31 +131,7 @@ namespace Baobab {
public class CellRendererTime : Gtk.CellRendererText {
public uint64 time {
set {
- if (value == 0) {
- // Translators: when the last modified time is unknown
- text = _("Unknown");
- return;
- }
-
- var dt = new DateTime.from_unix_local ((int64)value);
- var now = new DateTime.now_local ();
- var ts = now.difference (dt);
- if (ts < TimeSpan.DAY) {
- // Translators: when the last modified time is today
- text = _("Today");
- } else if (ts < 31 * TimeSpan.DAY) {
- var days = (ulong) (ts / TimeSpan.DAY);
- // Translators: when the last modified time is "days" days ago
- text = ngettext ("%lu day", "%lu days", days).printf (days);
- } else if (ts < 365 * TimeSpan.DAY) {
- var months = (ulong) (ts / (31 * TimeSpan.DAY));
- // Translators: when the last modified time is "months" months ago
- text = ngettext ("%lu month", "%lu months", months).printf (months);
- } else {
- var years = (ulong) (ts / (365 * TimeSpan.DAY));
- // Translators: when the last modified time is "years" years ago
- text = ngettext ("%lu year", "%lu years", years).printf (years);
- }
+ text = format_time_approximate (value);
}
}
}
diff --git a/src/baobab-chart.vala b/src/baobab-chart.vala
index f726412..8af189f 100644
--- a/src/baobab-chart.vala
+++ b/src/baobab-chart.vala
@@ -257,12 +257,7 @@ namespace Baobab {
Scanner.Columns.SIZE, out size);
var item = create_new_chartitem ();
- item.name = "";
- if (display_name != null) {
- item.name = display_name;
- } else if (name != null) {
- item.name = Filename.display_name (name);
- }
+ item.name = format_name (display_name, name);
item.size = format_size (size);
item.depth = depth;
item.rel_start = rel_start;
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 4459407..bb65a3d 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -70,11 +70,11 @@ namespace Baobab {
if (value.get_depth () == 1) {
folder_name.label = location.name;
} else {
- folder_name.label = display_name != null ? display_name : name;
+ folder_name.label = format_name (display_name, name);
}
folder_size.label = format_size (size);
- folder_elements.label = "%d items".printf (elements);
- folder_time.label = new DateTime.from_unix_local ((int64) time).format ("%F");
+ folder_elements.label = format_items (elements);
+ folder_time.label = format_time_approximate (time);
}
}
}