Skip to content

Instantly share code, notes, and snippets.

@cr1901
Last active February 22, 2016 19:11
Show Gist options
  • Save cr1901/2503a19a6304c94d307e to your computer and use it in GitHub Desktop.
Save cr1901/2503a19a6304c94d307e to your computer and use it in GitHub Desktop.
ScanWidget Todo

To Fix (Bugs)

  • Check that recalculating the zoom transform in fact has a relative error of 10^-15, not absolute error. If latter, rethink transform.
  • Slider positions need to be updated during zoom; have not figured out a "clean" way to do this that doesn't involve signals or unnecessary inter-object communication. I may remove the event filter completely.
  • Fix FitToView and ZoomToFit idempotency.
    • Related to slider-to-pixel transform having an offset of slider_width/2 pixels.
  • At large zooms, the sliders start taking the wrong positions due to floating point errors?
  • Remove asserts (or catch AssertionFailure) and just refuse to honor zooms at some point.
  • Implement offset/magnitude visualization properly, as it seems to get stuck.
  • Need to add a "max number of ticks to display" to ticker class to avoid label overlap.

To Modify (Not technically broken, but needs to be changed on request)

  • Scroll wheel zoom needs to be fixed per the following discussion with sb0:
    • sb0: Just to reiterate, the behavior you want is that if you zoom the mouse if the cursor is in the center of two overlapped sliders, the sliders should separate equal distance (in pixels) relative to the center of your zoom.
  • Make zoom, label precision, dynamic range, min ticks user-settable, exposed in ScanWidget methods.
  • Change slider behavior so that sliders can cross/overlap.

To Implement

  • Implement slider hiding when zoom causes sliders to disappear.
  • Convert FitToView and ZoomToFit to context menu, add Reset.
  • Axis widget should capture scroll events from slider.
  • Add number of points functionality+shift-drag.
  • Add tick mark visualization for number of points.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment