Add views, import/duplicate, DRC, jumps toggle, multi-wire select, auto-route, delete view tabs
- Roadmap #22: File→Import JSON to restore a diagram (drag-drop or file picker) - Roadmap #23: Duplicate diagram from diagram list - Roadmap #24: DRC panel with collapsible categories (unconnected pins, dup refs, no length, no P/N) - Multi-view tabs: named views per diagram with independent device/wire layouts; snapshot-on-entry prevents bleed - Keyboard arrow nudge for selected device(s) - Undo for move, duplicate, label/property changes - Wire jump arcs toggle (⌒ Jumps button in toolbar) - Shift+click multi-wire selection; right-click bulk clear waypoints or auto-route - Auto-route: obstacle-avoiding ortho routing for single or bulk selected wires - Delete view tab with × button; right-click context menu for rename/delete Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -146,6 +146,44 @@ class DiagramFull(DiagramSummary):
|
||||
wire_bundles: List[WireBundleOut] = []
|
||||
|
||||
|
||||
# ── DiagramView ───────────────────────────────────────────────────────────────
|
||||
|
||||
class DiagramViewBase(BaseModel):
|
||||
name: str
|
||||
route_mode: str = "direct"
|
||||
|
||||
|
||||
class DiagramViewCreate(DiagramViewBase):
|
||||
diagram_id: int
|
||||
|
||||
|
||||
class DiagramViewUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
route_mode: Optional[str] = None
|
||||
|
||||
|
||||
class DiagramViewOut(DiagramViewBase):
|
||||
id: int
|
||||
diagram_id: int
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class ViewDevicePositionUpdate(BaseModel):
|
||||
x: float
|
||||
y: float
|
||||
|
||||
|
||||
class ViewWireWaypointsUpdate(BaseModel):
|
||||
waypoints: List[Dict[str, Any]] = []
|
||||
|
||||
|
||||
class ViewLayout(BaseModel):
|
||||
device_positions: Dict[int, Dict[str, float]] = {}
|
||||
wire_waypoints: Dict[int, List[Dict[str, Any]]] = {}
|
||||
|
||||
|
||||
# ── CustomConnector ───────────────────────────────────────────────────────────
|
||||
|
||||
class CustomConnectorBase(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user