summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Facchini <stefano.facchini@gmail.com>2020-06-18 19:58:54 +0200
committerStefano Facchini <stefano.facchini@gmail.com>2020-06-30 16:01:22 +0200
commit4ec84c8fca2a13febf1942232bc0f95c334869c2 (patch)
treea2034b93b4c70c02b1f36965cfab39f70b2f85f2
parenta69b48744dcc45cb12159fd1d4da115dd1bc9c2b (diff)
downloadbaobab-4ec84c8fca2a13febf1942232bc0f95c334869c2.tar.gz
Report the progress while scanning
-rw-r--r--data/ui/baobab-main-window.ui5
-rw-r--r--src/baobab-window.vala13
2 files changed, 18 insertions, 0 deletions
diff --git a/data/ui/baobab-main-window.ui b/data/ui/baobab-main-window.ui
index 9a348f6..c6627c0 100644
--- a/data/ui/baobab-main-window.ui
+++ b/data/ui/baobab-main-window.ui
@@ -231,6 +231,11 @@
<property name="label">Scanning…</property>
</object>
</child>
+ <child>
+ <object class="GtkLabel" id="scanning_progress_label">
+ <property name="visible">True</property>
+ </object>
+ </child>
</object>
</child>
<child>
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 7a6666b..1a672a8 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -124,6 +124,8 @@ namespace Baobab {
[GtkChild]
private LocationList location_list;
[GtkChild]
+ private Gtk.Label scanning_progress_label;
+ [GtkChild]
private FolderDisplay folder_display;
[GtkChild]
private Gtk.TreeView treeview;
@@ -150,6 +152,7 @@ namespace Baobab {
private Location? active_location = null;
private ulong scan_completed_handler = 0;
+ private uint scanning_progress_id = 0;
static Gdk.Cursor busy_cursor;
@@ -612,6 +615,11 @@ namespace Baobab {
scan_completed_handler = 0;
}
+ if (scanning_progress_id > 0) {
+ Source.remove (scanning_progress_id);
+ scanning_progress_id = 0;
+ }
+
try {
scanner.finish();
} catch (IOError.CANCELLED e) {
@@ -668,6 +676,11 @@ namespace Baobab {
clear_message ();
set_ui_state (scanning_page, true);
+ scanning_progress_id = Timeout.add (100, () => {
+ scanning_progress_label.label = format_size (scanner.total_size);
+ return Source.CONTINUE;
+ });
+
scanner.scan (force);
}