Use `Curve.x_last()` for zoom focal point
parent
97bbdd22e8
commit
4ad9d52bd7
|
@ -35,7 +35,7 @@ import trio
|
||||||
from ..log import get_logger
|
from ..log import get_logger
|
||||||
from .._profile import Profiler
|
from .._profile import Profiler
|
||||||
from .._profile import pg_profile_enabled, ms_slower_then
|
from .._profile import pg_profile_enabled, ms_slower_then
|
||||||
# from ._style import _min_points_to_show
|
from ._style import _min_points_to_show
|
||||||
from ._editors import SelectRect
|
from ._editors import SelectRect
|
||||||
from . import _event
|
from . import _event
|
||||||
|
|
||||||
|
@ -492,18 +492,20 @@ class ChartView(ViewBox):
|
||||||
chart = self.linked.chart
|
chart = self.linked.chart
|
||||||
|
|
||||||
# don't zoom more then the min points setting
|
# don't zoom more then the min points setting
|
||||||
out = l, lbar, rbar, r = chart.get_viz(chart.name).bars_range()
|
viz = chart.get_viz(chart.name)
|
||||||
# vl = r - l
|
vl, lbar, rbar, vr = viz.bars_range()
|
||||||
|
rl = vr - vl
|
||||||
|
|
||||||
# if ev.delta() > 0 and vl <= _min_points_to_show:
|
# TODO: max/min zoom limits incorporating time step size.
|
||||||
# log.debug("Max zoom bruh...")
|
# if ev.delta() > 0 and rl <= _min_points_to_show:
|
||||||
|
# log.warning("Max zoom bruh...")
|
||||||
# return
|
# return
|
||||||
|
|
||||||
# if (
|
# if (
|
||||||
# ev.delta() < 0
|
# ev.delta() < 0
|
||||||
# and vl >= len(chart._vizs[chart.name].shm.array) + 666
|
# and rl >= len(chart._vizs[chart.name].shm.array) + 666
|
||||||
# ):
|
# ):
|
||||||
# log.debug("Min zoom bruh...")
|
# log.warning("Min zoom bruh...")
|
||||||
# return
|
# return
|
||||||
|
|
||||||
# actual scaling factor
|
# actual scaling factor
|
||||||
|
@ -552,8 +554,7 @@ class ChartView(ViewBox):
|
||||||
|
|
||||||
# This seems like the most "intuitive option, a hybrid of
|
# This seems like the most "intuitive option, a hybrid of
|
||||||
# tws and tv styles
|
# tws and tv styles
|
||||||
last_bar = pg.Point(int(rbar)) + 1
|
# last_bar = pg.Point(int(rbar)) + 1
|
||||||
|
|
||||||
ryaxis = chart.getAxis('right')
|
ryaxis = chart.getAxis('right')
|
||||||
r_axis_x = ryaxis.pos().x()
|
r_axis_x = ryaxis.pos().x()
|
||||||
|
|
||||||
|
@ -561,21 +562,21 @@ class ChartView(ViewBox):
|
||||||
round(
|
round(
|
||||||
chart.cv.mapToView(
|
chart.cv.mapToView(
|
||||||
pg.Point(r_axis_x - chart._max_l1_line_len)
|
pg.Point(r_axis_x - chart._max_l1_line_len)
|
||||||
# QPointF(chart._max_l1_line_len, 0)
|
|
||||||
).x()
|
).x()
|
||||||
)
|
)
|
||||||
) # .x()
|
).x()
|
||||||
|
|
||||||
# self.state['viewRange'][0][1] = end_of_l1
|
# self.state['viewRange'][0][1] = end_of_l1
|
||||||
# focal = pg.Point((last_bar.x() + end_of_l1)/2)
|
# focal = pg.Point((last_bar.x() + end_of_l1)/2)
|
||||||
|
|
||||||
focal = min(
|
|
||||||
last_bar,
|
|
||||||
end_of_l1,
|
|
||||||
key=lambda p: p.x()
|
|
||||||
)
|
|
||||||
# focal = pg.Point(last_bar.x() + end_of_l1)
|
# focal = pg.Point(last_bar.x() + end_of_l1)
|
||||||
|
|
||||||
|
# use right-most point of current curve graphic
|
||||||
|
xl = viz.graphics.x_last()
|
||||||
|
focal = min(
|
||||||
|
xl,
|
||||||
|
end_of_l1,
|
||||||
|
)
|
||||||
|
|
||||||
self._resetTarget()
|
self._resetTarget()
|
||||||
self.scaleBy(s, focal)
|
self.scaleBy(s, focal)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue