[tasks] move task enum to taskwidget, fix wrong signal emission

This commit is contained in:
Jan Grewe 2025-01-31 16:48:19 +01:00
parent 98b665ec3c
commit 320a47976a
3 changed files with 21 additions and 44 deletions

View File

@ -1,20 +1,14 @@
import logging
import enum
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
from fixtracks.widgets.taskwidget import TasksWidget
from fixtracks.widgets.taskwidget import TasksWidget, Task
from fixtracks.widgets.converter import Json2PandasConverter
class Task(enum.Enum):
CONVERT = "Convert"
MERGE = "Merge"
TRACKS = "Tracks"
class CentralWidget(QWidget):
def __init__(self, darkmode, parent=None):
@ -72,19 +66,19 @@ class CentralWidget(QWidget):
def on_open(self):
self.layout().setCurrentIndex(self._btnindex)
def _select_task(self, s):
logging.debug("Centralwidget: Selected task: %s", s)
if s == Task.MERGE:
def _select_task(self, task):
logging.debug("Centralwidget: Selected task: %s", task.value)
if task == Task.MERGE:
self.layout().setCurrentIndex(self._mergeindex)
self._mergewidget.fileList = self._tw.fileList
elif s == Task.TRACKS:
elif task == Task.TRACKS:
self.layout().setCurrentIndex(self._trackindex)
self._trackwidget.fileList = self._tw.fileList
elif s == Task.CONVERT:
elif task == Task.CONVERT:
self.layout().setCurrentIndex(self._convertindex)
else:
self.layout().setCurrentIndex(self._tasksindex)
logging.warning("Centralwidget: got invalid task request: %s", s)
logging.warning("Centralwidget: got invalid task request: %s", task)
def _on_back(self):
self.layout().setCurrentIndex(self._tasksindex)

View File

@ -124,7 +124,7 @@ class DetectionView(QWidget):
"""Handle window resizing to fit the image."""
super().resizeEvent(event)
self.fit_image_to_view()
def on_itemSelection(self, selected_items):
self.signals.itemsSelected.emit(selected_items)

View File

@ -1,13 +1,19 @@
import enum
import logging
import pathlib
from PySide6.QtWidgets import QWidget, QPushButton, QFileDialog, QSizePolicy, QLabel, QVBoxLayout
from PySide6.QtWidgets import QWidget, QPushButton, QFileDialog, QSizePolicy, QVBoxLayout
from PySide6.QtCore import Signal, Qt
from PySide6.QtGui import QIcon, QAction
class Task(enum.Enum):
CONVERT = "Convert"
MERGE = "Merge"
TRACKS = "Tracks"
class TasksWidget(QWidget):
clicked = Signal((str,))
clicked = Signal((Task))
opened = Signal()
def __init__(self, darkmode, parent = None):
@ -63,34 +69,11 @@ class TasksWidget(QWidget):
openBtn.setMaximumSize(300, 300)
openBtn.setIconSize(0.95 * openBtn.size())
# convertBtn = buttonfromaction(self._convertAction)
# convertBtn.setEnabled(True)
# convertBtn.setFixedSize(250, 100)
# convertBtn.setIconSize(0.95 * convertBtn.size())
# mergeBtn = buttonfromaction(self._mergeAction)
# mergeBtn.setEnabled(False)
# mergeBtn.setFixedSize(250, 100)
# mergeBtn.setIconSize(0.95 * mergeBtn.size())
# tracksBtn = buttonfromaction(self._tracksAction)
# tracksBtn.setEnabled(False)
# tracksBtn.setFixedSize(250, 100)
# tracksBtn.setIconSize(0.95 * tracksBtn.size())
l = QVBoxLayout()
l.setAlignment(Qt.AlignmentFlag.AlignCenter)
# l.addWidget(QLabel("Open data folder"))
l.addWidget(openBtn, Qt.AlignmentFlag.AlignCenter)
# l.addWidget(openBtn, 0, 0, 3, 1, Qt.AlignmentFlag.AlignCenter)
# l.addWidget(convertBtn, 0, 1, 1, 1, Qt.AlignmentFlag.AlignCenter)
# l.addWidget(mergeBtn, 1, 1, 1, 1, Qt.AlignmentFlag.AlignCenter)
# l.addWidget(tracksBtn, 2, 1, 1, 1, Qt.AlignmentFlag.AlignCenter)
self.setLayout(l)
@property
def toolbarActions(self):
return self._toolbarActions
@ -100,13 +83,13 @@ class TasksWidget(QWidget):
return self._menuActions
def _merge_clicked(self):
self.clicked.emit("Merge")
self.clicked.emit(Task.MERGE)
def _tracks_clicked(self):
self.clicked.emit("Tracks")
self.clicked.emit(Task.TRACKS)
def _convert_clicked(self):
self.clicked.emit("Convert")
self.clicked.emit(Task.CONVERT)
def _on_open(self):
logging.debug("TasksWidget:select data folder")