Drop splitter resizes except for once at startup

Also adds a `GodWidget.resize_all()` helper method which resizes all
sub-widgets and charts to their default ratios and/or parent-widget
dependent defaults using the detected available space on screen. This is
a "default layout" config method that eventually we'll probably want
allow users to customize.
history_view
Tyler Goodlet 2022-09-12 13:51:37 -04:00
parent 445849337f
commit 4f15ce346b
2 changed files with 22 additions and 12 deletions

View File

@ -292,11 +292,6 @@ class GodWidget(QWidget):
if hist_chart: if hist_chart:
hist_chart.qframe.set_sidepane(self.search) hist_chart.qframe.set_sidepane(self.search)
# NOTE: this resizes the fast chart as well as all it's
# downstream fsp subcharts AND the slow chart which is part of
# the same splitter.
self.rt_linked.set_split_sizes()
# set window titlebar info # set window titlebar info
symbol = self.rt_linked.symbol symbol = self.rt_linked.symbol
if symbol is not None: if symbol is not None:
@ -356,6 +351,19 @@ class GodWidget(QWidget):
for linked in [self.hist_linked, self.rt_linked]: for linked in [self.hist_linked, self.rt_linked]:
yield linked yield linked
def resize_all(self) -> None:
'''
Dynamic resize sequence: adjusts all sub-widgets/charts to
sensible default ratios of what space is detected as available
on the display / window.
'''
rt_linked = self.rt_linked
rt_linked.set_split_sizes()
self.rt_linked.resize_sidepanes()
self.hist_linked.resize_sidepanes(from_linked=rt_linked)
self.search.on_resize()
class ChartnPane(QFrame): class ChartnPane(QFrame):
''' '''
@ -488,7 +496,7 @@ class LinkedSplits(QWidget):
prop = 3/8 prop = 3/8
h = self.height() h = self.height()
histview_h = h * ((6/16) ** 2) histview_h = h * (6/16) * 0.666
h = h - histview_h h = h - histview_h
major = 1 - prop major = 1 - prop
@ -740,8 +748,6 @@ class LinkedSplits(QWidget):
anchor_at=anchor_at, anchor_at=anchor_at,
) )
# scale split regions
self.set_split_sizes()
self.resize_sidepanes() self.resize_sidepanes()
return cpw return cpw

View File

@ -979,6 +979,8 @@ async def display_symbol_data(
# rt_linked.splitter.addWidget(hist_linked) # rt_linked.splitter.addWidget(hist_linked)
rt_linked.focus() rt_linked.focus()
godwidget.resize_all()
vlm_chart: Optional[ChartPlotWidget] = None vlm_chart: Optional[ChartPlotWidget] = None
async with trio.open_nursery() as ln: async with trio.open_nursery() as ln:
@ -1027,6 +1029,8 @@ async def display_symbol_data(
hist_linked.graphics_cycle() hist_linked.graphics_cycle()
await trio.sleep(0) await trio.sleep(0)
godwidget.resize_all()
async with ( async with (
open_order_mode( open_order_mode(
feed, feed,
@ -1042,9 +1046,9 @@ async def display_symbol_data(
# let Qt run to render all widgets and make sure the # let Qt run to render all widgets and make sure the
# sidepanes line up vertically. # sidepanes line up vertically.
await trio.sleep(0) await trio.sleep(0)
rt_linked.resize_sidepanes()
rt_linked.set_split_sizes() # dynamic resize steps
hist_linked.resize_sidepanes(from_linked=rt_linked) godwidget.resize_all()
# TODO: look into this because not sure why it was # TODO: look into this because not sure why it was
# commented out / we ever needed it XD # commented out / we ever needed it XD
@ -1067,7 +1071,7 @@ async def display_symbol_data(
# push it 1/16th away from the y-axis # push it 1/16th away from the y-axis
y_offset=round(bars_in_mem / 16), y_offset=round(bars_in_mem / 16),
) )
rt_linked.set_split_sizes() godwidget.resize_all()
# let the app run.. bby # let the app run.. bby
await trio.sleep_forever() await trio.sleep_forever()