Repository navigation
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem
Views and drawings already open as tabs above the main area (the 3D model, saved 3D views, plans, elevations, sections and drawing files). A photo of an E57 file, however, is entered inside the 3D view: the 3D camera jumps to where the photo was taken and the photo is laid over the points. While a photo is open, the 3D model is not visible on its own, and only one view can be seen at a time. With two screens, the application can only use one of them.
Proposed behavior
- A photo opens as a tab of its own. Entering a panorama or a pinhole photo (a click on its mark, a row in the Project Browser, next/previous photo) opens or reuses a photo tab beside the 3D model, named after the photo. The tab keeps its own look direction, field of view and blend; the 3D model tab keeps its own camera. Measuring and picking keep working in the photo tab.
- Tiling. The main area can be split into panes: side by side, one above the other, or a 2 × 2 grid. Each pane shows one tab and has its own tab strip. A tab is moved to another pane by dragging it, and dropping it on the edge of a pane splits that pane. The divider between panes can be dragged; closing the last tab of a pane removes the pane.
- Linked panes (optional per pane). A photo pane and a 3D pane can be linked, so that the 3D view shows where the photo was taken and the photo follows when another photo mark is clicked in 3D. A selected point, a measurement and the section box are shared by all panes.
- Tear-off windows. A tab dragged out of the application window becomes a window of its own, which can be moved to another screen and maximised there. Dragging its tab back onto the main window docks it again. Closing the main window closes its torn-off windows.
- The layout is kept. The panes, their tabs and torn-off windows (with the screen they were on) come back after a restart, and fall back to the main window when that screen is gone.
Acceptance tests
- Clicking a photo mark opens a photo tab next to the 3D model; switching back to the 3D model shows the 3D camera unchanged; stepping to the next photo reuses the photo tab.
- Dragging the photo tab to the right edge shows the 3D model and the photo side by side; both stay interactive, and a distance measured in the photo is drawn in the 3D pane.
- A 2 × 2 grid with the 3D model, a plan, an elevation and a photo can be built by dragging tabs, and survives a restart.
- A tab dragged out of the window becomes its own window on the second screen; dragging it back docks it; closing the main window closes it.
- With the second screen disconnected, a restored layout puts its torn-off windows back in the main window.
Related: #13 (texture surfaces using E57 photographs).
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
boazeggs commentedon Nov 5, 2026
Current-code audit (main afe5c0c): photo tabs and the dedicated photo/3D comparison already exist in
native/desktop/src/view_tabs.rs; the model and photo keep separate camera state. The older photo-tabs PR #19 is incorporated in integration PR #53 without replacing the newer implementation.Still required here: a general pane tree with per-pane tab strips and drag-to-split, draggable dividers, a persistent 2×2 layout containing drawings as well as photos/3D, native tear-off windows with dock-back, and restart/disconnected-monitor recovery. The current dedicated comparison view does not satisfy those acceptance cases. This issue remains open; closing #19 through the integration merge will not close this broader request.
boazeggs commentedon Nov 6, 2026
Aanvulling in PR #61: gekalibreerde stationspanorama’s openen nu ook in een eigen herbruikbare fototab. De modelcamera blijft behouden; de fototab bewaart kijkrichting, beeldhoek en looppositie, ook buiten het station. Wisselen met routefoto’s en sluiten van tabs herstellen de juiste camera zonder de scan of foto’s te verwijderen.
Gecontroleerd met alle 738 native tests (0 fouten, 9 bewust overgeslagen afbeeldingsgeneratoren), Clippy voor alle targets met waarschuwingen als fouten en een echte geïsoleerde GUI-proef op een sectie van het publieke Scanner2GO BLK2GO E57-bestand. De gedecodeerde stationsfoto en eigen tab zijn visueel bekeken; beide camera’s, behoud van de scan en ongewijzigde bron-SHA-256 zijn gecontroleerd. Script en resultaat:
native/validation/station-photo-tabs/in de PR.Dit sluit #16 nog niet: algemene tabstroken per paneel, slepen/splitsen, losse vensters en herstellen van de monitorindeling blijven te verwerken. Het onafhankelijke indelingsmodel heeft inmiddels acht geslaagde tests voor splitsen, tabbezit, losmaken/docken, afsluiten en monitorfallback; dat wordt nog aangesloten op de GUI. De PR’s worden daarnaast gezamenlijk geïntegreerd en opnieuw getest in #53.
boazeggs commentedon Nov 6, 2026
Voortgang staat nu in draft PR #62, apart van de stabiele integratie-PR #53.
Werkend en getest: afzonderlijke paneelcamera’s, tabbladen binnen het venster samenvoegen en naar een rand slepen, eigen fotolaadopdrachten, echte losse vensters en terugdokken. De werkelijke muisproef versleepte ook een niet-actief fototabblad zonder het geselecteerde model te verplaatsen. Een echte BLK2GO-stationfoto laadde in een inactief zichtbaar paneel; beide camera’s en de oorspronkelijke E57-bytes bleven behouden.
Validatie op de huidige head
ff426f58528e8b5df642280791a5e1838021951c: 785 native tests geslaagd (9 expliciet overgeslagen), volledige workspace-build, Clippy met warnings als fouten, rendervergelijking, muisinput, native venster-/dockproef en de bestaande vier GUI-proeven geslaagd. Reproduceerbare resultaten staan ondernative/validation/document-panes/.Dit issue blijft open: het eerste slepen moet nog rechtstreeks vanuit de oorspronkelijke documentstrip werken, layout-/bron-/cameraherstel moet nog aan startup worden gekoppeld, gekoppelde panelen en de volledige 2 × 2-tekeningenproef zijn nog niet af, en slepen tussen losse vensters en terug moet nog op meerdere schermen worden gevalideerd. De opslag- en monitorherstelbackend heeft tests, maar wordt nog niet als werkende applicatiepersistentie aangemerkt.
boazeggs commentedon Nov 6, 2026
Voortgang in draft PR #62 (57c09e5): de paneelindeling, bronverwijzingen, afzonderlijke camera’s, tekenlagen en gedeelde section box worden nu atomair opgeslagen en bij een nieuwe applicatiestart hersteld.
Validatie: 791 native tests geslaagd (9 expliciet genegeerd), workspace-build en Clippy met warnings denied geslaagd. Twee echte procesherstarts zijn getest: een synthetische routefoto en een echte Leica BLK2GO E57-stationsfoto. Paneelboom en camera’s kwamen terug; in de gecontroleerde model-/fotogebieden veranderden nul pixels en de SHA-256 van beide bronbestanden bleef gelijk. De routefoto behield de ingestelde 37% blend. Reproduceerbare probes en resultaten staan in
native/validation/document-panes/.Dit sluit #16 nog niet: de 2 × 2-proef met model, plan, aanzicht en foto (inclusief annotaties), direct slepen vanuit de oorspronkelijke documentstrip, gekoppelde panelen en monitor-/crosswindowherstel worden verder uitgewerkt. Niet-verifieerbare losse vensters worden bij de start momenteel teruggedockt in het hoofdvenster.
boazeggs commentedon Nov 6, 2026
PR #62 is aangevuld in 87fa30b. Direct slepen vanuit de oorspronkelijke documentstrip is nu met echte Wayland-muisinvoer getest: foto naar rechterrand, terug tussen modeltabs, daarna de inactieve fototab opnieuw naar de rand. Dit vereist geen voorafgaande API-split of klik op ▥. Dezelfde proef heeft losse native vensters, vensterspecifieke screenshots en terugdocken gecontroleerd; het echte BLK2GO-stationspanorama decodeert nog steeds in een inactief zichtbaar paneel zonder bronwijziging.
De nieuwe herstartproef bouwt een 2 × 2-indeling met model, routefoto, plan en aanzicht. Plan en aanzicht hebben verschillende laaginstellingen en elk een annotatie. Na een volledige procesherstart zijn paneelboom, camera’s, laaginstellingen, annotaties en fotoblend hersteld: nul gewijzigde pixels in alle vier gecontroleerde interieurs, met dezelfde bronhash. De proef en het synthetische beeld staan in
native/validation/document-panes/.793 native tests geslaagd, 9 expliciet genegeerd; workspace-build en all-target Clippy met warnings denied geslaagd. De herstartproef vond en verhelpt ook het overschrijven van een fotocamera tijdens het asynchroon openen van een tekening.
#16 blijft open voor gekoppelde panelen, monitoridentiteit/plaatsingsherstel en volledige crosswindow-dragvalidatie. Ik werk daarnaast de bestaande bladtabs bij zodat ook die hun eigen papierrenderer en camera gebruiken.
boazeggs commentedon Nov 6, 2026
Aanvulling op #62 in 2c89fda: bestaande bladtabs gebruiken nu hun eigen papierrenderer, camera en cache. Bladdefinities, bronafbeeldingen en lopende tekenopdrachten blijven gedeeld; een camerawissel zet de globale revisie of jobs niet terug.
Een echte procesherstart met model, foto, A4 staand en A3 liggend heeft afzonderlijke papiercamera’s, geplaatste tekeningen en bladannotaties hersteld. Alle vier gecontroleerde beeldgebieden zijn identiek vóór/na herstart; ook de bronhash blijft gelijk. Reproductie:
restart.py --sheets, met resultaten en uitsluitend synthetische screenshots innative/validation/document-panes/.795 native tests geslaagd (9 expliciet genegeerd), workspace-build en all-target Clippy met warnings denied geslaagd. #16 blijft open voor gekoppelde panelen, het herstellen van monitorplaatsingen en verdere crosswindow-dragvalidatie.
boazeggs commentedon Nov 6, 2026
#62 is aangevuld in 2a6bab1 met het terug slepen tussen echte native vensters. De drop gebruikt de laatst ontvangen doelpositie, ook wanneer het bronvenster zijn loslaatbericht later doorgeeft. Vertraagde callbacks zijn aan een dragnummer gekoppeld; sluiten van vensters en documenten ruimt hun muis-/dragstatus op.
De werkelijke Wayland-muisproef slaagt op één uitvoer én op twee virtuele schermen van elk 1280 × 720: los fotovenster naar het tweede scherm verplaatsen, fototab terug slepen naar het modelpaneel op het eerste scherm, leeg venster laten vervallen, één documenteigenaar behouden en dezelfde fotocamera terugzien. Beide proeven controleren daarna ook het echte BLK2GO-panorama in een inactief zichtbaar paneel; de bron blijft ongewijzigd. JSON en screenshots met uitsluitend synthetische data staan in
native/validation/document-panes/.799 native tests geslaagd (9 expliciet genegeerd), volledige workspace-build en workspace/all-target Clippy met warnings denied geslaagd. #16 blijft open voor gekoppelde panelen, monitoridentiteit/plaatsingsherstel en aanvullende fysieke Windows/macOS-monitortests. PR #53 blijft ongewijzigd gereed voor de vereiste code-eigenaarsreview.
boazeggs commentedon Nov 6, 2026
#62 is aangevuld met gekoppelde panelen in 7bf2397 (huidige documentatiehead 5423c28). ↔ en de MCP/API-opdracht
set_pane_linkedkoppelen foto- en 3D-panelen. De 3D-weergave toont de gemeten fotocamera’s; een foto-/stationsmarkering werkt het andere gekoppelde fotopaneel bij terwijl de 3D-camera en het actieve 3D-document behouden blijven. Selectie binnen één paneel blijft de foto normaal openen. Linkinstellingen blijven bewaard en gaan mee bij splitsen/losmaken.De echte muisproef heeft beide koppelknoppen aangeklikt. Het camera-icoon veranderde 445 modelpixels; een andere panorama selecteren veranderde 98.111 fotopixels zonder camerawissel in 3D. Na volledige procesherstart kwamen koppeling en camera’s terug met nul gewijzigde pixels in de gecontroleerde interieurs. De echte BLK2GO-stationsproef slaagt eveneens en behoudt de oorspronkelijke bronhash; de zichtbare indicator wordt met het synthetische model gecontroleerd omdat de camera buiten de kleine E57-sectie ligt.
803 native tests geslaagd (9 expliciet genegeerd), waaronder alle 41 MCP-tests en de vertaalcontroles. Workspace-build en Clippy met
--all-targets -- -D warningsgeslaagd. API-revisie 17 en alle bijbehorende tool/documentatierijen zijn bijgewerkt.#16 blijft open voor geverifieerde monitoridentiteit/vensterplaatsing na herstart en fysieke Windows/macOS-proeven. De huidige fallback dockt losse vensters veilig in het hoofdvenster. De werkende paneel-/vensterscope is nu concreet te reviewen; PR #53 blijft ongewijzigd klaarstaan als integratiebasis.