Skip to content

Planning System Controllers

Business logic layer for project planning operations.

Key Classes

Class Purpose
PlanningController Central QObject controller: CRUD, hierarchy, search, validation, dirty-state
SearchIndex O(1) lookups by type, parent-child navigation, token-based text search
SuggestionIndex Per-type property name/value suggestions and part_symbolik suggestions

Notes

  • PlanningController owns a ProjectContainer and both indexes
  • All mutations emit signals (item_added, item_changed, item_removed, item_moved, etc.)
  • begin_batch() / end_batch() suppress per-item signals for bulk operations
  • Indexes are rebuilt automatically after batch operations and project loads
  • Read-only fields (instance_id, parent_id, child_instances) cannot be changed via update_item()