from PySide6.QtWidgets import QDialog, QFileDialog
from pathlib import Path

from ui.XslDirConfigDialog_ui import Ui_XslDirConfigDialog


class XslDirConfigDialog(QDialog):
    """Dialog zur Konfiguration von XSL-Verzeichnis ohne ID."""

    def __init__(self, parent=None):
        super().__init__(parent)

        # UI einrichten
        self.ui = Ui_XslDirConfigDialog()
        self.ui.setupUi(self)

        # Signale verbinden
        self.ui.browseButton.clicked.connect(self.browse_directory)

    def browse_directory(self):
        """Öffnet einen Verzeichnisdialog."""
        dir_path = QFileDialog.getExistingDirectory(self, "XSL Root-Verzeichnis auswählen")
        if dir_path:
            self.ui.pathEdit.setText(dir_path)

    def set_data(self, data):
        """Setzt die Daten in den Dialog."""
        if data:
            self.ui.nameEdit.setText(data.get("name", ""))
            self.ui.pathEdit.setText(str(data.get("path_to_root_dir", "")))

    def get_data(self):
        """Gibt die eingegebenen Daten zurück."""
        if not self.ui.nameEdit.text().strip() or not self.ui.pathEdit.text().strip():
            return None

        return {"name": self.ui.nameEdit.text().strip(), "path_to_root_dir": Path(self.ui.pathEdit.text().strip())}
