Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024 08 23 layout refactor composer #82

Merged

Conversation

cmeyer
Copy link
Collaborator

@cmeyer cmeyer commented Sep 25, 2024

  • Eliminate root layout render trait class. Draw direct from layer render trait.
  • Eliminate 'layout render trait' by merging into LayerCanvasItem class.
  • Revert hack for repaint during layout. Will implement different solution.
  • Remove unreachable sync_redraw code.
  • Simplify updates by removing unused canvas items parameter and merging methods.
  • Simplify layout and make it batchable.
  • Change grid layout to use layout items passed into layout and get_size.
  • Change scroll area to use content preferred size during first layout.
  • Ensure update message goes up hierarchy whether current item has layout or not.
  • Remove unused prepare_render methods.
  • Add optional composer-style repainting to canvas item.
  • Add canvas item composition composer.
  • Rework checkbox canvas item to use composer.
  • Change splitter to use composer.
  • Change scroll area to use composer.
  • Clean up drawing and layout to consistently use composer for both.
  • Update slider, draw, background, divider, and progerss bar canvas items to use composer.
  • Update list, grid canvas items to use composer.
  • Change time stamp canvas item to use composer.
  • Remove several unneeded layout methods.
  • Remove several unneeded repaint methods.
  • Add a canvas example app for demonstration and testing.
  • Add ability to draw unique marker on canvas item for debugging.
  • Fix issue with scroll area auto layout.
  • Restore missing repaint_immediate function.
  • Change update to only invalidate composer if canvas item visible.
  • Update layer drawing to properly layout/update, including immediate mode.
  • Add layer usage to canvas demo.
  • Improve error handling and robustness when canvas item garbage collected while drawing.
  • Improve layout to use layout copy so it does not get modified.
  • Improve typing and add explanation for ordered layer thread repainting.
  • Simplify 'needs repaint' logic.
  • Add support for batch updates.
  • Fix race condition when updating/invalidating composer from different threads.
  • Consolidate button items subclassed from CellCanvasItem.
  • Fix typo in canvas error logging.
  • Add canvas item docs.

Previously, it would ignore the passed items and use the items that
were initially added. This is problematic for the composer architecture.
Now it uses the items that are initially added to determine the index
into the passed items.
@cmeyer cmeyer merged commit 4cab31a into nion-software:master Sep 26, 2024
10 checks passed
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