fixtracks/fixtracks/taskwidget.py

54 lines
1.7 KiB
Python

import logging
import pathlib
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QFileDialog
from PyQt6.QtCore import pyqtSignal
class TasksWidget(QWidget):
clicked = pyqtSignal((str,))
def __init__(self, parent = None):
super().__init__(parent)
l = QVBoxLayout()
l.addWidget(QLabel("Tasks:"))
folderBtn = QPushButton("Select data folder")
folderBtn.setEnabled(True)
folderBtn.clicked.connect(self._open_folder)
l.addWidget(folderBtn)
self.mergeBtn = QPushButton("Merge detections")
self.mergeBtn.setEnabled(False)
self.mergeBtn.clicked.connect(self._merge_clicked)
self.tracksBtn = QPushButton("Join tracks")
self.tracksBtn.setEnabled(False)
self.tracksBtn.clicked.connect(self._tracks_clicked)
l.addWidget(self.mergeBtn)
l.addWidget(self.tracksBtn)
self.setLayout(l)
self._file_list = []
def _merge_clicked(self):
self.clicked.emit("Merge")
def _tracks_clicked(self):
self.clicked.emit("Tracks")
def _open_folder(self):
logging.debug("TasksWidget:select data folder")
folder = QFileDialog.getExistingDirectory()
if len(folder.strip()) == 0:
logging.debug("TasksWidget: is EMPTY")
return
p = pathlib.Path(folder)
logging.debug("TasksWidget: selected path is %s", p)
for d in p.iterdir():
if d.is_file():
self._file_list.append(d)
if len(self._file_list) > 0:
self.mergeBtn.setEnabled(True)
self.tracksBtn.setEnabled(True)
@property
def fileList(self):
return self._file_list