[settings] store settings
This commit is contained in:
parent
2b5982eabb
commit
a19df544d7
@ -147,6 +147,7 @@ class AudioBlop(QWidget):
|
||||
return
|
||||
if not self._session_running:
|
||||
self._settings.set_enabled(False)
|
||||
self._settings.store_settings()
|
||||
self._session_running = True
|
||||
self._countdown_label.start(time=self._settings.countdown)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
from PyQt5.QtWidgets import QComboBox, QFormLayout, QSlider, QSpinBox, QTextEdit, QWidget
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtCore import Qt, QSettings
|
||||
import blipblop.constants as cnst
|
||||
|
||||
|
||||
@ -7,35 +7,36 @@ class TaskSettings(QWidget):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
|
||||
self.settings = QSettings()
|
||||
|
||||
self._trial_spinner = QSpinBox()
|
||||
self._trial_spinner.setMinimum(5)
|
||||
self._trial_spinner.setMaximum(25)
|
||||
self._trial_spinner.setValue(5)
|
||||
self._trial_spinner.setValue(int(self.settings.value("task/trials", 5)))
|
||||
self._trial_spinner.setToolTip("Number of consecutive trials (5 - 25)")
|
||||
|
||||
self._min_delay_spinner = QSpinBox()
|
||||
self._min_delay_spinner.setMinimum(1)
|
||||
self._min_delay_spinner.setMaximum(10)
|
||||
self._min_delay_spinner.setValue(1)
|
||||
self._min_delay_spinner.setValue(int(self.settings.value("task/min_delay", 1)))
|
||||
self._min_delay_spinner.setToolTip("Minimum delay between start of trial and stimulus display [s]")
|
||||
|
||||
self._max_delay_spinner = QSpinBox()
|
||||
self._max_delay_spinner = QSpinBox()
|
||||
self._max_delay_spinner.setMinimum(1)
|
||||
self._max_delay_spinner.setMaximum(10)
|
||||
self._max_delay_spinner.setValue(5)
|
||||
self._max_delay_spinner.setValue(int(self.settings.value("task/max_delay", 5)))
|
||||
self._max_delay_spinner.setToolTip("Maximum delay between start of trial and stimulus display [s]")
|
||||
|
||||
self._countdown_spinner = QSpinBox()
|
||||
self._countdown_spinner = QSpinBox()
|
||||
self._countdown_spinner.setMinimum(1)
|
||||
self._countdown_spinner.setMaximum(10)
|
||||
self._countdown_spinner.setValue(3)
|
||||
self._countdown_spinner.setValue(int(self.settings.value("task/pause", 3)))
|
||||
self._countdown_spinner.setToolTip("Pause between trials [s]")
|
||||
|
||||
self._saliency_slider = QSlider(Qt.Horizontal)
|
||||
self._saliency_slider.setMinimum(0)
|
||||
self._saliency_slider.setMaximum(100)
|
||||
self._saliency_slider.setSliderPosition(100)
|
||||
self._saliency_slider.setSliderPosition(int(self.settings.value("task/saliency", 100)))
|
||||
self._saliency_slider.setTickInterval(25)
|
||||
self._saliency_slider.setTickPosition(QSlider.TicksBelow)
|
||||
|
||||
@ -76,7 +77,7 @@ class TaskSettings(QWidget):
|
||||
|
||||
@property
|
||||
def countdown(self):
|
||||
return self._countdown_spinner.value()
|
||||
return self._countdown_spinner.value()
|
||||
|
||||
def set_enabled(self, enabled):
|
||||
self._trial_spinner.setEnabled(enabled)
|
||||
@ -85,6 +86,13 @@ class TaskSettings(QWidget):
|
||||
self._min_delay_spinner.setEnabled(enabled)
|
||||
self._max_delay_spinner.setEnabled(enabled)
|
||||
|
||||
def store_settings(self):
|
||||
self.settings.setValue("task/trials", self.trials)
|
||||
self.settings.setValue("task/salience", self.saliency)
|
||||
self.settings.setValue("task/min_delay", self.min_delay)
|
||||
self.settings.setValue("task/max_delay", self.max_delay)
|
||||
self.settings.setValue("task/pause", self.countdown)
|
||||
|
||||
|
||||
class AuditoryTaskSettings(TaskSettings):
|
||||
|
||||
@ -95,13 +103,17 @@ class AuditoryTaskSettings(TaskSettings):
|
||||
self._sound_combo = QComboBox()
|
||||
for k in cnst.SNDS_DICT.keys():
|
||||
self._sound_combo.addItem(k)
|
||||
|
||||
self.form_layout.insertRow(self.form_layout.rowCount() -1, "stimulus sound", self._sound_combo)
|
||||
self._sound_combo.setCurrentIndex(int(self.settings.value("auditory_task/sound_index", 0)))
|
||||
self.form_layout.insertRow(self.form_layout.rowCount() - 1, "stimulus sound", self._sound_combo)
|
||||
|
||||
def set_enabled(self, enabled):
|
||||
super().set_enabled(enabled)
|
||||
self._sound_combo.setEnabled(enabled)
|
||||
|
||||
def store_settings(self):
|
||||
super().store_settings()
|
||||
self.settings.setValue("auditory_task/sound_index", self._sound_combo.currentIndex)
|
||||
|
||||
@property
|
||||
def sound(self):
|
||||
return self._sound_combo.currentText()
|
||||
@ -116,17 +128,21 @@ class VisualTaskSettings(TaskSettings):
|
||||
self._size_slider = QSlider(Qt.Horizontal)
|
||||
self._size_slider.setMinimum(0)
|
||||
self._size_slider.setMaximum(200)
|
||||
self._size_slider.setSliderPosition(100)
|
||||
self._size_slider.setSliderPosition(int(self.settings.value("visual_task/stimulus_size", 100)))
|
||||
self._size_slider.setTickInterval(25)
|
||||
self._size_slider.setTickPosition(QSlider.TicksBelow)
|
||||
self._size_slider.setToolTip("Diameter of the stimulus in pixel")
|
||||
|
||||
self.form_layout.insertRow(self.form_layout.rowCount() -1, "stimulus size", self._size_slider)
|
||||
self.form_layout.insertRow(self.form_layout.rowCount() - 1, "stimulus size", self._size_slider)
|
||||
|
||||
def set_enabled(self, enabled):
|
||||
super().set_enabled(enabled)
|
||||
self._size_slider.setEnabled(enabled)
|
||||
|
||||
def store_settings(self):
|
||||
super().store_settings()
|
||||
self.settings.setValue("visual_task/stimulus_size", self.size)
|
||||
|
||||
@property
|
||||
def size(self):
|
||||
return self._size_slider.sliderPosition()
|
||||
|
@ -154,6 +154,7 @@ class VisualBlip(QWidget):
|
||||
return
|
||||
if not self._session_running:
|
||||
self._settings.set_enabled(False)
|
||||
self._settings.store_settings()
|
||||
self._session_running = True
|
||||
self._countdown_label.start(time=self._settings.countdown)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user