diff --git a/central_widget.py b/central_widget.py index 726c6b7..873503f 100644 --- a/central_widget.py +++ b/central_widget.py @@ -2,7 +2,7 @@ import os from PyQt5 import QtWidgets from PyQt5.QtWidgets import QFrame, QGroupBox, QLabel, QListWidget, QListWidgetItem, QSplitter, QStackedLayout, QAbstractItemView, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy, QTreeView, QHeaderView from PyQt5.QtGui import QPixmap -from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, QSize +from PyQt5.QtCore import QItemSelectionModel, Qt, QSettings, QSize, pyqtSignal from file_handler import FileHandler from plot_screen import PlotScreen @@ -122,7 +122,8 @@ class FileView(QWidget): pass class SplashScreen(QWidget): - + keyPressed = pyqtSignal(int) + def __init__(self, parent=None) -> None: super().__init__(parent=parent) layout = QGridLayout() @@ -148,13 +149,18 @@ class SplashScreen(QWidget): self._file_list = QListWidget(self) self._file_list.setSelectionMode(QAbstractItemView.SingleSelection) self._file_list.itemClicked.connect(self._on_file_clicked) - self._file_list.itemSelectionChanged.connect(self._on_selection_changed) + self.keyPressed.connect(self._on_key_pressed) l.addWidget(self._file_list) frame.setLayout(l) layout.addWidget(frame, 3, 1) self._file_map = {} self._read_recent_files() - + + def keyPressEvent(self, event): + super(SplashScreen, 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) @@ -187,7 +193,9 @@ class SplashScreen(QWidget): def _on_file_clicked(self, item): comm.communicator.open_recent.emit(self._file_map[item.text()]) - - def _on_selection_changed(self): + + def _on_key_pressed(self, key): item = self._file_list.currentItem() - comm.communicator.open_recent.emit(self._file_map[item.text()]) + print(item) + if item is not None and key == Qt.Key_Return: + comm.communicator.open_recent.emit(self._file_map[item.text()])