Only pass vr for bars, allow source vb in autorange
parent
9b0d4b5cd6
commit
9de5be5a6d
|
@ -37,7 +37,7 @@ from ..log import get_logger
|
||||||
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
|
||||||
# from ._ohlc import BarItems
|
from ._ohlc import BarItems
|
||||||
|
|
||||||
|
|
||||||
log = get_logger(__name__)
|
log = get_logger(__name__)
|
||||||
|
@ -809,7 +809,8 @@ class ChartView(ViewBox):
|
||||||
self.setYRange(ylow, yhigh)
|
self.setYRange(ylow, yhigh)
|
||||||
|
|
||||||
def enable_auto_yrange(
|
def enable_auto_yrange(
|
||||||
vb: ChartView,
|
self,
|
||||||
|
src_vb: Optional[ChartView] = None,
|
||||||
|
|
||||||
) -> None:
|
) -> None:
|
||||||
'''
|
'''
|
||||||
|
@ -817,7 +818,10 @@ class ChartView(ViewBox):
|
||||||
based on data contents and ``ViewBox`` state.
|
based on data contents and ``ViewBox`` state.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
vb.sigXRangeChanged.connect(vb._set_yrange)
|
if src_vb is None:
|
||||||
|
src_vb = self
|
||||||
|
|
||||||
|
src_vb.sigXRangeChanged.connect(self._set_yrange)
|
||||||
|
|
||||||
# TODO: a smarter way to avoid calling this needlessly?
|
# TODO: a smarter way to avoid calling this needlessly?
|
||||||
# 2 things i can think of:
|
# 2 things i can think of:
|
||||||
|
@ -825,13 +829,13 @@ class ChartView(ViewBox):
|
||||||
# iterate those.
|
# iterate those.
|
||||||
# - only register this when certain downsampleable graphics are
|
# - only register this when certain downsampleable graphics are
|
||||||
# "added to scene".
|
# "added to scene".
|
||||||
vb.sigXRangeChanged.connect(vb.maybe_downsample_graphics)
|
src_vb.sigXRangeChanged.connect(self.maybe_downsample_graphics)
|
||||||
|
|
||||||
# mouse wheel doesn't emit XRangeChanged
|
# mouse wheel doesn't emit XRangeChanged
|
||||||
vb.sigRangeChangedManually.connect(vb._set_yrange)
|
src_vb.sigRangeChangedManually.connect(self._set_yrange)
|
||||||
|
|
||||||
# splitter(s) resizing
|
# splitter(s) resizing
|
||||||
vb.sigResized.connect(vb._set_yrange)
|
src_vb.sigResized.connect(self._set_yrange)
|
||||||
|
|
||||||
def disable_auto_yrange(
|
def disable_auto_yrange(
|
||||||
self,
|
self,
|
||||||
|
@ -863,9 +867,21 @@ class ChartView(ViewBox):
|
||||||
# graphics = list(self._chart._graphics.values())
|
# graphics = list(self._chart._graphics.values())
|
||||||
|
|
||||||
for name, graphics in chart._graphics.items():
|
for name, graphics in chart._graphics.items():
|
||||||
|
|
||||||
|
# TODO: make it so we don't have to do this XD
|
||||||
|
# if name == 'volume':
|
||||||
|
# continue
|
||||||
|
|
||||||
|
use_vr = False
|
||||||
|
if isinstance(graphics, BarItems):
|
||||||
|
use_vr = True
|
||||||
|
|
||||||
# pass in no array which will read and render from the last
|
# pass in no array which will read and render from the last
|
||||||
# passed array (normally provided by the display loop.)
|
# passed array (normally provided by the display loop.)
|
||||||
chart.update_graphics_from_array(name)
|
chart.update_graphics_from_array(
|
||||||
|
name,
|
||||||
|
use_vr=use_vr,
|
||||||
|
)
|
||||||
|
|
||||||
# for graphic in graphics:
|
# for graphic in graphics:
|
||||||
# ds_meth = getattr(graphic, 'maybe_downsample', None)
|
# ds_meth = getattr(graphic, 'maybe_downsample', None)
|
||||||
|
|
Loading…
Reference in New Issue