Phase C (T2-1..T3-10): command palette, reader mode (real Readability.js, E2E), boost force-dark, screenshot, split view, vertical tabs, Glance (Alt+click), tab groups (6 colors), workspaces, speed dial, InPrivate tabs, quick find, source view, print, PiP, TTS (94 tests GREEN)

This commit is contained in:
Yun Chan 2026-08-15 15:22:44 +09:00
parent 0caa1111e7
commit 406957088f
14 changed files with 3496 additions and 7 deletions

View file

@ -38,6 +38,12 @@ public sealed class TabItem : INotifyPropertyChanged
private bool _isLoading;
public bool IsLoading { get => _isLoading; set => Set(ref _isLoading, value); }
private string? _groupName; // T2-11 탭 그룹
public string? GroupName { get => _groupName; set => Set(ref _groupName, value); }
private string? _groupColor;
public string? GroupColor { get => _groupColor; set => Set(ref _groupColor, value); }
/// <summary>마지막 활성 시각(탭 절전 판정용)</summary>
public DateTime LastActivated { get; set; } = DateTime.UtcNow;
@ -52,6 +58,13 @@ public sealed class TabItem : INotifyPropertyChanged
/// <summary>탭별 페이지 내 검색 세션 (CoreWebView2 바인딩).</summary>
public FindSession? FindSession { get; set; }
/// <summary>T2-4 리더 모드 진입 여부.</summary>
public bool IsReader { get; set; }
/// <summary>T3-3 InPrivate(사생활 보호) 탭 여부.</summary>
public bool IsPrivate { get; set; }
/// <summary>리더 진입 전 원본 URL(복귀용).</summary>
public string? ReaderOriginalUrl { get; set; }
public event PropertyChangedEventHandler? PropertyChanged;
private void Set<T>(ref T field, T value, [CallerMemberName] string? name = null)