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