2.2 KiB
2.2 KiB
Implementation Plan: Advanced Workspace Docking & Layout Profiles
Phase 1: Data Model & Persistence Engine
- Task: Create a
WorkspaceProfiledataclass insrc/models.pyto store INI string,show_windowsdict, and panel states. - Task: Implement
WorkspaceManager(similar toPresetManager) to handle saving/loading profiles fromconfig.tomlandproject.toml. - Task: Write Tests: Verify the manager correctly merges global and project profiles and serializes the ImGui INI string properly.
- Task: Conductor - User Manual Verification 'Phase 1: Data Model & Persistence Engine' (Protocol in workflow.md)
Phase 2: ImGui State Extraction & Restoration
- Task: Implement methods in
src/gui_2.py(or a helper module) to safely capture the current ImGui layout (imgui.save_ini_settings_to_memory()). - Task: Implement methods to safely restore layout (
imgui.load_ini_settings_from_memory()) and apply the associatedshow_windowsstate. - Task: Write Tests: Verify using
live_guithat saving a layout and loading it back does not cause crashes or assertion failures in the ImGui render loop. - Task: Conductor - User Manual Verification 'Phase 2: ImGui State Extraction & Restoration' (Protocol in workflow.md)
Phase 3: GUI Menu Integration
- Task: Add a "Layout Profiles" menu under the main "Windows" or "View" menu bar in
src/gui_2.py. - Task: Implement "Save Current Layout" modal (prompting for name and scope: Global/Project).
- Task: Populate the menu with a dynamically generated list of available profiles to load.
- Task: Conductor - User Manual Verification 'Phase 3: GUI Menu Integration' (Protocol in workflow.md)
Phase 4: Contextual Auto-Switch (Experimental)
- Task: Add UI in "AI Settings" or "Operations Hub" to enable "Experimental: Auto-switch layout by Tier".
- Task: Add UI to bind specific profiles to Tiers 1 through 4.
- Task: Implement the event hook in
AppControllerso that when theactive_tierchanges, the bound profile is automatically loaded if the feature is enabled. - Task: Conductor - User Manual Verification 'Phase 4: Contextual Auto-Switch (Experimental)' (Protocol in workflow.md)