class InterpolateBadsDialog(QDialog): def __init__(self, parent): super().__init__(parent) self.setWindowTitle("Interpolate bad channels") vbox = QVBoxLayout(self) grid = QGridLayout() grid.addWidget(QLabel("Reset bads:"), 0, 0) self.reset_bads_checkbox = QCheckBox() self.reset_bads_checkbox.setChecked(True) grid.addWidget(self.reset_bads_checkbox, 0, 1) grid.addWidget(QLabel("Mode:"), 1, 0) self.mode_select = QComboBox() self.modes = {"Accurate": "accurate", "Fast": "fast"} self.mode_select.addItems(self.modes.keys()) self.mode_select.setCurrentText("Accurate") grid.addWidget(self.mode_select, 1, 1) grid.addWidget(QLabel("Origin (x, y, z):"), 2, 0) hbox = QHBoxLayout() self.x = QDoubleSpinBox() self.x.setValue(0) self.x.setDecimals(3) hbox.addWidget(self.x) self.y = QDoubleSpinBox() self.y.setValue(0) self.y.setDecimals(3) hbox.addWidget(self.y) self.z = QDoubleSpinBox() self.z.setValue(0.04) self.z.setDecimals(3) hbox.addWidget(self.z) grid.addLayout(hbox, 2, 1) vbox.addLayout(grid) buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) vbox.addWidget(buttonbox) buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) vbox.setSizeConstraint(QVBoxLayout.SetFixedSize) @property def origin(self): x = float(self.x.value()) y = float(self.y.value()) z = float(self.z.value()) return x, y, z @property def mode(self): return self.mode_select.currentText() @property def reset_bads(self): return self.reset_bads_checkbox.isChecked()
class ERDSDialog(QDialog): def __init__(self, parent, t_range, f_range): super().__init__(parent) self.setWindowTitle("ERDS maps") vbox = QVBoxLayout(self) grid = QGridLayout() grid.addWidget(QLabel("Frequency range:"), 0, 0) self._f1 = QDoubleSpinBox() self._f1.setRange(*f_range) self._f1.setValue(f_range[0]) self._f1.setDecimals(1) self._f1.setSuffix(" Hz") grid.addWidget(self._f1, 0, 1) self._f2 = QDoubleSpinBox() self._f2.setRange(*f_range) self._f2.setValue(f_range[1]) self._f2.setDecimals(1) self._f2.setSuffix(" Hz") grid.addWidget(self._f2, 0, 2) grid.addWidget(QLabel("Step size:"), 1, 0) self._step = QDoubleSpinBox() self._step.setRange(0.1, 5) self._step.setValue(1) self._step.setDecimals(1) self._step.setSingleStep(0.1) self._step.setSuffix(" Hz") grid.addWidget(self._step, 1, 1) grid.addWidget(QLabel("Time range:"), 2, 0) self._t1 = QDoubleSpinBox() self._t1.setRange(*t_range) self._t1.setValue(t_range[0]) self._t1.setDecimals(1) self._step.setSingleStep(0.1) self._t1.setSuffix(" s") grid.addWidget(self._t1, 2, 1) self._t2 = QDoubleSpinBox() self._t2.setRange(*t_range) self._t2.setValue(t_range[1]) self._t2.setDecimals(1) self._step.setSingleStep(0.1) self._t2.setSuffix(" s") grid.addWidget(self._t2, 2, 2) grid.addWidget(QLabel("Baseline:"), 3, 0) self._b1 = QDoubleSpinBox() self._b1.setRange(*t_range) self._b1.setValue(t_range[0]) self._b1.setDecimals(1) self._step.setSingleStep(0.1) self._b1.setSuffix(" s") grid.addWidget(self._b1, 3, 1) self._b2 = QDoubleSpinBox() self._b2.setRange(*t_range) self._b2.setValue(0) self._b2.setDecimals(1) self._step.setSingleStep(0.1) self._b2.setSuffix(" s") grid.addWidget(self._b2, 3, 2) vbox.addLayout(grid) buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) vbox.addWidget(buttonbox) buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) vbox.setSizeConstraint(QVBoxLayout.SetFixedSize) @property def f1(self): return self._f1.value() @property def f2(self): return self._f2.value() @property def step(self): return self._step.value() @property def t1(self): return self._t1.value() @property def t2(self): return self._t2.value() @property def b1(self): return self._b1.value() @property def b2(self): return self._b2.value()
class CropDialog(QDialog): def __init__(self, parent, start, stop): super().__init__(parent) self.setWindowTitle("Crop data") vbox = QVBoxLayout(self) grid = QGridLayout() self.start_checkbox = QCheckBox("Start time:") self.start_checkbox.setChecked(True) self.start_checkbox.stateChanged.connect(self.toggle_start) grid.addWidget(self.start_checkbox, 0, 0) self._start = QDoubleSpinBox() self._start.setMaximum(999999) self._start.setValue(start) self._start.setDecimals(2) self._start.setSuffix(" s") grid.addWidget(self._start, 0, 1) self.stop_checkbox = QCheckBox("Stop time:") self.stop_checkbox.setChecked(True) self.stop_checkbox.stateChanged.connect(self.toggle_stop) grid.addWidget(self.stop_checkbox, 1, 0) self._stop = QDoubleSpinBox() self._stop.setMaximum(999999) self._stop.setValue(stop) self._stop.setDecimals(2) self._stop.setSuffix(" s") grid.addWidget(self._stop, 1, 1) vbox.addLayout(grid) buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) vbox.addWidget(buttonbox) buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) vbox.setSizeConstraint(QVBoxLayout.SetFixedSize) @property def start(self): if self.start_checkbox.isChecked(): return self._start.value() else: return None @property def stop(self): if self.stop_checkbox.isChecked(): return self._stop.value() else: return None @Slot() def toggle_start(self): if self.start_checkbox.isChecked(): self._start.setEnabled(True) else: self._start.setEnabled(False) @Slot() def toggle_stop(self): if self.stop_checkbox.isChecked(): self._stop.setEnabled(True) else: self._stop.setEnabled(False)