54 lines
1.7 KiB
Python
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
|