Make list pop out next to primary y-axis
							parent
							
								
									2c24c9ef2d
								
							
						
					
					
						commit
						51c61587d2
					
				| 
						 | 
					@ -24,6 +24,7 @@ from types import ModuleType
 | 
				
			||||||
from functools import partial
 | 
					from functools import partial
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from PyQt5 import QtCore, QtGui
 | 
					from PyQt5 import QtCore, QtGui
 | 
				
			||||||
 | 
					from PyQt5.QtCore import Qt
 | 
				
			||||||
import numpy as np
 | 
					import numpy as np
 | 
				
			||||||
import pyqtgraph as pg
 | 
					import pyqtgraph as pg
 | 
				
			||||||
import tractor
 | 
					import tractor
 | 
				
			||||||
| 
						 | 
					@ -55,7 +56,7 @@ from ._style import (
 | 
				
			||||||
    _bars_to_left_in_follow_mode,
 | 
					    _bars_to_left_in_follow_mode,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from . import _search
 | 
					from . import _search
 | 
				
			||||||
from ._search import FontSizedQLineEdit
 | 
					from ._search import SearchBar, SearchWidget
 | 
				
			||||||
from ._event import open_key_stream
 | 
					from ._event import open_key_stream
 | 
				
			||||||
from ..data._source import Symbol
 | 
					from ..data._source import Symbol
 | 
				
			||||||
from ..data._sharedmem import ShmArray
 | 
					from ..data._sharedmem import ShmArray
 | 
				
			||||||
| 
						 | 
					@ -80,20 +81,24 @@ class ChartSpace(QtGui.QWidget):
 | 
				
			||||||
    def __init__(self, parent=None):
 | 
					    def __init__(self, parent=None):
 | 
				
			||||||
        super().__init__(parent)
 | 
					        super().__init__(parent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.vbox = QtGui.QVBoxLayout(self)
 | 
					        self.hbox = QtGui.QHBoxLayout(self)
 | 
				
			||||||
 | 
					        self.hbox.setContentsMargins(0, 0, 0, 0)
 | 
				
			||||||
 | 
					        self.hbox.setSpacing(2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.vbox = QtGui.QVBoxLayout()
 | 
				
			||||||
        self.vbox.setContentsMargins(0, 0, 0, 0)
 | 
					        self.vbox.setContentsMargins(0, 0, 0, 0)
 | 
				
			||||||
        self.vbox.setSpacing(2)
 | 
					        self.vbox.setSpacing(2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.hbox.addLayout(self.vbox)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.toolbar_layout = QtGui.QHBoxLayout()
 | 
					        self.toolbar_layout = QtGui.QHBoxLayout()
 | 
				
			||||||
        self.toolbar_layout.setContentsMargins(0, 0, 0, 0)
 | 
					        self.toolbar_layout.setContentsMargins(0, 0, 0, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.hbox = QtGui.QHBoxLayout()
 | 
					 | 
				
			||||||
        self.hbox.setContentsMargins(0, 0, 0, 0)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # self.init_timeframes_ui()
 | 
					        # self.init_timeframes_ui()
 | 
				
			||||||
        # self.init_strategy_ui()
 | 
					        # self.init_strategy_ui()
 | 
				
			||||||
        self.vbox.addLayout(self.toolbar_layout)
 | 
					        self.vbox.addLayout(self.toolbar_layout)
 | 
				
			||||||
        self.vbox.addLayout(self.hbox)
 | 
					        # self.vbox.addLayout(self.hbox)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._chart_cache = {}
 | 
					        self._chart_cache = {}
 | 
				
			||||||
        self.linkedcharts: 'LinkedSplitCharts' = None
 | 
					        self.linkedcharts: 'LinkedSplitCharts' = None
 | 
				
			||||||
| 
						 | 
					@ -1595,20 +1600,30 @@ async def _async_main(
 | 
				
			||||||
        # setup search widget
 | 
					        # setup search widget
 | 
				
			||||||
        # search.installEventFilter(self)
 | 
					        # search.installEventFilter(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        search = _search.FontSizedQLineEdit(chart_app)
 | 
					        # search = _search.SearchBar(chart_app)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        search = _search.SearchWidget(
 | 
				
			||||||
 | 
					            chart_space=chart_app,
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # the main chart's view is given focus at startup
 | 
					        # the main chart's view is given focus at startup
 | 
				
			||||||
        search.unfocus()
 | 
					        search.bar.unfocus()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # add search singleton to global chart-space widget
 | 
					        # add search singleton to global chart-space widget
 | 
				
			||||||
        chart_app.vbox.addWidget(search)
 | 
					        chart_app.hbox.addWidget(
 | 
				
			||||||
        chart_app.vbox.addWidget(search.view)
 | 
					            search,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # alights to top and uses minmial space based on
 | 
				
			||||||
 | 
					            # search bar size hint (i think?)
 | 
				
			||||||
 | 
					            alignment=Qt.AlignTop
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
        chart_app.search = search
 | 
					        chart_app.search = search
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # this internally starts a ``chart_symbol()`` task above
 | 
					        # this internally starts a ``chart_symbol()`` task above
 | 
				
			||||||
        chart_app.load_symbol(brokername, sym, loglevel)
 | 
					        chart_app.load_symbol(brokername, sym, loglevel)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        async with open_key_stream(
 | 
					        async with open_key_stream(
 | 
				
			||||||
            search,
 | 
					            search.bar,
 | 
				
			||||||
        ) as key_stream:
 | 
					        ) as key_stream:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # start kb handling task for searcher
 | 
					            # start kb handling task for searcher
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue