From e6e93ab6edf15f2b9d032f05f0eb2625cffdbbf0 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 12 Oct 2015 17:31:55 +0800 Subject: [PATCH] gui: dataset search --- artiq/gui/datasets.py | 20 ++++++++++-- artiq/gui/parameters.py | 72 ----------------------------------------- 2 files changed, 18 insertions(+), 74 deletions(-) delete mode 100644 artiq/gui/parameters.py diff --git a/artiq/gui/datasets.py b/artiq/gui/datasets.py index 8d50f761d..d951143d3 100644 --- a/artiq/gui/datasets.py +++ b/artiq/gui/datasets.py @@ -49,14 +49,19 @@ class DatasetsDock(dockarea.Dock): grid = LayoutWidget() self.addWidget(grid) + self.search = QtGui.QLineEdit() + self.search.setPlaceholderText("search...") + self.search.editingFinished.connect(self._search_datasets) + grid.addWidget(self.search, 0, ) + self.table = QtGui.QTableView() self.table.setSelectionMode(QtGui.QAbstractItemView.NoSelection) self.table.horizontalHeader().setResizeMode( QtGui.QHeaderView.ResizeToContents) - grid.addWidget(self.table, 0, 0) + grid.addWidget(self.table, 1, 0) add_display_box = QtGui.QGroupBox("Add display") - grid.addWidget(add_display_box, 0, 1) + grid.addWidget(add_display_box, 1, 1) display_grid = QtGui.QGridLayout() add_display_box.setLayout(display_grid) @@ -67,6 +72,17 @@ class DatasetsDock(dockarea.Dock): self.displays = dict() + def _search_datasets(self): + model = self.table_model + search = self.search.displayText() + for row in range(model.rowCount(model.index(0, 0))): + index = model.index(row, 0) + dataset = model.data(index, QtCore.Qt.DisplayRole) + if search in dataset: + self.table.showRow(row) + else: + self.table.hideRow(row) + def get_dataset(self, key): return self.table_model.backing_store[key][1] diff --git a/artiq/gui/parameters.py b/artiq/gui/parameters.py deleted file mode 100644 index 21b91a499..000000000 --- a/artiq/gui/parameters.py +++ /dev/null @@ -1,72 +0,0 @@ -import asyncio - -from quamash import QtGui, QtCore -from pyqtgraph import dockarea -from pyqtgraph import LayoutWidget - -from artiq.protocols.sync_struct import Subscriber -from artiq.gui.tools import DictSyncModel, short_format - - -class ParametersModel(DictSyncModel): - def __init__(self, parent, init): - DictSyncModel.__init__(self, ["Parameter", "Value"], - parent, init) - - def sort_key(self, k, v): - return k - - def convert(self, k, v, column): - if column == 0: - return k - elif column == 1: - return short_format(v) - else: - raise ValueError - - -class ParametersDock(dockarea.Dock): - def __init__(self): - dockarea.Dock.__init__(self, "Parameters", size=(400, 300)) - - grid = LayoutWidget() - self.addWidget(grid) - - self.search = QtGui.QLineEdit() - self.search.setPlaceholderText("search...") - self.search.editingFinished.connect(self._search_parameters) - grid.addWidget(self.search, 0, 0) - - self.table = QtGui.QTableView() - self.table.setSelectionMode(QtGui.QAbstractItemView.NoSelection) - self.table.horizontalHeader().setResizeMode( - QtGui.QHeaderView.ResizeToContents) - grid.addWidget(self.table, 1, 0) - - def get_parameter(self, key): - return self.table_model.backing_store[key] - - def _search_parameters(self): - model = self.table.model() - parentIndex = model.index(0, 0) - numRows = model.rowCount(parentIndex) - - for row in range(numRows): - index = model.index(row, 0) - parameter = model.data(index, QtCore.Qt.DisplayRole) - if parameter.startswith(self.search.displayText()): - self.table.showRow(row) - else: - self.table.hideRow(row) - - async def sub_connect(self, host, port): - self.subscriber = Subscriber("parameters", self.init_parameters_model) - await self.subscriber.connect(host, port) - - async def sub_close(self): - await self.subscriber.close() - - def init_parameters_model(self, init): - self.table_model = ParametersModel(self.table, init) - self.table.setModel(self.table_model) - return self.table_model