diff --git a/blipblop/ui/startscreen.py b/blipblop/ui/startscreen.py index e818d78..9db149c 100644 --- a/blipblop/ui/startscreen.py +++ b/blipblop/ui/startscreen.py @@ -1,70 +1,57 @@ import os -from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel, QFrame, QVBoxLayout, QListWidget, QAbstractItemView, QListWidgetItem -from PyQt5.QtGui import QPixmap -from PyQt5.QtCore import Qt, QSettings, pyqtSignal +from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel +from PyQt5.QtGui import QFont, QPixmap +from PyQt5.QtCore import Qt, pyqtSignal import blipblop.constants as cnst +class MyLabel(QLabel): + clicked = pyqtSignal() + def mouseReleaseEvent(self, QMouseEvent): + if QMouseEvent.button() == Qt.LeftButton: + self.clicked.emit() + + class StartScreen(QWidget): - keyPressed = pyqtSignal(int) + visual_task_signal = pyqtSignal() + auditory_task_signal = pyqtSignal() def __init__(self, parent=None) -> None: super().__init__(parent=parent) - #self.setStyleSheet("background-color: white;") layout = QGridLayout() layout.setColumnStretch(0, 2) - layout.setColumnStretch(1, 1) - layout.setColumnStretch(2, 1) - layout.setColumnStretch(3, 1) - layout.setColumnStretch(4, 2) - + layout.setColumnStretch(6, 1) + layout.setRowStretch(0, 1) - layout.setRowStretch(1, 0) - layout.setRowStretch(2, 1) - layout.setRowStretch(3, 2) + layout.setRowStretch(4, 2) self.setLayout(layout) - label = QLabel("Measure your reaction times!\nselect a task!") - # label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "nixview_transparent.png"))) - # label.setMaximumWidth(300) + label = QLabel("Measure your reaction times!\nselect a task") + font = QFont() + font.setPointSize(25) + label.setFont(font) label.setAlignment(Qt.AlignCenter) - layout.addWidget(label, 1, 1, 1, 3, Qt.AlignCenter) + layout.addWidget(label, 1, 2, 1, 3, Qt.AlignCenter) - frame = QFrame() - l = QVBoxLayout() - l.addWidget(QLabel("Recently opened files:")) - self._file_list = QListWidget(self) - self._file_list.setSelectionMode(QAbstractItemView.SingleSelection) - self._file_list.setFrameShape(QFrame.NoFrame) - self.keyPressed.connect(self._on_key_pressed) - l.addWidget(self._file_list) - frame.setLayout(l) - layout.addWidget(frame, 3, 1, 1, 3) - self._file_map = {} - - def keyPressEvent(self, event): - super(StartScreen, self).keyPressEvent(event) - if event.key() == Qt.Key_Return: - self.keyPressed.emit(event.key()) - - def _create_short_filename(self, original, index, max_len=40): - short = original - parts = original.split(os.sep) - if len(parts) == 1: - short = "%i: %s" % (index, short[:max_len]) - else: - post = parts[-1] - if len(post) > max_len - 4: - post = post[:max_len - 4] - short = str("%i: " % index) + "... " + post - else: - short = str("%i: " % index) + " ... ".join([original[:max_len - len(post) - 4], post]) - return short - - def reset(self): - pass + visual_task_label = MyLabel() + visual_task_label.setToolTip("Click to start a new visual task") + visual_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "visual_task_large.png"))) + visual_task_label.setMaximumWidth(256) + visual_task_label.clicked.connect(self.new_visual_task) + + auditory_task_label = MyLabel() + auditory_task_label.setToolTip("Click to start a new auditory task") + auditory_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "auditory_task_large.png"))) + auditory_task_label.setMaximumWidth(256) + auditory_task_label.clicked.connect(self.new_auditory_task) + + layout.addWidget(visual_task_label, 2, 1, 2, 2, Qt.AlignCenter ) + layout.addWidget(auditory_task_label, 2, 4, 2, 2, Qt.AlignCenter ) - def _on_key_pressed(self, key): - pass + def new_auditory_task(self): + self.auditory_task_signal.emit() + + def new_visual_task(self): + self.visual_task_signal.emit()