LT-19718: Replace Default WS in New Project Wizard#3
Closed
papeh wants to merge 1 commit intosillsdev:release/9.0from
Closed
LT-19718: Replace Default WS in New Project Wizard#3papeh wants to merge 1 commit intosillsdev:release/9.0from
papeh wants to merge 1 commit intosillsdev:release/9.0from
Conversation
jasonleenaylor
requested changes
May 16, 2019
Contributor
jasonleenaylor
left a comment
There was a problem hiding this comment.
I think english needs to be preserved in the all list.
Reviewed 2 of 2 files at r1.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @papeh)
Src/FwCoreDlgs/FwCoreDlgsTests/FwNewLangProjectModelTests.cs, line 455 at r1 (raw file):
Assert.That(model.WritingSystemContainer.CurrentAnalysisWritingSystems.First().LanguageTag, Is.EqualTo("en"), "Test setup problem"); model.SetDefaultWs(new LanguageInfo{LanguageTag = "de"}); Assert.That(model.WritingSystemContainer.AnalysisWritingSystems.Count, Is.EqualTo(1), "all");
I expected to have english retained in the analysis list. If it is somehow added after the wizard we need a test for that.
- When selecting a new Default WS, relpace the existing one - Test that English is an Analysis WS in every new project, even if the user has removed it. Change-Id: I82c732cc40d9cd3d259002275b7eabcc55eff981
Contributor
Author
|
submitted and merged through Gerrit. |
sillsdevgerrit
pushed a commit
that referenced
this pull request
Nov 12, 2020
Includes: 1. Assimilating all IUtility implementations into the UtilityDlg class. 2. Make one version of the string "???" and have all clients use it. 3. Move code out of the IUtility impls and into FwUtils as extensions of LCM. 4. Move related tests for #3 into FwUtils test assembly. 5. Re-add support for user-defined IUtility impls. 6. Get rid of unused code (e.g., SampleCitationFormTransducer class). Change-Id: I38629bd5929d1fc8c1b851ac13212f4b4f5c69b6
johnml1135
added a commit
that referenced
this pull request
Nov 19, 2025
- Enforce the `<ProjectName>Tests/**` exclusion pattern across SDK-style projects to prevent CS0436 type conflicts and mixed-code issues. - Rename `ConverterTest.cs` to `ConverterTester.cs` in `FwCoreDlgs` (and update references in `AddCnvtrDlg.cs`) to resolve a naming conflict where production code was incorrectly identified as a test. - Update project files (e.g., `FwUtils`, `FwParatextLexiconPlugin`, `Paratext8Plugin`) to align with the standard exclusion pattern. - Add `scripts/test_exclusions/` tooling (`repo_scanner.py`, `validator.py`) to audit and validate compliance. - Update `managed.instructions.md` and specs to document the new standard.
johnml1135
added a commit
that referenced
this pull request
Nov 19, 2025
- Enforce the `<ProjectName>Tests/**` exclusion pattern across SDK-style projects to prevent CS0436 type conflicts and mixed-code issues. - Rename `ConverterTest.cs` to `ConverterTester.cs` in `FwCoreDlgs` (and update references in `AddCnvtrDlg.cs`) to resolve a naming conflict where production code was incorrectly identified as a test. - Update project files (e.g., `FwUtils`, `FwParatextLexiconPlugin`, `Paratext8Plugin`) to align with the standard exclusion pattern. - Add `scripts/test_exclusions/` tooling (`repo_scanner.py`, `validator.py`) to audit and validate compliance. - Update `managed.instructions.md` and specs to document the new standard.
johnml1135
added a commit
that referenced
this pull request
Mar 5, 2026
# This is the 1st commit message: feat(render): expand DataTree render scenarios and persist benchmark timings standardize DataTree test data with predictable field naming across scenarios add per-scenario timing capture and write results to datatree-timings.json add Newtonsoft.Json to DetailControlsTests for timing serialization add render-testing skill documentation for baseline and benchmark workflow remove obsolete generated Build/FieldWorks.targets.bad file update checked-in test result artifact for current render test run fix: resolve build blocker + timing test layout gaps - Remove duplicate Kernel project entry in FieldWorks.sln that blocked NuGet restore (first entry was missing EndProject) - Add CitationForm and Senses parts to test Normal layout so timing tests produce real slices instead of 0 - Add LexSense-Detail-Senses part and subsense recursion to GlossSn layout so WorkloadGrowsWithComplexity test correctly validates that deeper scenarios produce more slices - Include user edits to implementation-paths.md OS-3: All 4 DataTreeTiming tests now pass perf: add render-testing workflow + timing enhancement log - Update render-testing skill with explicit devil's advocate stage, retest/review, and mandatory TIMING_ENHANCEMENTS.md before commit. - Refine DataTree tab-index optimization safety by moving final ResetTabIndices(0) to CreateSlices finally. - Keep DeepSuspendLayout/DeepResumeLayout batching in DummyObjectSlice.BecomeReal. - Mark OS-3 and OS-5 complete in OpenSpec tasks and add TIMING_ENHANCEMENTS.md with measured outcomes. Validation: build.ps1 -BuildTests; test.ps1 -TestFilter DataTreeTiming -NoBuild perf: paint pipeline optimization — clip-rect culling + double-buffering - HandlePaintLinesBetweenSlices: skip separator lines outside paint clip rect, reducing per-paint iteration from O(N) to O(visible) during scroll/partial repaints. Avoids O(N) XML attribute parsing on off-screen slices. - DataTree constructor: enable OptimizedDoubleBuffer + AllPaintingInWmPaint to eliminate flicker during paint. - Add DataTreeTiming_PaintPerformance test for paint-time regression detection. - Update render-testing skill with test coverage assessment step. - Update TIMING_ENHANCEMENTS.md with enhancements 3 and 4. perf: layout path optimization — early-exit guard, construction skip, paint-path skip Enhancement 5: Slice.SetWidthForDataTreeLayout returns early when m_widthHasBeenSetByDataTree && Width == width, avoiding redundant splitter resizing and event handler churn on every layout pass. Enhancement 6: DataTree.OnSizeChanged skips the O(N) splitter adjustment loop during ConstructingSlices. HandleLayout1(fFull=true) handles width synchronization after construction completes. Enhancement 7: HandleLayout1 paint path (fFull=false) skips SetWidthForDataTreeLayout for non-visible slices, reducing width-sync work from O(N) to O(K) per paint where K is visible slice count. Also fixes RemoveDuplicateCustomFields test to match Test.fwlayout Normal layout changes from prior commit. perf: XML attribute caching + MakeSliceVisible high-water mark Enhancement 8: Cache header/skipSpacerLine/sameObject XML attributes on Slice as lazy bool? fields. Eliminates per-paint XML parsing in HandlePaintLinesBetweenSlices (~2,700 XML lookups/sec at 60Hz with 15 visible slices reduced to 0 after first access). Enhancement 9: Change MakeSliceVisible from static to instance method. Pass known index from HandleLayout1 caller (avoids O(N) IndexOf). Track m_lastVisibleHighWaterMark so the inner 'make preceding visible' loop amortizes to O(N) total instead of O(N*V). Preserves the .NET Framework bug workaround (LT-7307). Reset mark in CreateSlices. perf: construction-path guards + optimization regression tests Enhancement 10: Skip ResetTabIndices in RemoveSlice during ConstructingSlices. Mirror of Enhancement 1 — the finally block in CreateSlices already does a single ResetTabIndices(0) after all removals/insertions complete. Enhancement 11: Skip AdjustSliceSplitPosition in InstallSlice during ConstructingSlices. HandleLayout1(fFull=true) sets correct widths + splitter positions after construction, making per-insert adjustment redundant. Added 7 optimization regression tests (DataTreeOpt_ prefix): - WidthStabilityAfterLayout (Enhancement 5) - AllViewportSlicesVisible (Enhancement 9) - XmlCacheConsistency (Enhancement 8) - XmlCacheInvalidationOnConfigChange (Enhancement 8) - SequentialPaintsProduceIdenticalOutput (Enhancements 3,4,7,8) - SlicePositionsMonotonicallyIncreasing (Enhancement 3) - IsHeaderNodeDelegatesToCachedProperty (Enhancement 8) All 12 DataTree tests pass (5 timing + 7 optimization). # This is the commit message #2: feat: Enhancement 12 — binary search in HandleLayout1 paint path Add FindFirstPotentiallyVisibleSlice binary search to skip above-viewport slices during paint-path layout. Addresses JohnT's original TODO in OnPaint. - HandleLayout1 now starts iteration at the first potentially visible slice (with -1 safety margin) instead of index 0 on paint-path calls - Timing improvements: shallow -71%, deep -20%, extreme -7%, paint -11% - 5 binary-search risk-reduction tests added (DataTreeOpt_ prefix) - Regenerate snapshot baselines after layout/parts changes from 64ab221 - Add mandatory snapshot regression check (Step 6) to render-testing skill - Update TIMING_ENHANCEMENTS.md with E12 measurements and devil's advocate # This is the commit message #3: The real optimization - HWND virtualization # This is the commit message #4: fix: correct VwDrawRootBuffered coordinate mapping + trailing separator bars Three rendering quality fixes for the snapshot capture pipeline: 1. VwDrawRootBuffered coordinate fix (CompositeViewCapture.cs): GetCoordRects returns rcDst in rootSite-local coordinates (origin at HorizMargin, 0). The overlay code was passing clientRect with the rootSite's position relative to the DataTree (e.g. X=175), causing VwDrawRootBuffered to offset rcDst by (-175, -y) and render content at negative X — clipping or hiding it entirely. Fix: render each rootSite into a temp bitmap at local coords (0,0,w,h), then composite into the main bitmap at the correct DataTree-relative position. 2. EnsureAllSlicesInitialized uses BecomeRealInPlace (CompositeViewCapture.cs): Replaced manual handle-forcing with the production ViewSlice initialization path, which sets AllowLayout=true and triggers rootBox.Layout with the correct width. 3. Trailing separator bar removal (VectorReferenceView.cs, PossibilityVectorReferenceView.cs): DisplayVec called AddSeparatorBar after every item including the last, causing VwSeparatorBox to draw unwanted grey bars after single/final items like 'Main Dictionary'. Added guard to only add separators between items. Baselines regenerated — all 6 scenarios show 40-70% more rendered content. All 23 DataTree tests pass (timing + optimization + snapshots). # This is the commit message #5: Added tests before virtualization # This is the commit message #6: update renders # This is the commit message #7: Hwnd implementation started # This is the commit message #8: upgrade openspec # This is the commit message #9: hwnd implementation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change-Id: I82c732cc40d9cd3d259002275b7eabcc55eff981
This change is