- Add saveAsToFile() method to Document class for "Save As" functionality
- Add actionSaveAs menu item and onAction_saveAs() handler in MainWindow
- Add isValidItem() method to GraphicsBaseItem to filter helper elements
- Add using declarations to expose AbstractShapeType members in GraphicsBaseItem
- Fix document serialization to properly handle GraphicsItemGroup pen/brush
- HandleType enum starts from 50 to avoid conflicts with future handle types
- Improve deserialization to properly restore item properties
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add Document class (include/document.h, source/document.cpp)
- JSON serialization/deserialization of DesignerScene
- State management: filename, modified flag, timestamps, metadata
- File operations: New, Open, Save with .bay extension
- Integrate Document into CMainWindow
- initializeDocument() to create and associate with DesignerScene
- File menu actions connected to Document methods
- Window title updates on modified/filename changes
- Close event checks for unsaved changes
- Update CLAUDE.md with Document architecture documentation
Simplified the build commands in CLAUDE.md from complex absolute-path CMake configuration to preset-based approach:
- Changed from cmake -B <build-dir> -S <source-dir> ... to cmake --preset default
- Changed from cmake --build <build-dir> to ninja -C build/Debug
- Updated output location to macOS-specific build/Debug/BayTemplate.app
- Qt-based application for designing electrical power grid structures
- Features dockable UI with graphics canvas for placing grid elements
- Includes QtADS (Advanced Docking System v4.3.1) and PropertyEditor
- Supports Qt5/Qt6, multiple platforms (Windows, macOS, Linux, Android)
- Architecture: DesignerView/Scene, SelectorManager, Command Pattern for undo/redo