Skip to content

Optimizing#452

Draft
RazinShaikh wants to merge 3 commits intomasterfrom
optimizing
Draft

Optimizing#452
RazinShaikh wants to merge 3 commits intomasterfrom
optimizing

Conversation

@RazinShaikh
Copy link
Collaborator

No description provided.

- Collect all dirty vertices and edges into sets before refreshing,
  so each VItem/EItem is refreshed exactly once regardless of how many
  diff categories it appears in.

- Add _bulk_updating flag to GraphScene to suppress the VItem.itemChange
  cascade (triggered by setPos/setSelected) during update_graph, since
  the deduplication pass already handles all necessary refreshes.

- Disable view updates for the duration of update_graph to prevent
  per-item repaint scheduling and BSP tree rebuilds.

- Add cascade_edges parameter to VItem.refresh() so update_graph can
  skip per-vertex edge cascades and handle edges in a single batch.

- Use vertex_map for O(1) lookups in select_vertices instead of
  iterating all scene items.
- Track _last_type to skip setPath() when vertex type is unchanged
  (phase-only or position-only changes no longer rebuild the path)
- Remove redundant setPen from update_shape (overwritten by refresh)
- Remove redundant QPen copy constructor in EItem.refresh
- Inline update_shape logic into refresh and remove dead method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant