diff --git a/src/SheetMe.Designer/Diagnostics/EditSmoke.cs b/src/SheetMe.Designer/Diagnostics/EditSmoke.cs index 05840ed..a6ab162 100644 --- a/src/SheetMe.Designer/Diagnostics/EditSmoke.cs +++ b/src/SheetMe.Designer/Diagnostics/EditSmoke.cs @@ -285,10 +285,14 @@ public static class EditSmoke $"실제 {groupRow?.Members.Count} / {groupRow?.Name}"); // 아웃라인은 페이지 헤더로 시작하고 '페이지 추가' 행으로 끝난다 - Check("레이어: 첫 행은 페이지 헤더", lay.LayerRows.FirstOrDefault() is LayerPageViewModel); - Check("레이어: 마지막 행은 페이지 추가", lay.LayerRows.LastOrDefault() is LayerAddPageViewModel); + // 페이지는 별도 구획으로 나갔다 — 한 장짜리 문서의 트리에는 페이지 마디가 없다 + Check("레이어: 페이지 구획이 페이지를 담는다", + lay.PageRows.Count == lay.Pages.Count && lay.PageRows.Count == 1); + Check("레이어: 한 장이면 트리에 페이지 마디가 없다", + !lay.ShowPageNodes && !lay.LayerRows.OfType().Any()); + Check("레이어: 첫 행이 곧 컨트롤·그룹이다", lay.LayerRows.FirstOrDefault() is not LayerPageViewModel); Check("레이어: 페이지 헤더는 선택 대상 아님", - lay.LayerRows.OfType().Where(r => r is LayerPageViewModel or LayerAddPageViewModel) + lay.LayerRows.OfType().Where(r => r is LayerPageViewModel) .All(r => !r.IsSelectableRow)); // 폴더 바로 뒤에 멤버가 들여쓰기된 채 이어져야 한다(평탄화 시퀀스) @@ -296,11 +300,11 @@ public static class EditSmoke Check("레이어: 폴더 뒤에 멤버가 들여쓰여 이어짐", folderIndex >= 0 && lay.LayerRows.Skip(folderIndex + 1).Take(2) - .OfType().Count(c => c.LayerIndent == 32) == 2); - Check("레이어: 페이지 직속 컨트롤 들여쓰기 12", + .OfType().Count(c => c.LayerIndent == 20) == 2); + Check("레이어: 한 장이면 최상위 들여쓰기가 0", lay.LayerRows.OfType() .Where(c => c.Model.GroupId is null && c.Parent is null) - .All(c => c.LayerIndent == 12)); + .All(c => c.LayerIndent == 0)); // 목록 맨 위 = z-order 최상위 (모델 리스트 index 0) var topControl = lay.LayerRows.OfType().First(); @@ -493,7 +497,7 @@ public static class EditSmoke { var pg = new DesignerViewModel(business.CreateNew()); pg.AddControlAt("Label", new Point(100, 100)); - var pageRow = pg.LayerRows.OfType().First(); + var pageRow = pg.PageRows[0]; pg.ActivatePage(pageRow.Page); Check("페이지 속성: 페이지 모드 진입", pg.InspectedPage is not null && pg.Selection.Items.Count == 0); diff --git a/src/SheetMe.Designer/Themes/DesignerTheme.xaml b/src/SheetMe.Designer/Themes/DesignerTheme.xaml index 675085c..e7dc05a 100644 --- a/src/SheetMe.Designer/Themes/DesignerTheme.xaml +++ b/src/SheetMe.Designer/Themes/DesignerTheme.xaml @@ -993,6 +993,55 @@ + + + + + + + + - -