from PySide6.QtWidgets import QDialog, QFileDialog from pathlib import Path from ui.DiffPdfConfigDialog_ui import Ui_DiffPdfConfigDialog class DiffPdfConfigDialog(QDialog): """Dialog zur Konfiguration von DiffPdf ohne ID.""" def __init__(self, parent=None): super().__init__(parent) # UI einrichten self.ui = Ui_DiffPdfConfigDialog() self.ui.setupUi(self) # Signale verbinden self.ui.browseButton.clicked.connect(self.browse_binary_file) def browse_binary_file(self): """Öffnet einen Dateidialog für die Binary-Datei.""" file_path, _ = QFileDialog.getOpenFileName( self, "DiffPdf Binary-Datei auswählen", "", "Executable Files (*.exe);;All Files (*)" ) if file_path: self.ui.pathEdit.setText(file_path) def set_data(self, data): """Setzt die Daten in den Dialog.""" if data: self.ui.versionEdit.setText(data.get("version", "")) self.ui.pathEdit.setText(str(data.get("path_to_binary_file", ""))) self.ui.paramsEdit.setPlainText("\n".join(data.get("default_params", []))) self.ui.extensionEdit.setText(data.get("output_file_extension", "pdf")) def get_data(self): """Gibt die eingegebenen Daten zurück.""" if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip(): return None # Parameter aus dem Text extrahieren params_text = self.ui.paramsEdit.toPlainText().strip() params = [line.strip() for line in params_text.split("\n") if line.strip()] if params_text else [] return { "version": self.ui.versionEdit.text().strip(), "path_to_binary_file": Path(self.ui.pathEdit.text().strip()), "default_params": params, "output_file_extension": self.ui.extensionEdit.text().strip() or "pdf", }