forked from M-Labs/artiq
gui/browser: local model manager
This commit is contained in:
parent
6686383378
commit
fa63637a2e
|
@ -65,8 +65,23 @@ class MdiArea(QtWidgets.QMdiArea):
|
||||||
painter.drawPixmap(x, y, self.pixmap)
|
painter.drawPixmap(x, y, self.pixmap)
|
||||||
|
|
||||||
|
|
||||||
class LocalModel(
|
class LocalModelManager:
|
||||||
|
def __init__(self, model_factory):
|
||||||
|
self.model = None
|
||||||
|
self._model_factory = model_factory
|
||||||
|
self._setmodel_callbacks = []
|
||||||
|
self.notify_cbs = []
|
||||||
|
|
||||||
|
def _create_model(self, init):
|
||||||
|
self.model = self._model_factory(init)
|
||||||
|
for cb in self._setmodel_callbacks:
|
||||||
|
cb(self.model)
|
||||||
|
return self.model
|
||||||
|
|
||||||
|
def add_setmodel_callback(self, cb):
|
||||||
|
self._setmodel_callbacks.append(cb)
|
||||||
|
if self.model is not None:
|
||||||
|
cb(self.model)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -80,13 +95,7 @@ def main():
|
||||||
atexit.register(loop.close)
|
atexit.register(loop.close)
|
||||||
smgr = state.StateManager(args.db_file)
|
smgr = state.StateManager(args.db_file)
|
||||||
|
|
||||||
subscriber = ModelSubscriber("datasets", datasets.Model)
|
datasets_sub = LocalModelManager(datasets.Model)
|
||||||
loop.run_until_complete(subscriber.connect(
|
|
||||||
args.server, args.port_notify))
|
|
||||||
atexit_register_coroutine(subscriber.close)
|
|
||||||
sub_clients[notifier_name] = subscriber
|
|
||||||
|
|
||||||
("datasets", datasets.Model),
|
|
||||||
|
|
||||||
# initialize main window
|
# initialize main window
|
||||||
main_window = MainWindow()
|
main_window = MainWindow()
|
||||||
|
@ -105,8 +114,12 @@ def main():
|
||||||
atexit_register_coroutine(d_applets.stop)
|
atexit_register_coroutine(d_applets.stop)
|
||||||
smgr.register(d_applets)
|
smgr.register(d_applets)
|
||||||
|
|
||||||
|
d_datasets = datasets.DatasetsDock(datasets_sub,
|
||||||
|
None) # TODO: datsets_ctl.delete()
|
||||||
|
smgr.register(d_datasets)
|
||||||
|
|
||||||
# lay out docks
|
# lay out docks
|
||||||
right_docks = [d_results]
|
right_docks = [d_results, d_applets, d_datasets]
|
||||||
main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, right_docks[0])
|
main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, right_docks[0])
|
||||||
for d1, d2 in zip(right_docks, right_docks[1:]):
|
for d1, d2 in zip(right_docks, right_docks[1:]):
|
||||||
main_window.tabifyDockWidget(d1, d2)
|
main_window.tabifyDockWidget(d1, d2)
|
||||||
|
|
Loading…
Reference in New Issue