class InstrumentLoggingSelection(SelectionUi): def __init__(self, config, classdict, instancename="ExternalParameterSelection.ParametersSequence", plotNames=None, parent=None, instrumentLoggingHandler=None): super(InstrumentLoggingSelection, self).__init__(config, dict(), classdict, instancename, parent) self.instrumentLoggingHandler = instrumentLoggingHandler self.current = None def setupUi(self, MainWindow): super(InstrumentLoggingSelection, self).setupUi(MainWindow) self.loggingHandlerTreeWidget = ParameterTree(self.splitter) self.loggingHandlerTreeWidget.setObjectName("loggingHandlerTreeWidget") self.loggingHandlerTreeWidget.headerItem().setText(0, "1") self.loggingHandlerTreeWidget.header().setVisible(False) def onActiveInstrumentChanged(self, modelIndex, modelIndex2): self.current = self.parameters.at(modelIndex.row()).name super(InstrumentLoggingSelection, self).onActiveInstrumentChanged(modelIndex, modelIndex2) self.loggingHandlerTreeWidget.setParameters( self.instrumentLoggingHandler.parameter(self.current)) def refreshParamTree(self): if self.current is not None: self.loggingHandlerTreeWidget.setParameters( self.instrumentLoggingHandler.parameter(self.current))
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(241, 367) Form.setWindowTitle( QtGui.QApplication.translate("Form", "Export", None, QtGui.QApplication.UnicodeUTF8)) self.gridLayout = QtGui.QGridLayout(Form) self.gridLayout.setSpacing(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.label = QtGui.QLabel(Form) self.label.setText( QtGui.QApplication.translate("Form", "Item to export:", None, QtGui.QApplication.UnicodeUTF8)) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 0, 0, 1, 3) self.itemTree = QtGui.QTreeWidget(Form) self.itemTree.setObjectName(_fromUtf8("itemTree")) self.itemTree.headerItem().setText(0, _fromUtf8("1")) self.itemTree.header().setVisible(False) self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3) self.label_2 = QtGui.QLabel(Form) self.label_2.setText( QtGui.QApplication.translate("Form", "Export format", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3) self.formatList = QtGui.QListWidget(Form) self.formatList.setObjectName(_fromUtf8("formatList")) self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3) self.exportBtn = QtGui.QPushButton(Form) self.exportBtn.setText( QtGui.QApplication.translate("Form", "Export", None, QtGui.QApplication.UnicodeUTF8)) self.exportBtn.setObjectName(_fromUtf8("exportBtn")) self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1) self.closeBtn = QtGui.QPushButton(Form) self.closeBtn.setText( QtGui.QApplication.translate("Form", "Close", None, QtGui.QApplication.UnicodeUTF8)) self.closeBtn.setObjectName(_fromUtf8("closeBtn")) self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1) self.paramTree = ParameterTree(Form) self.paramTree.setObjectName(_fromUtf8("paramTree")) self.paramTree.headerItem().setText(0, _fromUtf8("1")) self.paramTree.header().setVisible(False) self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3) self.label_3 = QtGui.QLabel(Form) self.label_3.setText( QtGui.QApplication.translate("Form", "Export options", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): pass
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(241, 367) self.gridLayout = QtGui.QGridLayout(Form) self.gridLayout.setSpacing(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.label = QtGui.QLabel(Form) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 0, 0, 1, 3) self.itemTree = QtGui.QTreeWidget(Form) self.itemTree.setObjectName(_fromUtf8("itemTree")) self.itemTree.headerItem().setText(0, _fromUtf8("1")) self.itemTree.header().setVisible(False) self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3) self.label_2 = QtGui.QLabel(Form) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3) self.formatList = QtGui.QListWidget(Form) self.formatList.setObjectName(_fromUtf8("formatList")) self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3) self.exportBtn = QtGui.QPushButton(Form) self.exportBtn.setObjectName(_fromUtf8("exportBtn")) self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1) self.closeBtn = QtGui.QPushButton(Form) self.closeBtn.setObjectName(_fromUtf8("closeBtn")) self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1) self.paramTree = ParameterTree(Form) self.paramTree.setObjectName(_fromUtf8("paramTree")) self.paramTree.headerItem().setText(0, _fromUtf8("1")) self.paramTree.header().setVisible(False) self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3) self.label_3 = QtGui.QLabel(Form) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3) self.copyBtn = QtGui.QPushButton(Form) self.copyBtn.setObjectName(_fromUtf8("copyBtn")) self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Export", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Form", "Item to export:", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("Form", "Export format", None, QtGui.QApplication.UnicodeUTF8)) self.exportBtn.setText(QtGui.QApplication.translate("Form", "Export", None, QtGui.QApplication.UnicodeUTF8)) self.closeBtn.setText(QtGui.QApplication.translate("Form", "Close", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("Form", "Export options", None, QtGui.QApplication.UnicodeUTF8)) self.copyBtn.setText(QtGui.QApplication.translate("Form", "Copy", None, QtGui.QApplication.UnicodeUTF8))
class InstrumentLoggingSelection( SelectionUi ): def __init__(self, config, classdict, instancename="ExternalParameterSelection.ParametersSequence", plotNames=None, parent=None, instrumentLoggingHandler=None ): super(InstrumentLoggingSelection, self).__init__(config, dict(), classdict, instancename, parent) self.instrumentLoggingHandler = instrumentLoggingHandler self.current = None def setupUi(self, MainWindow): super(InstrumentLoggingSelection, self).setupUi(MainWindow) self.loggingHandlerTreeWidget = ParameterTree(self.splitter) self.loggingHandlerTreeWidget.setObjectName("loggingHandlerTreeWidget") self.loggingHandlerTreeWidget.headerItem().setText(0, "1") self.loggingHandlerTreeWidget.header().setVisible(False) def onActiveInstrumentChanged(self, modelIndex, modelIndex2 ): self.current = self.parameters.at(modelIndex.row()).name super(InstrumentLoggingSelection, self).onActiveInstrumentChanged( modelIndex, modelIndex2 ) self.loggingHandlerTreeWidget.setParameters( self.instrumentLoggingHandler.parameter(self.current) ) def refreshParamTree(self): if self.current is not None: self.loggingHandlerTreeWidget.setParameters( self.instrumentLoggingHandler.parameter(self.current) )
class NDFConverterWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self) widget = QWidget(self) layout = QGridLayout(widget) self.setCentralWidget(widget) self.terminal = QTextBrowser(self) self._err_color = QtCore.Qt.red self.folder2convert = '' self.button3 = QPushButton('Convert Files!', self) self.button3.clicked.connect(self.runConvertFiles) self.animal_dict = [{ 'name': 'Animal 0', 'type': 'str', 'value': '[0]', 'renamable': True, 'removable': True }] self.params = [{ 'name': 'Directories', 'type': 'group', 'children': [{ 'name': 'Select NDF directory', 'type': 'action', 'children': [{ 'name': 'NDF directory:', 'type': 'str', 'value': os.getcwd() }] }, { 'name': 'Select Destination directory', 'type': 'action', 'children': [{ 'name': 'Destination directory:', 'type': 'str', 'value': os.getcwd() + 'h5' }] }] }, { 'name': 'Date Range', 'type': 'group', 'children': [ { 'name': 'Start', 'type': 'str', 'value': '00/00/00 00:00:00' }, { 'name': 'End', 'type': 'str', 'value': '00/00/00 00:00:00' }, ] }, ScalableGroup(name='Animal id: [TID1,TID2,...]', children=self.animal_dict)] ## Create tree of Parameter objects self.p = Parameter.create(name='params', type='group', children=self.params) self.p.param('Directories', 'Select NDF directory').sigActivated.connect( self.selectNDFFolder) self.p.param('Directories', 'Select NDF directory', 'NDF directory:').sigValueChanged.connect( self.setNDFFolder) self.p.param('Directories', 'Select Destination directory').sigActivated.connect( self.selectDestinationFolder) self.p.param('Directories', 'Select Destination directory', 'Destination directory:').sigValueChanged.connect( self.setDestinationFolder) self.t = ParameterTree() self.t.setParameters(self.p, showTop=False) self.t.headerItem().setHidden(True) layout.addWidget(self.t) layout.setRowStretch(0, 10) layout.setRowMinimumHeight(0, 400) layout.setColumnMinimumWidth(0, 600) layout.addWidget(self.button3) layout.addWidget(self.terminal) layout.setRowMinimumHeight(2, 300) stdout = OutputWrapper(self, True) stdout.outputWritten.connect(self.handleOutput) stderr = OutputWrapper(self, False) stderr.outputWritten.connect(self.handleOutput) self.threadpool = QtCore.QThreadPool() self.dfrmt = '%Y-%m-%d %H:%M:%S' # Format to use in date elements def handleOutput(self, text, stdout): color = self.terminal.textColor() self.terminal.setTextColor(color if stdout else self._err_color) self.terminal.moveCursor(QtGui.QTextCursor.End) self.terminal.insertPlainText(text) self.terminal.setTextColor(color) def selectNDFFolder(self): dialog = QFileDialog() dialog.setWindowTitle('Select NDF directory') dialog.setFileMode(QFileDialog.DirectoryOnly) dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec(): self.p.param('Directories', 'Select NDF directory', 'NDF directory:').setValue(dialog.selectedFiles()[0]) else: sys.stderr.write('No folder selected\n') def setNDFFolder(self, folder2convertParam): self.folder2convert = folder2convertParam.value() print('Inspecting', self.folder2convert) ndf_files = glob.glob(self.folder2convert + os.path.sep + '*.ndf') ndf_files.sort() print('Converting folder:', self.folder2convert) print('There are', len(ndf_files), ' *.ndf files to convert...') if len(ndf_files) == 0: print('Folder does not have *.ndf files to convert!') return start_timestamp = int(os.path.split(ndf_files[0])[-1][1:-4]) end_timestamp = int(os.path.split(ndf_files[-1])[-1][1:-4]) self.p.param('Date Range', 'Start').setValue( datetime.fromtimestamp(start_timestamp).strftime(self.dfrmt)) self.p.param('Date Range', 'End').setValue( datetime.fromtimestamp(end_timestamp).strftime(self.dfrmt)) print('testing file', ndf_files[0]) test_file = NdfFile(ndf_files[0]) test_file.read_file_metadata() test_file.get_valid_tids_and_fs() print('Found TIDs', test_file.tid_set, ' valid in first file (there might be more in other files)') self.animal_dict.clear() for i, id in enumerate(test_file.tid_set): self.animal_dict.append({ 'name': 'Animal ' + str(i), 'type': 'str', 'value': '[' + str(id) + ']', 'renamable': True, 'removable': True }) self.p.param('Animal id: [TID1,TID2,...]').clearChildren() self.p.param('Animal id: [TID1,TID2,...]').addChildren( self.animal_dict) def selectDestinationFolder(self): dialog = QFileDialog() dialog.setWindowTitle('Select Destination directory') dialog.setFileMode(QFileDialog.DirectoryOnly) dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec(): self.p.param('Directories', 'Select Destination directory', 'Destination directory:').setValue( dialog.selectedFiles()[0]) def setDestinationFolder(self, destinationFolderParam): self.destination_folder = destinationFolderParam.value() print('Saving files to folder:', self.destination_folder) def runConvertFiles(self): worker = Worker(self.convertFiles) print('Starting file conversion...') self.threadpool.start(worker) def convertFiles(self): dh = DataHandler() start_string = self.p.param('Date Range', 'Start').value() start_file_name = 'M' + str( int(datetime.strptime(start_string, self.dfrmt).timestamp())) + '.ndf' end_string = self.p.param('Date Range', 'End').value() end_file_name = 'M' + str( int(datetime.strptime(end_string, self.dfrmt).timestamp())) + '.ndf' self.files2convert = [ os.path.join(self.folder2convert, f) for f in os.listdir(self.folder2convert) if (start_file_name <= f <= end_file_name) ] print(len(self.files2convert), 'files between:', start_file_name, 'and', end_file_name) for a in self.p.param('Animal id: [TID1,TID2,...]').children(): print('***\n Starting to convert', a.name(), a.value(), '\n***') tids = a.value() dh.convert_ndf_directory_to_h5(self.files2convert, tids=tids, save_dir=self.destination_folder) return (1, 1) # wavelet worker expects to emit tuple when done...
class ProjecEditWindow(QMainWindow): def __init__(self,project = None): QMainWindow.__init__(self) widget = QWidget(self) layout = QGridLayout(widget) self.title ='Project Editor' self.project = project # if self.project is None: # self.project = Project(main_model=MainModel()) # self.project.add_animal(Animal(id='0')) self.setCentralWidget(widget) self.terminal = QTextBrowser(self) self._err_color = QtCore.Qt.red self.folder2convert = '' self.button = QPushButton('Update Project Settings from Animal List', self) self.button.clicked.connect(self.update_project_settings) self.animal_dict = [Animal2Parameter(animal) for animal in self.project.animal_list] print(self.animal_dict) self.params = [ {'name': 'Global Settings','type':'group','children':[ {'name': 'Project Title', 'type': 'str', 'value': self.project.title}, {'name': 'Project file','type':'action','children':[ {'name':'Project file:','type':'str','value': self.project.project_file} ]}, {'name': 'Select EEG root directory','type':'action','children':[ {'name':'EEG root directory:','type':'str','value': self.project.eeg_root_folder} ]}, {'name': 'Select Video root directory', 'type': 'action', 'children': [ {'name': 'Video root directory:', 'type': 'str', 'value': self.project.video_root_folder} ]}, {'name': ' ', 'type': 'str','vlue':' '}, {'name': 'Update project from root folders', 'type': 'action'}, {'name': ' ', 'type': 'str','vlue':' '}, ]}, ScalableGroup(name='Animal list:', children=self.animal_dict)] ## Create tree of Parameter objects self.p = Parameter.create(name='params', type='group', children=self.params) self.p.param('Global Settings', 'Update project from root folders').sigActivated.connect(self.update_project_from_roots) self.p.param('Global Settings', 'Select EEG root directory','EEG root directory:').sigValueChanged.connect( self.setEEGFolder) self.p.param('Global Settings', 'Select EEG root directory').sigActivated.connect( self.selectEEGFolder) self.p.param('Global Settings', 'Select Video root directory','Video root directory:').sigValueChanged.connect( self.setVideoFolder) self.p.param('Global Settings', 'Select Video root directory').sigActivated.connect( self.selectVideoFolder) self.t = ParameterTree() self.t.setParameters(self.p, showTop=False) self.t.headerItem().setHidden(True) layout.addWidget(self.t) layout.setRowStretch(0,10) layout.setRowMinimumHeight(0,400) layout.setColumnMinimumWidth(0,600) layout.addWidget(self.button) layout.addWidget(self.terminal) layout.setRowMinimumHeight(2,300) stdout = OutputWrapper(self, True) stdout.outputWritten.connect(self.handleOutput) stderr = OutputWrapper(self, False) stderr.outputWritten.connect(self.handleOutput) self.threadpool = QtCore.QThreadPool() self.dfrmt = '%Y-%m-%d %H:%M:%S' # Format to use in date elements def handleOutput(self, text, stdout): color = self.terminal.textColor() self.terminal.setTextColor(color if stdout else self._err_color) self.terminal.moveCursor(QtGui.QTextCursor.End) self.terminal.insertPlainText(text) self.terminal.setTextColor(color) def selectEEGFolder(self): dialog = QFileDialog() dialog.setWindowTitle('Select EEG directory') dialog.setFileMode(QFileDialog.DirectoryOnly) dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec(): self.p.param('Global Settings', 'Select EEG root directory','EEG root directory:').setValue(dialog.selectedFiles()[0]) else: sys.stderr.write('No folder selected\n') def setEEGFolder(self, eeg_root_folder_param): pass # Currently we are only accepting changes when clicking the Update button # self.project.eeg_root_folder = eeg_root_folder.value(0) def selectVideoFolder(self): dialog = QFileDialog() dialog.setWindowTitle('Select EEG directory') dialog.setFileMode(QFileDialog.DirectoryOnly) dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec(): self.p.param('Global Settings', 'Select Video root directory','Video root directory:').setValue(dialog.selectedFiles()[0]) else: sys.stderr.write('No folder selected\n') def setVideoFolder(self, eeg_root_folder_param): pass # Currently we are only accepting changes when clicking the Update button # self.project.eeg_root_folder = eeg_root_folder.value(0) def update_project_settings(self): animal_param_list = self.p.param('Animal list:').getValues() old_animal_list = [a.id for a in self.project.animal_list] deleted_animals = list(set(old_animal_list)-set(animal_param_list)) for a in deleted_animals: print('Deleting animal with id',a) self.project.delete_animal(a) for p in animal_param_list: animal = self.project.get_animal(p) id = self.p.param('Animal list:',p,'new id').value() eeg_dir = self.p.param('Animal list:',p,'EEG directory').value() video_dir = self.p.param('Animal list:',p,'Video directory').value() self.p.param('Animal list:',p).setName(id) if animal is None: print('Adding new animal with id', id) self.project.add_animal(Animal(id=id,eeg_folder=eeg_dir,video_folder=video_dir)) else: print('Updating animal with id', id) animal.update_eeg_folder(eeg_dir) animal.update_video_folder(video_dir) def update_project_from_roots(self): self.project.eeg_root_folder = self.p.param('Global Settings', 'Select EEG root directory','EEG root directory:').value() self.project.video_root_folder = self.p.param('Global Settings', 'Select Video root directory','Video root directory:').value() print('Updating project from root directories...') print('processing', self.project.eeg_root_folder) self.project.update_project_from_root_directories() # update animal list in GUI self.animal_dict = [Animal2Parameter(animal) for animal in self.project.animal_list] self.p.param('Animal list:').clearChildren() self.p.param('Animal list:').addChildren(self.animal_dict) pass
class Ui_BenderWindow(object): def setupUi(self, BenderWindow): BenderWindow.setObjectName(_fromUtf8("BenderWindow")) BenderWindow.resize(1028, 694) self.centralwidget = QtGui.QWidget(BenderWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.centralwidget) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.fileNameLabel = QtGui.QLabel(self.centralwidget) font = QtGui.QFont() font.setPointSize(15) font.setBold(True) font.setWeight(75) self.fileNameLabel.setFont(font) self.fileNameLabel.setObjectName(_fromUtf8("fileNameLabel")) self.horizontalLayout.addWidget(self.fileNameLabel) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.goButton = QtGui.QPushButton(self.centralwidget) self.goButton.setObjectName(_fromUtf8("goButton")) self.horizontalLayout.addWidget(self.goButton) self.verticalLayout_2.addLayout(self.horizontalLayout) self.verticalSplitter = QtGui.QSplitter(self.centralwidget) self.verticalSplitter.setOrientation(QtCore.Qt.Horizontal) self.verticalSplitter.setObjectName(_fromUtf8("verticalSplitter")) self.verticalLayoutWidget = QtGui.QWidget(self.verticalSplitter) self.verticalLayoutWidget.setObjectName(_fromUtf8("verticalLayoutWidget")) self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.gridLayout = QtGui.QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.label = QtGui.QLabel(self.verticalLayoutWidget) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 0, 0, 1, 2) self.label_2 = QtGui.QLabel(self.verticalLayoutWidget) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 4, 0, 1, 2) self.label_3 = QtGui.QLabel(self.verticalLayoutWidget) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout.addWidget(self.label_3, 6, 0, 1, 1) self.nextFileNumberBox = QtGui.QSpinBox(self.verticalLayoutWidget) self.nextFileNumberBox.setMinimum(1) self.nextFileNumberBox.setMaximum(10000) self.nextFileNumberBox.setProperty("value", 1) self.nextFileNumberBox.setObjectName(_fromUtf8("nextFileNumberBox")) self.gridLayout.addWidget(self.nextFileNumberBox, 6, 1, 1, 1) self.fileNamePatternEdit = QtGui.QLineEdit(self.verticalLayoutWidget) self.fileNamePatternEdit.setObjectName(_fromUtf8("fileNamePatternEdit")) self.gridLayout.addWidget(self.fileNamePatternEdit, 5, 1, 1, 4) self.browseOutputPathButton = QtGui.QPushButton(self.verticalLayoutWidget) self.browseOutputPathButton.setObjectName(_fromUtf8("browseOutputPathButton")) self.gridLayout.addWidget(self.browseOutputPathButton, 1, 4, 1, 1) self.outputPathEdit = QtGui.QLineEdit(self.verticalLayoutWidget) self.outputPathEdit.setObjectName(_fromUtf8("outputPathEdit")) self.gridLayout.addWidget(self.outputPathEdit, 1, 1, 1, 3) self.restartNumberingButton = QtGui.QPushButton(self.verticalLayoutWidget) self.restartNumberingButton.setObjectName(_fromUtf8("restartNumberingButton")) self.gridLayout.addWidget(self.restartNumberingButton, 6, 2, 1, 1) self.nextFileNameLabel = QtGui.QLabel(self.verticalLayoutWidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.nextFileNameLabel.sizePolicy().hasHeightForWidth()) self.nextFileNameLabel.setSizePolicy(sizePolicy) self.nextFileNameLabel.setObjectName(_fromUtf8("nextFileNameLabel")) self.gridLayout.addWidget(self.nextFileNameLabel, 6, 3, 1, 1) self.verticalLayout.addLayout(self.gridLayout) self.parameterTreeWidget = ParameterTree(self.verticalLayoutWidget) self.parameterTreeWidget.setObjectName(_fromUtf8("parameterTreeWidget")) self.parameterTreeWidget.headerItem().setText(0, _fromUtf8("1")) self.verticalLayout.addWidget(self.parameterTreeWidget) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem1) self.loadParametersButton = QtGui.QPushButton(self.verticalLayoutWidget) self.loadParametersButton.setObjectName(_fromUtf8("loadParametersButton")) self.horizontalLayout_2.addWidget(self.loadParametersButton) self.saveParametersButton = QtGui.QPushButton(self.verticalLayoutWidget) self.saveParametersButton.setObjectName(_fromUtf8("saveParametersButton")) self.horizontalLayout_2.addWidget(self.saveParametersButton) self.verticalLayout.addLayout(self.horizontalLayout_2) self.plotSplitter = QtGui.QSplitter(self.verticalSplitter) self.plotSplitter.setOrientation(QtCore.Qt.Vertical) self.plotSplitter.setObjectName(_fromUtf8("plotSplitter")) self.plot1Widget = PlotWidget(self.plotSplitter) self.plot1Widget.setObjectName(_fromUtf8("plot1Widget")) self.verticalLayoutWidget_2 = QtGui.QWidget(self.plotSplitter) self.verticalLayoutWidget_2.setObjectName(_fromUtf8("verticalLayoutWidget_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.verticalLayoutWidget_2) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.plotYBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.plotYBox.setObjectName(_fromUtf8("plotYBox")) self.horizontalLayout_3.addWidget(self.plotYBox) self.label_4 = QtGui.QLabel(self.verticalLayoutWidget_2) self.label_4.setObjectName(_fromUtf8("label_4")) self.horizontalLayout_3.addWidget(self.label_4) self.plotXBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.plotXBox.setObjectName(_fromUtf8("plotXBox")) self.horizontalLayout_3.addWidget(self.plotXBox) spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem2) self.label_5 = QtGui.QLabel(self.verticalLayoutWidget_2) self.label_5.setObjectName(_fromUtf8("label_5")) self.horizontalLayout_3.addWidget(self.label_5) self.colorByBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.colorByBox.setObjectName(_fromUtf8("colorByBox")) self.colorByBox.addItem(_fromUtf8("")) self.colorByBox.addItem(_fromUtf8("")) self.colorByBox.addItem(_fromUtf8("")) self.horizontalLayout_3.addWidget(self.colorByBox) self.verticalLayout_3.addLayout(self.horizontalLayout_3) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.overlayCheck = QtGui.QCheckBox(self.verticalLayoutWidget_2) self.overlayCheck.setObjectName(_fromUtf8("overlayCheck")) self.horizontalLayout_4.addWidget(self.overlayCheck) self.plotYOverlayBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.plotYOverlayBox.setObjectName(_fromUtf8("plotYOverlayBox")) self.horizontalLayout_4.addWidget(self.plotYOverlayBox) self.label_6 = QtGui.QLabel(self.verticalLayoutWidget_2) self.label_6.setObjectName(_fromUtf8("label_6")) self.horizontalLayout_4.addWidget(self.label_6) self.overlayFromBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.overlayFromBox.setObjectName(_fromUtf8("overlayFromBox")) self.overlayFromBox.addItem(_fromUtf8("")) self.overlayFromBox.addItem(_fromUtf8("")) self.horizontalLayout_4.addWidget(self.overlayFromBox) spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem3) self.label_7 = QtGui.QLabel(self.verticalLayoutWidget_2) self.label_7.setObjectName(_fromUtf8("label_7")) self.horizontalLayout_4.addWidget(self.label_7) self.overlayColorBox = QtGui.QComboBox(self.verticalLayoutWidget_2) self.overlayColorBox.setObjectName(_fromUtf8("overlayColorBox")) self.overlayColorBox.addItem(_fromUtf8("")) self.overlayColorBox.addItem(_fromUtf8("")) self.overlayColorBox.addItem(_fromUtf8("")) self.overlayColorBox.addItem(_fromUtf8("")) self.overlayColorBox.addItem(_fromUtf8("")) self.overlayColorBox.addItem(_fromUtf8("")) self.horizontalLayout_4.addWidget(self.overlayColorBox) self.verticalLayout_3.addLayout(self.horizontalLayout_4) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) self.filterCheck = QtGui.QCheckBox(self.verticalLayoutWidget_2) self.filterCheck.setChecked(True) self.filterCheck.setObjectName(_fromUtf8("filterCheck")) self.horizontalLayout_5.addWidget(self.filterCheck) self.label_8 = QtGui.QLabel(self.verticalLayoutWidget_2) self.label_8.setObjectName(_fromUtf8("label_8")) self.horizontalLayout_5.addWidget(self.label_8) self.filterCutoffBox = QtGui.QDoubleSpinBox(self.verticalLayoutWidget_2) self.filterCutoffBox.setDecimals(0) self.filterCutoffBox.setMaximum(500.0) self.filterCutoffBox.setSingleStep(10.0) self.filterCutoffBox.setProperty("value", 20.0) self.filterCutoffBox.setObjectName(_fromUtf8("filterCutoffBox")) self.horizontalLayout_5.addWidget(self.filterCutoffBox) spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem4) self.verticalLayout_3.addLayout(self.horizontalLayout_5) self.plot2Widget = PlotWidget(self.verticalLayoutWidget_2) self.plot2Widget.setObjectName(_fromUtf8("plot2Widget")) self.verticalLayout_3.addWidget(self.plot2Widget) self.verticalLayout_2.addWidget(self.verticalSplitter) self.verticalLayout_2.setStretch(1, 100) BenderWindow.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(BenderWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) BenderWindow.setStatusBar(self.statusbar) self.retranslateUi(BenderWindow) QtCore.QMetaObject.connectSlotsByName(BenderWindow) def retranslateUi(self, BenderWindow): BenderWindow.setWindowTitle(_translate("BenderWindow", "Bender", None)) self.fileNameLabel.setText(_translate("BenderWindow", "TextLabel", None)) self.goButton.setText(_translate("BenderWindow", "Go", None)) self.label.setText(_translate("BenderWindow", "Output path:", None)) self.label_2.setText(_translate("BenderWindow", "File name pattern:", None)) self.label_3.setText(_translate("BenderWindow", "Next trial:", None)) self.fileNamePatternEdit.setToolTip(_translate("BenderWindow", "Codes:\n" "{f}=Frequency\n" "{a}=Amplitude", None)) self.browseOutputPathButton.setText(_translate("BenderWindow", "Browse...", None)) self.restartNumberingButton.setText(_translate("BenderWindow", "Restart", None)) self.nextFileNameLabel.setText(_translate("BenderWindow", "Next file", None)) self.loadParametersButton.setText(_translate("BenderWindow", "Load...", None)) self.saveParametersButton.setText(_translate("BenderWindow", "Save...", None)) self.label_4.setText(_translate("BenderWindow", "vs.", None)) self.label_5.setText(_translate("BenderWindow", "Color by", None)) self.colorByBox.setItemText(0, _translate("BenderWindow", "None", None)) self.colorByBox.setItemText(1, _translate("BenderWindow", "Active/passive", None)) self.colorByBox.setItemText(2, _translate("BenderWindow", "Cycle number", None)) self.overlayCheck.setText(_translate("BenderWindow", "Overlay", None)) self.label_6.setText(_translate("BenderWindow", "from", None)) self.overlayFromBox.setItemText(0, _translate("BenderWindow", "Current file", None)) self.overlayFromBox.setItemText(1, _translate("BenderWindow", "Other file...", None)) self.label_7.setText(_translate("BenderWindow", "Color", None)) self.overlayColorBox.setItemText(0, _translate("BenderWindow", "Red", None)) self.overlayColorBox.setItemText(1, _translate("BenderWindow", "Blue", None)) self.overlayColorBox.setItemText(2, _translate("BenderWindow", "Green", None)) self.overlayColorBox.setItemText(3, _translate("BenderWindow", "Black", None)) self.overlayColorBox.setItemText(4, _translate("BenderWindow", "Dark red", None)) self.overlayColorBox.setItemText(5, _translate("BenderWindow", "Dark blue", None)) self.filterCheck.setText(_translate("BenderWindow", "Filter", None)) self.label_8.setText(_translate("BenderWindow", "Cutoff", None)) self.filterCutoffBox.setSuffix(_translate("BenderWindow", "Hz", None))