PageScene: live page rearranging without losing annotations

Merged Colin Macdonald requested to merge move into page_buttons

Creates a single entry ("macro") on the undo stack. Translates a set of items on the page. Input is a list of items; filter out anything that isn't user-placed (which seems harder to do than it should be!)


  • code to move objects
    • Proof of concept: press Ctrl+Shift+H to translate roughly 50% of the items 20 pixels leftward.
    • remove the PoC hack
  • wire page buttons from !1768 (merged) to behave "live" rather than rebuilding annotator from scratch
    • for rotations
      • DTRT for 180 rotations
      • move annotations for the size changes resulting from 90 degree rotations
    • for deletions
    • for shifts
  • undo-able page manipulations: for a future MR? Filed #2510.
  • rehide behind experimental mode
  • consider more about single-source of truth in PageScene.src_img_data
    • currently when you cancel the annotating, the page rearrangments are persistent within this session
    • Issue #2509 (closed), not specific to this MR (it was like that before).
Edited by Colin Macdonald