[splash] replace selection listener with key listener ...
items are only loaded upon activation (return) or clicking them, not because the list changes
This commit is contained in:
parent
a93a02d9ac
commit
ebca5c4b0b
@ -2,7 +2,7 @@ import os
|
|||||||
from PyQt5 import QtWidgets
|
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.QtWidgets import QFrame, QGroupBox, QLabel, QListWidget, QListWidgetItem, QSplitter, QStackedLayout, QAbstractItemView, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy, QTreeView, QHeaderView
|
||||||
from PyQt5.QtGui import QPixmap
|
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 file_handler import FileHandler
|
||||||
from plot_screen import PlotScreen
|
from plot_screen import PlotScreen
|
||||||
@ -122,6 +122,7 @@ class FileView(QWidget):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class SplashScreen(QWidget):
|
class SplashScreen(QWidget):
|
||||||
|
keyPressed = pyqtSignal(int)
|
||||||
|
|
||||||
def __init__(self, parent=None) -> None:
|
def __init__(self, parent=None) -> None:
|
||||||
super().__init__(parent=parent)
|
super().__init__(parent=parent)
|
||||||
@ -148,13 +149,18 @@ class SplashScreen(QWidget):
|
|||||||
self._file_list = QListWidget(self)
|
self._file_list = QListWidget(self)
|
||||||
self._file_list.setSelectionMode(QAbstractItemView.SingleSelection)
|
self._file_list.setSelectionMode(QAbstractItemView.SingleSelection)
|
||||||
self._file_list.itemClicked.connect(self._on_file_clicked)
|
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)
|
l.addWidget(self._file_list)
|
||||||
frame.setLayout(l)
|
frame.setLayout(l)
|
||||||
layout.addWidget(frame, 3, 1)
|
layout.addWidget(frame, 3, 1)
|
||||||
self._file_map = {}
|
self._file_map = {}
|
||||||
self._read_recent_files()
|
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):
|
def _create_short_filename(self, original, index, max_len=40):
|
||||||
short = original
|
short = original
|
||||||
parts = original.split(os.sep)
|
parts = original.split(os.sep)
|
||||||
@ -188,6 +194,8 @@ class SplashScreen(QWidget):
|
|||||||
def _on_file_clicked(self, item):
|
def _on_file_clicked(self, item):
|
||||||
comm.communicator.open_recent.emit(self._file_map[item.text()])
|
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()
|
item = self._file_list.currentItem()
|
||||||
|
print(item)
|
||||||
|
if item is not None and key == Qt.Key_Return:
|
||||||
comm.communicator.open_recent.emit(self._file_map[item.text()])
|
comm.communicator.open_recent.emit(self._file_map[item.text()])
|
||||||
|
Loading…
Reference in New Issue
Block a user