Gear cleanup + Default Location for Recordings + single Start + socials hover glow

KISS: removed Gear-menu Save/SaveAs/Open Layout (redundant with auto-save; multi-layout = OBS).
App Settings: first real setting — Default Location for Recordings (Browse + Use Downloads reset,
fallback: configured → Downloads → MyVideos). Single Start button (pills = intent, button = trigger).
Socials button moved to preview bottom row, left of TRAX; hover pulses the SocialBarElement
DropShadowEffect (sine wave BlurRadius 24→48, Opacity 0.7→1.0 at 30ms). TextBox OneWay binding
fix for get-only RecordFolderDisplay. ONE fallback test. Build 0 warnings, 247 tests (2 known).
This commit is contained in:
2026-08-29 10:30:40 -07:00
parent eba6af5b9b
commit 6031a5682d
6 changed files with 159 additions and 120 deletions
@@ -4,6 +4,7 @@ using Microsoft.Data.Sqlite;
using Xunit;
using ytLive.Models;
using ytLive.Services;
using ytLive.ViewModels;
namespace ytLive.Tests;
@@ -389,6 +390,8 @@ public class LayoutStorePersistenceTests
}
}
// TASK 21: media-source config (Path, Looping, Volume, PlaybackState) must
// survive a save + reload through the full DELETE-all/re-insert cycle.
// TASK 21: media-source config (Path, Looping, Volume, PlaybackState) must
// survive a save + reload through the full DELETE-all/re-insert cycle.
[Fact]
@@ -431,4 +434,19 @@ public class LayoutStorePersistenceTests
try { File.Delete(path); } catch { /* best-effort cleanup */ }
}
}
// TASK: default record folder falls back to Downloads (0th case / no preference).
[Fact]
public void DefaultRecordFolder_Falls_Back_To_Downloads()
{
var folder = MainViewModel.DefaultRecordFolder();
var downloads = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
if (Directory.Exists(downloads))
Assert.Equal(downloads, folder);
else
Assert.Equal(
Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), folder);
}
}