Add patterned rename and Move to, and keep settings, selection, and queue speed from resetting.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-26 18:29:17 +02:00
parent 66ea25993f
commit ff070beba4
62 changed files with 3172 additions and 92 deletions

View File

@@ -87,6 +87,8 @@ public class UiPreferencesStoreTests
Assert.Null(prefs.FfmpegPath);
Assert.True(prefs.SessionTabs is null || prefs.SessionTabs.Count == 0);
Assert.True(prefs.FavoriteFolders is null || prefs.FavoriteFolders.Count == 0);
Assert.True(prefs.NamePatterns is null || prefs.NamePatterns.Count == 0);
Assert.True(prefs.MoveToPatterns is null || prefs.MoveToPatterns.Count == 0);
}
[Fact]
@@ -167,6 +169,31 @@ public class UiPreferencesStoreTests
Assert.Equal(@"C:\Users\Dominique\Documents", prefs.FavoriteFolders[1]);
}
[Fact]
public void Parse_reads_name_patterns_and_skips_built_ins()
{
var prefs = UiPreferencesStore.Parse(
[
"name-pattern={Album} - {Title}",
"name-pattern={Album} - {Title}",
"name-pattern={Artist} - {Title}",
"name-pattern="
]);
Assert.NotNull(prefs.NamePatterns);
Assert.Equal(["{Album} - {Title}"], prefs.NamePatterns);
}
[Fact]
public void Parse_reads_move_to_patterns()
{
var prefs = UiPreferencesStore.Parse(
[
@"move-to=\\10.0.0.31\media\movies\%filename_noext%",
@"move-to=\\10.0.0.31\media\movies\%filename_noext%"
]);
Assert.Equal([@"\\10.0.0.31\media\movies\%filename_noext%"], prefs.MoveToPatterns);
}
[Fact]
public void Session_tab_roundtrip_escapes_semicolons_in_paths()
{
@@ -199,7 +226,9 @@ public class UiPreferencesStoreTests
new SessionTabState(@"C:\Temp", @"D:\", true, 0.6, true)
],
SessionActiveTab: 0,
PreferFavoritesInTree: true));
PreferFavoritesInTree: true,
NamePatterns: ["{Album} - {Title}"],
MoveToPatterns: [@"\\10.0.0.31\media\movies\%filename_noext%"]));
var loaded = store.Load();
Assert.Equal("Light", loaded.Theme);
Assert.True(loaded.GroupNetworkPlaces);
@@ -218,6 +247,8 @@ public class UiPreferencesStoreTests
Assert.Equal(720, loaded.WindowHeight);
Assert.Equal(300, loaded.TreeWidth);
Assert.Equal([@"D:\Photos", @"C:\Users\Dominique\Documents"], loaded.FavoriteFolders);
Assert.Equal(["{Album} - {Title}"], loaded.NamePatterns);
Assert.Equal([@"\\10.0.0.31\media\movies\%filename_noext%"], loaded.MoveToPatterns);
Assert.NotNull(loaded.SessionTabs);
var tab = Assert.Single(loaded.SessionTabs);
Assert.Equal(@"C:\Temp", tab.LeftPath);