[shortcuts] add keyboard shortcuts
This commit is contained in:
parent
216be7b1e5
commit
344b919f0f
@ -1,6 +1,7 @@
|
||||
import logging
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy
|
||||
from PySide6.QtCore import Qt
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QPushButton
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
from PySide6.QtGui import QIcon
|
||||
|
||||
from fixtracks.widgets.tracks import FixTracks
|
||||
from fixtracks.widgets.detectionmerge import MergeDetections
|
||||
@ -15,6 +16,7 @@ class CentralWidget(QWidget):
|
||||
|
||||
self._tw = TasksWidget(darkmode)
|
||||
self._tw.clicked.connect(self._select_task)
|
||||
self._tw.opened.connect(self.on_open)
|
||||
|
||||
self._mergewidget = MergeDetections(self)
|
||||
self._mergewidget.back.connect(self._on_back)
|
||||
@ -25,14 +27,40 @@ class CentralWidget(QWidget):
|
||||
self._trackwidget = FixTracks(self)
|
||||
self._trackwidget.back.connect(self._on_back)
|
||||
|
||||
convert = "convert"
|
||||
convertBtn = QPushButton(QIcon(":/icons/convert_light"), "Convert")
|
||||
convertBtn.setIconSize(QSize(128, 128))
|
||||
convertBtn.clicked.connect(lambda: self._select_task(convert))
|
||||
|
||||
merge = "merge"
|
||||
mergeBtn = QPushButton(QIcon(":/icons/merge_light"), "Merge")
|
||||
mergeBtn.setIconSize(QSize(128, 128))
|
||||
mergeBtn.clicked.connect(lambda: self._select_task(merge))
|
||||
|
||||
track = "track"
|
||||
trackBtn = QPushButton(QIcon(":/icons/tracks_light"), "Track")
|
||||
trackBtn.setIconSize(QSize(128, 128))
|
||||
trackBtn.clicked.connect(lambda: self._select_task(track))
|
||||
|
||||
btnlyt = QHBoxLayout()
|
||||
btnlyt.addWidget(convertBtn, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
btnlyt.addWidget(mergeBtn, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
btnlyt.addWidget(trackBtn, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
taskgrid = QWidget()
|
||||
taskgrid.setLayout(btnlyt)
|
||||
|
||||
layout = QStackedLayout()
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self._tasksindex = layout.addWidget(self._tw)
|
||||
self._btnindex = layout.addWidget(taskgrid)
|
||||
self._convertindex = layout.addWidget(self._convertwidget)
|
||||
self._mergeindex = layout.addWidget(self._mergewidget)
|
||||
self._trackindex = layout.addWidget(self._trackwidget)
|
||||
self.setLayout(layout)
|
||||
|
||||
def on_open(self):
|
||||
self.layout().setCurrentIndex(self._btnindex)
|
||||
|
||||
def _select_task(self, s):
|
||||
logging.debug("Centralwidget: Selected task: %s", s)
|
||||
if "merge" in s.lower():
|
||||
|
@ -8,6 +8,7 @@ from PySide6.QtGui import QIcon, QAction
|
||||
|
||||
class TasksWidget(QWidget):
|
||||
clicked = Signal((str,))
|
||||
opened = Signal()
|
||||
|
||||
def __init__(self, darkmode, parent = None):
|
||||
super().__init__(parent)
|
||||
@ -22,22 +23,26 @@ class TasksWidget(QWidget):
|
||||
def createActions(self):
|
||||
self._openAction = QAction(QIcon(":icons/open" + self._iconsuffix), "Open folder")
|
||||
self._openAction.setToolTip("Open data folder")
|
||||
self._openAction.setShortcut("Ctrl+O")
|
||||
self._openAction.triggered.connect(self._on_open)
|
||||
self._openAction.setEnabled(True)
|
||||
|
||||
self._convertAction = QAction(QIcon(":/icons/convert" + self._iconsuffix), "Convert")
|
||||
self._convertAction.setEnabled(True)
|
||||
self._convertAction.setShortcut("F2")
|
||||
self._convertAction.setToolTip("Convert JSON pose files to to Pandas data frames")
|
||||
self._convertAction.triggered.connect(self._convert_clicked)
|
||||
|
||||
self._mergeAction = QAction(QIcon(":/icons/merge" + self._iconsuffix), "Merge")
|
||||
self._mergeAction.setToolTip("Merge detections from two cameras to the same dataset")
|
||||
self._mergeAction.setShortcut("F3")
|
||||
self._mergeAction.setEnabled(False)
|
||||
self._mergeAction.triggered.connect(self._merge_clicked)
|
||||
|
||||
self._tracksAction = QAction(QIcon(":/icons/tracks" + self._iconsuffix), "Tracks")
|
||||
self._tracksAction.setToolTip("Merge detections from two cameras to the same dataset")
|
||||
self._tracksAction.setEnabled(False)
|
||||
self._tracksAction.setShortcut("F4")
|
||||
self._tracksAction.triggered.connect(self._tracks_clicked)
|
||||
|
||||
self._menuActions["File"] = [self._openAction]
|
||||
@ -117,6 +122,7 @@ class TasksWidget(QWidget):
|
||||
if len(self._file_list) > 0:
|
||||
self._mergeAction.setEnabled(True)
|
||||
self._tracksAction.setEnabled(True)
|
||||
self.opened.emit()
|
||||
|
||||
@property
|
||||
def fileList(self):
|
||||
|
Loading…
Reference in New Issue
Block a user