From 66927da70c8baa3733bddc91d933f7c72ca1202f Mon Sep 17 00:00:00 2001 From: Robert Jordens Date: Sat, 7 May 2016 23:56:39 +0200 Subject: [PATCH] browser: add HDF5 to experiment DND --- artiq/browser/experiments.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/artiq/browser/experiments.py b/artiq/browser/experiments.py index 731d289c6..2598893f9 100644 --- a/artiq/browser/experiments.py +++ b/artiq/browser/experiments.py @@ -157,6 +157,7 @@ class _ExperimentDock(QtWidgets.QMdiSubWindow): self.setWindowTitle(expurl) self.setWindowIcon(QtWidgets.QApplication.style().standardIcon( QtWidgets.QStyle.SP_FileDialogContentsView)) + self.setAcceptDrops(True) self.layout = QtWidgets.QGridLayout() top_widget = QtWidgets.QWidget() @@ -214,6 +215,17 @@ class _ExperimentDock(QtWidgets.QMdiSubWindow): self.layout.addWidget(reqterm, 3, 4) reqterm.clicked.connect(self.reqterm_clicked) + def dragEnterEvent(self, ev): + if ev.mimeData().hasFormat("text/uri-list"): + ev.acceptProposedAction() + + def dropEvent(self, ev): + for uri in ev.mimeData().urls(): + if uri.scheme() == "file": + logger.info("loading HDF5 arguments from %s", uri.path()) + asyncio.ensure_future(self._load_hdf5_task(uri.path())) + ev.acceptProposedAction() + async def _recompute_arguments(self, overrides={}): try: arginfo = await self._area.compute_arginfo(self.expurl) @@ -303,9 +315,10 @@ class ExperimentsArea(QtWidgets.QMdiArea): self.open_experiments = [] self.worker_handlers = { - # "get_dataset": dataset_db.get, - # "update_dataset": dataset_db.update, + "get_device_db": lambda: None, + "get_device": lambda k: None, "get_dataset": lambda k: 0, # TODO + "update_dataset": lambda k, v: None, } def paintEvent(self, event):