forked from M-Labs/artiq
browser: open experiments from mdiarea
This commit is contained in:
parent
d99d19dd3a
commit
9f1bef1c81
@ -4,6 +4,7 @@ import argparse
|
||||
import asyncio
|
||||
import atexit
|
||||
import os
|
||||
import logging
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
from quamash import QEventLoop
|
||||
@ -15,6 +16,9 @@ from artiq.browser import datasets, files
|
||||
from artiq.dashboard import experiments
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_argparser():
|
||||
if os.name == "nt":
|
||||
default_db_file = os.path.expanduser("~\\artiq_browser.pyon")
|
||||
@ -62,9 +66,17 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
|
||||
class MdiArea(QtWidgets.QMdiArea):
|
||||
def __init__(self):
|
||||
def __init__(self, root):
|
||||
QtWidgets.QMdiArea.__init__(self)
|
||||
self.pixmap = QtGui.QPixmap(os.path.join(artiq_dir, "gui", "logo20.svg"))
|
||||
self.pixmap = QtGui.QPixmap(os.path.join(
|
||||
artiq_dir, "gui", "logo20.svg"))
|
||||
self.current_dir = root
|
||||
self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
|
||||
action = QtWidgets.QAction("&Open experiment", self)
|
||||
# action.setShortcut(QtGui.QKeySequence("CTRL+o"))
|
||||
action.setShortcutContext(QtCore.Qt.WidgetShortcut)
|
||||
action.triggered.connect(self.open_experiment)
|
||||
self.addAction(action)
|
||||
|
||||
def paintEvent(self, event):
|
||||
QtWidgets.QMdiArea.paintEvent(self, event)
|
||||
@ -74,6 +86,13 @@ class MdiArea(QtWidgets.QMdiArea):
|
||||
painter.setOpacity(0.5)
|
||||
painter.drawPixmap(x, y, self.pixmap)
|
||||
|
||||
def open_experiment(self):
|
||||
file, filter = QtWidgets.QFileDialog.getOpenFileName(
|
||||
self, "Open experiment", self.current_dir, "Experiments (*.py)")
|
||||
if not file:
|
||||
return
|
||||
print(file)
|
||||
|
||||
|
||||
def main():
|
||||
# initialize application
|
||||
@ -108,7 +127,7 @@ def main():
|
||||
d_datasets = datasets.DatasetsDock(datasets_sub)
|
||||
smgr.register(d_datasets)
|
||||
|
||||
mdi_area = MdiArea()
|
||||
mdi_area = MdiArea(args.browse_root)
|
||||
mdi_area.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
|
||||
mdi_area.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
|
||||
main_window.setCentralWidget(mdi_area)
|
||||
|
Loading…
Reference in New Issue
Block a user