[banshee] [FileNamePattern] Bring back static API
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] [FileNamePattern] Bring back static API
- Date: Wed, 24 Feb 2010 20:20:52 +0000 (UTC)
commit 139907d8f69223b96c3e16df5cac2897210421d2
Author: Gabriel Burt <gabriel burt gmail com>
Date: Wed Feb 24 12:18:33 2010 -0800
[FileNamePattern] Bring back static API
Rename the instance-based API to PathPattern, and have bring back the
old static FileNamePattern API (verbatim) proxying the Music
PathPattern.
.../Banshee.Core/Banshee.Base/FileNamePattern.cs | 149 ++++------------
src/Core/Banshee.Core/Banshee.Base/PathPattern.cs | 188 ++++++++++++++++++++
src/Core/Banshee.Core/Banshee.Core.csproj | 1 +
src/Core/Banshee.Core/Makefile.am | 1 +
.../DatabaseTrackInfo.cs | 6 +-
.../Banshee.Library/LibrarySource.cs | 2 +-
.../Banshee.Library/MusicFileNamePattern.cs | 2 +-
.../Banshee.Library/MusicLibrarySource.cs | 5 +-
.../Banshee.Library/Tests/FileNamePatternTests.cs | 12 +-
.../Banshee.Metadata/SaveTrackMetadataJob.cs | 2 +-
.../Banshee.Sources/PrimarySource.cs | 6 +-
.../DefaultPreferenceWidgets.cs | 14 +-
.../Banshee.Audiobook/AudiobookFileNamePattern.cs | 2 +-
13 files changed, 247 insertions(+), 143 deletions(-)
---
diff --git a/src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs b/src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs
index ab96cc3..7d5f413 100644
--- a/src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs
+++ b/src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs
@@ -6,7 +6,7 @@
// Alexander Kojevnikov <alexander kojevnikov com>
// Gabriel Burt <gburt novell com>
//
-// Copyright (C) 2005-2009 Novell, Inc.
+// Copyright (C) 2005-2010 Novell, Inc.
// Copyright (C) 2009 Alexander Kojevnikov
//
// Permission is hereby granted, free of charge, to any person obtaining
@@ -41,151 +41,59 @@ using Banshee.Collection;
namespace Banshee.Base
{
- public class FileNamePattern
+ public static class FileNamePattern
{
public delegate string ExpandTokenHandler (TrackInfo track, object replace);
public delegate string FilterHandler (string path);
- public FilterHandler Filter;
+ public static FilterHandler Filter;
+ public static PathPattern MusicPattern { get; set; }
- private SortedList<string, Conversion> conversion_table = new SortedList<string, Conversion> ();
+ public static IEnumerable<Conversion> PatternConversions { get { return MusicPattern.PatternConversions; } }
+ public static string DefaultFolder { get { return MusicPattern.DefaultFolder; } }
+ public static string DefaultFile { get { return MusicPattern.DefaultFile; } }
+ public static string DefaultPattern { get { return MusicPattern.DefaultPattern; } }
+ public static string [] SuggestedFolders { get { return MusicPattern.SuggestedFolders; } }
+ public static string [] SuggestedFiles { get { return MusicPattern.SuggestedFiles; } }
- public FileNamePattern ()
+ public static void AddConversion (string token, string name, ExpandTokenHandler handler)
{
+ MusicPattern.AddConversion (token, name, handler);
}
- public void AddConversion (string token, string name, ExpandTokenHandler handler)
+ public static string CreateFolderFilePattern (string folder, string file)
{
- conversion_table.Add (token, new Conversion (token, name, handler));
+ return MusicPattern.CreateFolderFilePattern (folder, file);
}
- public IEnumerable<Conversion> PatternConversions {
- get { return conversion_table.Values; }
- }
-
- public virtual IEnumerable<TrackInfo> SampleTracks {
- get { yield return new SampleTrackInfo (); }
- }
-
- public string DefaultFolder { get; set; }
- public string DefaultFile { get; set; }
-
- public string DefaultPattern {
- get { return CreateFolderFilePattern (DefaultFolder, DefaultFile); }
- }
-
- public SchemaEntry<string> FileSchema { get; set; }
- public SchemaEntry<string> FolderSchema { get; set; }
-
- public string [] SuggestedFolders { get; set; }
- public string [] SuggestedFiles { get; set; }
-
- private string OnFilter (string input)
+ public static string CreatePatternDescription (string pattern)
{
- string repl_pattern = input;
-
- FilterHandler filter_handler = Filter;
- if (filter_handler != null) {
- repl_pattern = filter_handler (repl_pattern);
- }
-
- return repl_pattern;
+ return MusicPattern.CreatePatternDescription (pattern);
}
- public string CreateFolderFilePattern (string folder, string file)
+ public static string CreateFromTrackInfo (TrackInfo track)
{
- return String.Format ("{0}%path_sep%{1}", folder, file);
+ return MusicPattern.CreateFromTrackInfo (track);
}
- public string CreatePatternDescription (string pattern)
+ public static string CreateFromTrackInfo (string pattern, TrackInfo track)
{
- pattern = Convert (pattern, conversion => conversion.Name);
- return OnFilter (pattern);
+ return MusicPattern.CreateFromTrackInfo (pattern, track);
}
- public string CreateFromTrackInfo (TrackInfo track)
+ public static string Convert (string pattern, Func<Conversion, string> handler)
{
- string pattern = null;
-
- try {
- pattern = CreateFolderFilePattern (FolderSchema.Get (), FileSchema.Get ());
- } catch {}
-
- return CreateFromTrackInfo (pattern, track);
+ return MusicPattern.Convert (pattern, handler);
}
- public string CreateFromTrackInfo (string pattern, TrackInfo track)
+ public static string BuildFull (string base_dir, TrackInfo track)
{
- if (pattern == null || pattern.Trim () == String.Empty) {
- pattern = DefaultPattern;
- }
-
- pattern = Convert (pattern, conversion => conversion.Handler (track, null));
-
- return OnFilter (pattern);
+ return MusicPattern.BuildFull (base_dir, track);
}
- private static Regex optional_tokens_regex = new Regex ("{([^}]*)}", RegexOptions.Compiled);
-
- public string Convert (string pattern, Func<Conversion, string> handler)
+ public static string BuildFull (string base_dir, TrackInfo track, string ext)
{
- if (String.IsNullOrEmpty (pattern)) {
- return null;
- }
-
- pattern = optional_tokens_regex.Replace (pattern, delegate (Match match) {
- var sub_pattern = match.Groups[1].Value;
- foreach (var conversion in PatternConversions) {
- var token_string = conversion.TokenString;
- if (!sub_pattern.Contains (token_string)) {
- continue;
- }
- var replacement = handler (conversion);
- if (String.IsNullOrEmpty (replacement)) {
- sub_pattern = String.Empty;
- break;
- }
- sub_pattern = sub_pattern.Replace (token_string, replacement);
- }
- return sub_pattern;
- });
-
- foreach (Conversion conversion in PatternConversions) {
- pattern = pattern.Replace (conversion.TokenString, handler (conversion));
- }
-
- return pattern;
- }
-
- public string BuildFull (string base_dir, TrackInfo track)
- {
- return BuildFull (base_dir, track, Path.GetExtension (track.Uri.ToString ()));
- }
-
- public string BuildFull (string base_dir, TrackInfo track, string ext)
- {
- if (ext == null || ext.Length < 1) {
- ext = String.Empty;
- } else if (ext[0] != '.') {
- ext = String.Format (".{0}", ext);
- }
-
- string songpath = CreateFromTrackInfo (track) + ext;
- songpath = Hyena.StringUtil.EscapePath (songpath);
- string dir = Path.GetFullPath (Path.Combine (base_dir,
- Path.GetDirectoryName (songpath)));
- string filename = Path.Combine (dir, Path.GetFileName (songpath));
-
- if (!Banshee.IO.Directory.Exists (dir)) {
- Banshee.IO.Directory.Create (dir);
- }
-
- return filename;
- }
-
- public static string Escape (string input)
- {
- return Hyena.StringUtil.EscapeFilename (input);
+ return MusicPattern.BuildFull (base_dir, track, ext);
}
public struct Conversion
@@ -221,5 +129,10 @@ namespace Banshee.Base
get { return token_string; }
}
}
+
+ public static string Escape (string input)
+ {
+ return Hyena.StringUtil.EscapeFilename (input);
+ }
}
}
diff --git a/src/Core/Banshee.Core/Banshee.Base/PathPattern.cs b/src/Core/Banshee.Core/Banshee.Base/PathPattern.cs
new file mode 100644
index 0000000..1f202fa
--- /dev/null
+++ b/src/Core/Banshee.Core/Banshee.Base/PathPattern.cs
@@ -0,0 +1,188 @@
+//
+// PathPattern.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+// Alexander Kojevnikov <alexander kojevnikov com>
+// Gabriel Burt <gburt novell com>
+//
+// Copyright (C) 2005-2010 Novell, Inc.
+// Copyright (C) 2009 Alexander Kojevnikov
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Text.RegularExpressions;
+using System.Collections.Generic;
+using System.IO;
+using Mono.Unix;
+
+using Banshee.Configuration;
+using Banshee.Configuration.Schema;
+using Banshee.Collection;
+
+namespace Banshee.Base
+{
+ public class PathPattern
+ {
+ public FileNamePattern.FilterHandler Filter;
+
+ private SortedList<string, FileNamePattern.Conversion> conversion_table = new SortedList<string, FileNamePattern.Conversion> ();
+
+ public PathPattern ()
+ {
+ }
+
+ public void AddConversion (string token, string name, FileNamePattern.ExpandTokenHandler handler)
+ {
+ conversion_table.Add (token, new FileNamePattern.Conversion (token, name, handler));
+ }
+
+ public IEnumerable<FileNamePattern.Conversion> PatternConversions {
+ get { return conversion_table.Values; }
+ }
+
+ public virtual IEnumerable<TrackInfo> SampleTracks {
+ get { yield return new SampleTrackInfo (); }
+ }
+
+ public string DefaultFolder { get; set; }
+ public string DefaultFile { get; set; }
+
+ public string DefaultPattern {
+ get { return CreateFolderFilePattern (DefaultFolder, DefaultFile); }
+ }
+
+ public SchemaEntry<string> FileSchema { get; set; }
+ public SchemaEntry<string> FolderSchema { get; set; }
+
+ public string [] SuggestedFolders { get; set; }
+ public string [] SuggestedFiles { get; set; }
+
+ private string OnFilter (string input)
+ {
+ string repl_pattern = input;
+
+ FileNamePattern.FilterHandler filter_handler = Filter;
+ if (filter_handler != null) {
+ repl_pattern = filter_handler (repl_pattern);
+ }
+
+ return repl_pattern;
+ }
+
+ public string CreateFolderFilePattern (string folder, string file)
+ {
+ return String.Format ("{0}%path_sep%{1}", folder, file);
+ }
+
+ public string CreatePatternDescription (string pattern)
+ {
+ pattern = Convert (pattern, conversion => conversion.Name);
+ return OnFilter (pattern);
+ }
+
+ public string CreateFromTrackInfo (TrackInfo track)
+ {
+ string pattern = null;
+
+ try {
+ pattern = CreateFolderFilePattern (FolderSchema.Get (), FileSchema.Get ());
+ } catch {}
+
+ return CreateFromTrackInfo (pattern, track);
+ }
+
+ public string CreateFromTrackInfo (string pattern, TrackInfo track)
+ {
+ if (pattern == null || pattern.Trim () == String.Empty) {
+ pattern = DefaultPattern;
+ }
+
+ pattern = Convert (pattern, conversion => conversion.Handler (track, null));
+
+ return OnFilter (pattern);
+ }
+
+ private static Regex optional_tokens_regex = new Regex ("{([^}]*)}", RegexOptions.Compiled);
+
+ public string Convert (string pattern, Func<FileNamePattern.Conversion, string> handler)
+ {
+ if (String.IsNullOrEmpty (pattern)) {
+ return null;
+ }
+
+ pattern = optional_tokens_regex.Replace (pattern, delegate (Match match) {
+ var sub_pattern = match.Groups[1].Value;
+ foreach (var conversion in PatternConversions) {
+ var token_string = conversion.TokenString;
+ if (!sub_pattern.Contains (token_string)) {
+ continue;
+ }
+ var replacement = handler (conversion);
+ if (String.IsNullOrEmpty (replacement)) {
+ sub_pattern = String.Empty;
+ break;
+ }
+ sub_pattern = sub_pattern.Replace (token_string, replacement);
+ }
+ return sub_pattern;
+ });
+
+ foreach (FileNamePattern.Conversion conversion in PatternConversions) {
+ pattern = pattern.Replace (conversion.TokenString, handler (conversion));
+ }
+
+ return pattern;
+ }
+
+ public string BuildFull (string base_dir, TrackInfo track)
+ {
+ return BuildFull (base_dir, track, Path.GetExtension (track.Uri.ToString ()));
+ }
+
+ public string BuildFull (string base_dir, TrackInfo track, string ext)
+ {
+ if (ext == null || ext.Length < 1) {
+ ext = String.Empty;
+ } else if (ext[0] != '.') {
+ ext = String.Format (".{0}", ext);
+ }
+
+ string songpath = CreateFromTrackInfo (track) + ext;
+ songpath = Hyena.StringUtil.EscapePath (songpath);
+ string dir = Path.GetFullPath (Path.Combine (base_dir,
+ Path.GetDirectoryName (songpath)));
+ string filename = Path.Combine (dir, Path.GetFileName (songpath));
+
+ if (!Banshee.IO.Directory.Exists (dir)) {
+ Banshee.IO.Directory.Create (dir);
+ }
+
+ return filename;
+ }
+
+ public static string Escape (string input)
+ {
+ return Hyena.StringUtil.EscapeFilename (input);
+ }
+ }
+}
diff --git a/src/Core/Banshee.Core/Banshee.Core.csproj b/src/Core/Banshee.Core/Banshee.Core.csproj
index d9e3088..1fe492d 100644
--- a/src/Core/Banshee.Core/Banshee.Core.csproj
+++ b/src/Core/Banshee.Core/Banshee.Core.csproj
@@ -95,6 +95,7 @@
<Compile Include="Banshee.Kernel\Scheduler.cs" />
<Compile Include="Banshee.Configuration\SchemaEntry.cs" />
<Compile Include="Banshee.Base\FileNamePattern.cs" />
+ <Compile Include="Banshee.Base\PathPattern.cs" />
<Compile Include="Banshee.Base\Paths.cs" />
<Compile Include="Banshee.Base\SafeUri.cs" />
<Compile Include="Banshee.Base\UriList.cs" />
diff --git a/src/Core/Banshee.Core/Makefile.am b/src/Core/Banshee.Core/Makefile.am
index 4dd48bf..b8d9625 100644
--- a/src/Core/Banshee.Core/Makefile.am
+++ b/src/Core/Banshee.Core/Makefile.am
@@ -6,6 +6,7 @@ SOURCES = \
Banshee.Base/FileNamePattern.cs \
Banshee.Base/Localization.cs \
Banshee.Base/NamingUtil.cs \
+ Banshee.Base/PathPattern.cs \
Banshee.Base/Paths.cs \
Banshee.Base/PlatformHacks.cs \
Banshee.Base/ProductInformation.cs \
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
index 23a71c5..54a0257 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
@@ -642,10 +642,10 @@ namespace Banshee.Collection.Database
}
}
- public FileNamePattern FileNamePattern {
+ public PathPattern PathPattern {
get {
var src = PrimarySource;
- var pattern = src == null ? null : src.FileNamePattern;
+ var pattern = src == null ? null : src.PathPattern;
return pattern ?? MusicLibrarySource.MusicFileNamePattern;
}
}
@@ -663,7 +663,7 @@ namespace Banshee.Collection.Database
bool in_library = old_uri.IsLocalPath ? old_uri.AbsolutePath.StartsWith (PrimarySource.BaseDirectoryWithSeparator) : false;
if (!in_library && (LibrarySchema.CopyOnImport.Get () || force_copy)) {
- string new_filename = FileNamePattern.BuildFull (PrimarySource.BaseDirectory, this, Path.GetExtension (old_uri.ToString ()));
+ string new_filename = PathPattern.BuildFull (PrimarySource.BaseDirectory, this, Path.GetExtension (old_uri.ToString ()));
SafeUri new_uri = new SafeUri (new_filename);
try {
diff --git a/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs b/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
index c09382c..5a76d2e 100644
--- a/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
@@ -141,7 +141,7 @@ namespace Banshee.Library
source.NotifyTracksChanged ();
} else {
// Figure out where we should put it if were to copy it
- var pattern = this.FileNamePattern ?? MusicLibrarySource.MusicFileNamePattern;
+ var pattern = this.PathPattern ?? MusicLibrarySource.MusicFileNamePattern;
string path = pattern.BuildFull (BaseDirectory, track);
SafeUri uri = new SafeUri (path);
diff --git a/src/Core/Banshee.Services/Banshee.Library/MusicFileNamePattern.cs b/src/Core/Banshee.Services/Banshee.Library/MusicFileNamePattern.cs
index 13528f1..b364000 100644
--- a/src/Core/Banshee.Services/Banshee.Library/MusicFileNamePattern.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/MusicFileNamePattern.cs
@@ -39,7 +39,7 @@ using Banshee.Configuration.Schema;
namespace Banshee.Library
{
- public class MusicFileNamePattern : FileNamePattern
+ public class MusicFileNamePattern : PathPattern
{
public MusicFileNamePattern ()
{
diff --git a/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs b/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs
index 053c854..f549c27 100644
--- a/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs
@@ -43,8 +43,8 @@ namespace Banshee.Library
{
public class MusicLibrarySource : LibrarySource
{
- private static FileNamePattern music_filename_pattern = new MusicFileNamePattern ();
- public static FileNamePattern MusicFileNamePattern {
+ private static PathPattern music_filename_pattern = new MusicFileNamePattern ();
+ public static PathPattern MusicFileNamePattern {
get { return music_filename_pattern; }
}
@@ -52,6 +52,7 @@ namespace Banshee.Library
{
music_filename_pattern.FolderSchema = LibrarySchema.FolderPattern;
music_filename_pattern.FileSchema = LibrarySchema.FilePattern;
+ Banshee.Base.FileNamePattern.MusicPattern = music_filename_pattern;
}
// Catalog.GetString ("Music Library")
diff --git a/src/Core/Banshee.Services/Banshee.Library/Tests/FileNamePatternTests.cs b/src/Core/Banshee.Services/Banshee.Library/Tests/FileNamePatternTests.cs
index 75a1a56..34e9376 100644
--- a/src/Core/Banshee.Services/Banshee.Library/Tests/FileNamePatternTests.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/Tests/FileNamePatternTests.cs
@@ -45,7 +45,7 @@ namespace Banshee.Library.Tests
return num < 10 ? "0" + str : str;
}
- public static FileNamePattern FileNamePattern { get { return MusicLibrarySource.MusicFileNamePattern; } }
+ public static PathPattern Pattern { get { return MusicLibrarySource.MusicFileNamePattern; } }
[Test]
public void MakePathsRelative ()
@@ -61,7 +61,7 @@ namespace Banshee.Library.Tests
public void CreateFromTrackInfo()
{
SampleTrackInfo track = new SampleTrackInfo();
- string built = FileNamePattern.CreateFromTrackInfo(
+ string built = Pattern.CreateFromTrackInfo(
"%artist%:%album%:%title%:%track_number%:" +
"%track_count%:%track_number_nz%:%track_count_nz%",
track);
@@ -93,7 +93,7 @@ namespace Banshee.Library.Tests
"{%track_number%. }%title%.oga";
Assert.AreEqual (
"Esoteric/2008 The Maniacal Vale (disc 2 of 2)/01. Silence.oga",
- FileNamePattern.Convert (pattern, conversion => conversion.Handler (track, null)));
+ Pattern.Convert (pattern, conversion => conversion.Handler (track, null)));
}
[Test]
@@ -103,7 +103,7 @@ namespace Banshee.Library.Tests
DiscNumber = 0
};
var pattern = "{ (disc %disc_number%)}";
- Assert.IsEmpty (FileNamePattern.Convert (pattern, conversion => conversion.Handler (track, null)));
+ Assert.IsEmpty (Pattern.Convert (pattern, conversion => conversion.Handler (track, null)));
}
[Test]
@@ -113,7 +113,7 @@ namespace Banshee.Library.Tests
Genre = ""
};
var pattern = "{ (%genre%)}";
- Assert.IsEmpty (FileNamePattern.Convert (pattern, conversion => conversion.Handler (track, null)));
+ Assert.IsEmpty (Pattern.Convert (pattern, conversion => conversion.Handler (track, null)));
}
[Test]
@@ -124,7 +124,7 @@ namespace Banshee.Library.Tests
DiscCount = 2
};
var pattern = "{ (disc %disc_number% of %disc_count%)}";
- Assert.IsEmpty (FileNamePattern.Convert (pattern, conversion => conversion.Handler (track, null)));
+ Assert.IsEmpty (Pattern.Convert (pattern, conversion => conversion.Handler (track, null)));
}
}
}
diff --git a/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataJob.cs b/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataJob.cs
index bc00bca..1984cc7 100644
--- a/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataJob.cs
+++ b/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataJob.cs
@@ -115,7 +115,7 @@ namespace Banshee.Metadata
return false;
}
- string new_filename = track.FileNamePattern.BuildFull (source.BaseDirectory, track, System.IO.Path.GetExtension (old_uri.ToString ()));
+ string new_filename = track.PathPattern.BuildFull (source.BaseDirectory, track, System.IO.Path.GetExtension (old_uri.ToString ()));
SafeUri new_uri = new SafeUri (new_filename);
if (!new_uri.Equals (old_uri) && !Banshee.IO.File.Exists (new_uri)) {
diff --git a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
index 59a6266..604d4e5 100644
--- a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
@@ -239,11 +239,11 @@ namespace Banshee.Sources
set { ExpandedSchema.Set (value); }
}
- public FileNamePattern FileNamePattern { get; private set; }
+ public PathPattern PathPattern { get; private set; }
- protected void SetFileNamePattern (FileNamePattern pattern)
+ protected void SetFileNamePattern (PathPattern pattern)
{
- FileNamePattern = pattern;
+ PathPattern = pattern;
var file_system = PreferencesPage.Add (new Section ("file-system", Catalog.GetString ("File Organization"), 5));
file_system.Add (new SchemaPreference<string> (pattern.FolderSchema, Catalog.GetString ("Folder hie_rarchy")));
diff --git a/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs b/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs
index 399b7c7..b633f4c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs
@@ -52,9 +52,9 @@ namespace Banshee.Preferences.Gui
foreach (var library in ServiceManager.SourceManager.FindSources<LibrarySource> ()) {
new LibraryLocationButton (library);
- if (library.FileNamePattern != null) {
+ if (library.PathPattern != null) {
var library_page = library.PreferencesPage;
- var pattern = library.FileNamePattern;
+ var pattern = library.PathPattern;
var folder_pattern = library_page["file-system"][pattern.FolderSchema.Key];
folder_pattern.DisplayWidget = new PatternComboBox (library, folder_pattern, pattern.SuggestedFolders);
@@ -180,11 +180,11 @@ namespace Banshee.Preferences.Gui
already_added = true;
}
- Add (source.FileNamePattern.CreatePatternDescription (pattern), pattern);
+ Add (source.PathPattern.CreatePatternDescription (pattern), pattern);
}
if (!already_added) {
- Add (source.FileNamePattern.CreatePatternDescription (conf_pattern), conf_pattern);
+ Add (source.PathPattern.CreatePatternDescription (conf_pattern), conf_pattern);
}
ActiveValue = conf_pattern;
@@ -217,11 +217,11 @@ namespace Banshee.Preferences.Gui
private void OnChanged (object o, EventArgs args)
{
- var pattern = source.FileNamePattern.CreateFolderFilePattern (folder.ActiveValue, file.ActiveValue);
+ var pattern = source.PathPattern.CreateFolderFilePattern (folder.ActiveValue, file.ActiveValue);
var sb = new System.Text.StringBuilder ();
- foreach (var track in source.FileNamePattern.SampleTracks) {
- string display = source.FileNamePattern.CreateFromTrackInfo (pattern, track);
+ foreach (var track in source.PathPattern.SampleTracks) {
+ string display = source.PathPattern.CreateFromTrackInfo (pattern, track);
if (!String.IsNullOrEmpty (display)) {
sb.AppendFormat ("<small>{0}.ogg</small>", GLib.Markup.EscapeText (display));
}
diff --git a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookFileNamePattern.cs b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookFileNamePattern.cs
index 6fc5dfd..09ad77e 100644
--- a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookFileNamePattern.cs
+++ b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookFileNamePattern.cs
@@ -38,7 +38,7 @@ using Banshee.Configuration.Schema;
namespace Banshee.Audiobook
{
- public class AudiobookFileNamePattern : FileNamePattern
+ public class AudiobookFileNamePattern : PathPattern
{
public AudiobookFileNamePattern ()
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]