Delegate to `Viz.default_view()` on chart
Also add a rage print to not forget about the global index tracking/diffing in the display loop we still need to change.pre_viz_calls
parent
bc5fefe906
commit
97bbdd22e8
|
@ -66,7 +66,6 @@ from ..data.feed import (
|
||||||
Feed,
|
Feed,
|
||||||
Flume,
|
Flume,
|
||||||
)
|
)
|
||||||
from ..data._pathops import slice_from_time
|
|
||||||
from ..data._source import Symbol
|
from ..data._source import Symbol
|
||||||
from ..log import get_logger
|
from ..log import get_logger
|
||||||
from ._interaction import ChartView
|
from ._interaction import ChartView
|
||||||
|
@ -964,11 +963,16 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
|
|
||||||
'''
|
'''
|
||||||
line_end, marker_right, yaxis_x = self.marker_right_points()
|
line_end, marker_right, yaxis_x = self.marker_right_points()
|
||||||
view = self.view
|
line = self.view.mapToView(
|
||||||
line = view.mapToView(
|
|
||||||
QLineF(line_end, 0, yaxis_x, 0)
|
QLineF(line_end, 0, yaxis_x, 0)
|
||||||
)
|
)
|
||||||
return line.x1(), line.length()
|
linex, linelen = line.x1(), line.length()
|
||||||
|
# print(
|
||||||
|
# f'line: {line}\n'
|
||||||
|
# f'linex: {linex}\n'
|
||||||
|
# f'linelen: {linelen}\n'
|
||||||
|
# )
|
||||||
|
return linex, linelen
|
||||||
|
|
||||||
def marker_right_points(
|
def marker_right_points(
|
||||||
self,
|
self,
|
||||||
|
@ -990,11 +994,16 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
ryaxis = self.getAxis('right')
|
ryaxis = self.getAxis('right')
|
||||||
|
|
||||||
r_axis_x = ryaxis.pos().x()
|
r_axis_x = ryaxis.pos().x()
|
||||||
up_to_l1_sc = r_axis_x - l1_len - 10
|
up_to_l1_sc = r_axis_x - l1_len
|
||||||
|
|
||||||
marker_right = up_to_l1_sc - (1.375 * 2 * marker_size)
|
marker_right = up_to_l1_sc - (1.375 * 2 * marker_size)
|
||||||
line_end = marker_right - (6/16 * marker_size)
|
line_end = marker_right - (6/16 * marker_size)
|
||||||
|
|
||||||
|
# print(
|
||||||
|
# f'r_axis_x: {r_axis_x}\n'
|
||||||
|
# f'up_to_l1_sc: {up_to_l1_sc}\n'
|
||||||
|
# f'marker_right: {marker_right}\n'
|
||||||
|
# f'line_end: {line_end}\n'
|
||||||
|
# )
|
||||||
return line_end, marker_right, r_axis_x
|
return line_end, marker_right, r_axis_x
|
||||||
|
|
||||||
def default_view(
|
def default_view(
|
||||||
|
@ -1009,108 +1018,18 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
|
|
||||||
'''
|
'''
|
||||||
viz = self.get_viz(self.name)
|
viz = self.get_viz(self.name)
|
||||||
|
|
||||||
if not viz:
|
if not viz:
|
||||||
log.warning(f'`Viz` for {self.name} not loaded yet?')
|
log.warning(f'`Viz` for {self.name} not loaded yet?')
|
||||||
return
|
return
|
||||||
|
|
||||||
(
|
viz.default_view(
|
||||||
_,
|
bars_from_y,
|
||||||
l,
|
y_offset,
|
||||||
datum_start,
|
do_ds,
|
||||||
datum_stop,
|
|
||||||
r,
|
|
||||||
_,
|
|
||||||
) = viz.datums_range()
|
|
||||||
|
|
||||||
array = viz.shm.array
|
|
||||||
index_field = viz.index_field
|
|
||||||
|
|
||||||
if index_field == 'time':
|
|
||||||
(
|
|
||||||
abs_slc,
|
|
||||||
read_slc,
|
|
||||||
) = slice_from_time(
|
|
||||||
array,
|
|
||||||
start_t=l,
|
|
||||||
stop_t=r,
|
|
||||||
)
|
|
||||||
iv_arr = array[read_slc]
|
|
||||||
index = iv_arr['time']
|
|
||||||
|
|
||||||
else:
|
|
||||||
index = array['index']
|
|
||||||
|
|
||||||
# these must be array-index-ints (hence the slice from time
|
|
||||||
# above).
|
|
||||||
x_stop = index[-1]
|
|
||||||
view: ChartView = viz.plot.vb
|
|
||||||
|
|
||||||
times = viz.shm.array['time']
|
|
||||||
step = times[-1] - times[-2]
|
|
||||||
|
|
||||||
if (
|
|
||||||
datum_stop < 0
|
|
||||||
or r < datum_start
|
|
||||||
or l > datum_stop
|
|
||||||
or l < 0
|
|
||||||
or (datum_stop - datum_start) < 6
|
|
||||||
):
|
|
||||||
begin = x_stop - (bars_from_y * step)
|
|
||||||
view.setXRange(
|
|
||||||
min=begin,
|
|
||||||
max=x_stop,
|
|
||||||
padding=0,
|
|
||||||
)
|
|
||||||
# re-get range
|
|
||||||
l, datum_start, datum_stop, r = viz.bars_range()
|
|
||||||
|
|
||||||
# print(
|
|
||||||
# f'l: {l}\n'
|
|
||||||
# f'datum_start: {datum_start}\n'
|
|
||||||
# f'datum_stop: {datum_stop}\n\n'
|
|
||||||
# f'r: {r}\n'
|
|
||||||
# )
|
|
||||||
# we get the L1 spread label "length" in view coords
|
|
||||||
# terms now that we've scaled either by user control
|
|
||||||
# or to the default set of bars as per the immediate block
|
|
||||||
# above.
|
|
||||||
debug_msg = (
|
|
||||||
f'x_stop: {x_stop}\n'
|
|
||||||
)
|
|
||||||
|
|
||||||
if not y_offset:
|
|
||||||
marker_pos, l1_len = self.pre_l1_xs()
|
|
||||||
end = x_stop + l1_len + 1
|
|
||||||
|
|
||||||
debug_msg += (
|
|
||||||
f'marker pos: {marker_pos}\n'
|
|
||||||
f'l1 len: {l1_len}\n'
|
|
||||||
)
|
|
||||||
|
|
||||||
else:
|
|
||||||
end = x_stop + (y_offset * step) + 1
|
|
||||||
|
|
||||||
begin = end - (r - l)
|
|
||||||
|
|
||||||
debug_msg += (
|
|
||||||
f'begin: {begin}\n'
|
|
||||||
f'end: {end}\n'
|
|
||||||
)
|
|
||||||
# print(debug_msg)
|
|
||||||
|
|
||||||
# remove any custom user yrange setttings
|
|
||||||
if self._static_yrange == 'axis':
|
|
||||||
self._static_yrange = None
|
|
||||||
|
|
||||||
view.setXRange(
|
|
||||||
min=begin,
|
|
||||||
max=end,
|
|
||||||
padding=0,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if do_ds:
|
if do_ds:
|
||||||
self.view.maybe_downsample_graphics()
|
|
||||||
view._set_yrange()
|
|
||||||
self.linked.graphics_cycle()
|
self.linked.graphics_cycle()
|
||||||
|
|
||||||
def increment_view(
|
def increment_view(
|
||||||
|
@ -1126,6 +1045,11 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
"""
|
"""
|
||||||
l, r = self.view_range()
|
l, r = self.view_range()
|
||||||
view = vb or self.view
|
view = vb or self.view
|
||||||
|
if steps >= 300:
|
||||||
|
print("FUCKING FIX THE GLOBAL STEP BULLSHIT")
|
||||||
|
# breakpoint()
|
||||||
|
return
|
||||||
|
|
||||||
view.setXRange(
|
view.setXRange(
|
||||||
min=l + steps,
|
min=l + steps,
|
||||||
max=r + steps,
|
max=r + steps,
|
||||||
|
@ -1410,17 +1334,16 @@ class ChartPlotWidget(pg.PlotWidget):
|
||||||
|
|
||||||
else:
|
else:
|
||||||
(
|
(
|
||||||
_,
|
|
||||||
l,
|
l,
|
||||||
|
_,
|
||||||
lbar,
|
lbar,
|
||||||
rbar,
|
rbar,
|
||||||
r,
|
|
||||||
_,
|
_,
|
||||||
|
r,
|
||||||
) = bars_range or viz.datums_range()
|
) = bars_range or viz.datums_range()
|
||||||
|
|
||||||
profiler(f'{self.name} got bars range')
|
profiler(f'{self.name} got bars range')
|
||||||
|
key = lbar, rbar
|
||||||
key = round(lbar), round(rbar)
|
|
||||||
res = viz.maxmin(*key)
|
res = viz.maxmin(*key)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|
Loading…
Reference in New Issue