Source code for mantidimaging.gui.widgets.dataset_selector_dialog.dataset_selector_dialog

# Copyright (C) 2024 ISIS Rutherford Appleton Laboratory UKRI
# SPDX - License - Identifier: GPL-3.0-or-later
from __future__ import annotations
import uuid
from typing import TYPE_CHECKING

from PyQt5.QtWidgets import QDialog, QVBoxLayout, QLabel, QHBoxLayout, QPushButton

from mantidimaging.core.data.dataset import StrictDataset
from mantidimaging.gui.mvp_base import BaseDialogView
from mantidimaging.gui.widgets.dataset_selector.view import DatasetSelectorWidgetView

if TYPE_CHECKING:
    from mantidimaging.gui.windows.main.view import MainWindowView  # pragma: no cover


[docs] class DatasetSelectorDialog(BaseDialogView): def __init__(self, main_window: MainWindowView | None, title: str | None = None, message: str | None = None, show_stacks: bool = False): super().__init__(main_window) self.selected_id: uuid.UUID | None = None self.setModal(True) self.setMinimumWidth(300) if title is not None: self.setWindowTitle(title) self.vertical_layout = QVBoxLayout(self) if message is None: self.message_label = QLabel("Select the dataset") else: self.message_label = QLabel(message) self.vertical_layout.addWidget(self.message_label) # Dataset selector self.dataset_selector_widget = DatasetSelectorWidgetView(self, relevant_dataset_types=StrictDataset, show_stacks=show_stacks) self.dataset_selector_widget.subscribe_to_main_window(main_window) # type: ignore self.vertical_layout.addWidget(self.dataset_selector_widget) # Button layout self.button_layout = QHBoxLayout() self.button_layout.addStretch() self.ok_button = QPushButton("Select") self.ok_button.clicked.connect(self.on_ok_clicked) self.button_layout.addWidget(self.ok_button) self.vertical_layout.addLayout(self.button_layout)
[docs] def on_ok_clicked(self): self.selected_id = self.dataset_selector_widget.current() self.done(QDialog.DialogCode.Accepted)