[banshee/gio-hardware] [ImportManager] Add SkipHiddenChildren property
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee/gio-hardware] [ImportManager] Add SkipHiddenChildren property
- Date: Tue, 27 Jul 2010 10:31:45 +0000 (UTC)
commit b7d019a3b88028239c696cf1ad20b440335aabd1
Author: Gabriel Burt <gabriel burt gmail com>
Date: Tue Jul 27 03:22:37 2010 -0700
[ImportManager] Add SkipHiddenChildren property
By default we skip directories and files that start with ".", but this
lets you override that.
.../Banshee.IO/DirectoryScannerPipelineElement.cs | 13 ++++++++++---
.../Banshee.Collection/ImportManager.cs | 4 ++++
2 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs b/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
index 094f88a..ac9dddb 100644
--- a/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
+++ b/src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs
@@ -38,6 +38,11 @@ namespace Banshee.IO
{
public class DirectoryScannerPipelineElement : QueuePipelineElement<string>
{
+ public DirectoryScannerPipelineElement ()
+ {
+ SkipHiddenChildren = true;
+ }
+
protected override string ProcessItem (string item)
{
try {
@@ -49,6 +54,8 @@ namespace Banshee.IO
return null;
}
+ public bool SkipHiddenChildren { get; set; }
+
private readonly HashSet<string> visited_dirs = new HashSet<string> ();
private void ScanForFiles (string source, bool skip_hidden)
{
@@ -68,7 +75,7 @@ namespace Banshee.IO
if (is_regular_file) {
try {
- if (!Path.GetFileName (source).StartsWith (".")) {
+ if (!skip_hidden || !Path.GetFileName (source).StartsWith (".")) {
EnqueueDownstream (source);
}
} catch (System.ArgumentException) {
@@ -80,12 +87,12 @@ namespace Banshee.IO
visited_dirs.Add (source);
try {
foreach (string file in Banshee.IO.Directory.GetFiles (source)) {
- ScanForFiles (file, true);
+ ScanForFiles (file, SkipHiddenChildren);
}
foreach (string directory in Banshee.IO.Directory.GetDirectories (source)) {
if (!visited_dirs.Contains (directory)) {
- ScanForFiles (directory, true);
+ ScanForFiles (directory, SkipHiddenChildren);
}
}
} catch (Exception e) {
diff --git a/src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs b/src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs
index 11518bb..4898342 100644
--- a/src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs
@@ -252,6 +252,10 @@ namespace Banshee.Collection
set { import_element.Threaded = scanner_element.Threaded = value; }
}
+ public bool SkipHiddenChildren {
+ set { scanner_element.SkipHiddenChildren = value; }
+ }
+
protected int TotalCount {
get { return import_element == null ? 0 : import_element.TotalCount; }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]