UI-Dateien für "kleine" Dialoge erstellt

This commit is contained in:
2025-06-13 21:05:26 +02:00
parent 96fa6cb8aa
commit 6779b96b83
11 changed files with 1121 additions and 185 deletions
+55 -185
View File
@@ -1,9 +1,14 @@
from PySide6.QtWidgets import QDialog, QTableWidgetItem, QMessageBox, QLineEdit, QPushButton, QFileDialog, QTextEdit, QVBoxLayout, QHBoxLayout, QFormLayout, QDialogButtonBox
from PySide6.QtWidgets import QDialog, QTableWidgetItem, QMessageBox, QFileDialog
from PySide6.QtCore import Qt
from pathlib import Path
from typing import Optional
from ui.AppSettings_ui import Ui_Dialog
from ui.JavaVmConfigDialog_ui import Ui_JavaVmConfigDialog
from ui.DiffPdfConfigDialog_ui import Ui_DiffPdfConfigDialog
from ui.SaxonJarConfigDialog_ui import Ui_SaxonJarConfigDialog
from ui.ApacheFopConfigDialog_ui import Ui_ApacheFopConfigDialog
from ui.XslDirConfigDialog_ui import Ui_XslDirConfigDialog
from conf import AppSettings, JavaVm, DiffPdf, SaxonJar, ApacheFop, XslDir
@@ -13,36 +18,13 @@ class JavaVmConfigDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Java VM Konfiguration")
self.setModal(True)
self.resize(500, 200)
# Layout erstellen
layout = QVBoxLayout()
form_layout = QFormLayout()
# UI einrichten
self.ui = Ui_JavaVmConfigDialog()
self.ui.setupUi(self)
# Version Eingabefeld
self.version_edit = QLineEdit()
form_layout.addRow("Version:", self.version_edit)
# Pfad zur Binary-Datei
path_layout = QHBoxLayout()
self.path_edit = QLineEdit()
self.browse_button = QPushButton("Durchsuchen...")
self.browse_button.clicked.connect(self.browse_binary_file)
path_layout.addWidget(self.path_edit)
path_layout.addWidget(self.browse_button)
form_layout.addRow("Pfad zur Binary-Datei:", path_layout)
layout.addLayout(form_layout)
# Dialog-Buttons
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
# Signale verbinden
self.ui.browseButton.clicked.connect(self.browse_binary_file)
def browse_binary_file(self):
"""Öffnet einen Dateidialog für die Binary-Datei."""
@@ -51,16 +33,16 @@ class JavaVmConfigDialog(QDialog):
"Executable Files (*.exe);;All Files (*)"
)
if file_path:
self.path_edit.setText(file_path)
self.ui.pathEdit.setText(file_path)
def get_data(self):
"""Gibt die eingegebenen Daten zurück."""
if not self.version_edit.text().strip() or not self.path_edit.text().strip():
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
return None
return {
'version': self.version_edit.text().strip(),
'path_to_binary_file': Path(self.path_edit.text().strip())
'version': self.ui.versionEdit.text().strip(),
'path_to_binary_file': Path(self.ui.pathEdit.text().strip())
}
@@ -69,46 +51,13 @@ class DiffPdfConfigDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("DiffPdf Konfiguration")
self.setModal(True)
self.resize(500, 300)
# Layout erstellen
layout = QVBoxLayout()
form_layout = QFormLayout()
# UI einrichten
self.ui = Ui_DiffPdfConfigDialog()
self.ui.setupUi(self)
# Version Eingabefeld
self.version_edit = QLineEdit()
form_layout.addRow("Version:", self.version_edit)
# Pfad zur Binary-Datei
path_layout = QHBoxLayout()
self.path_edit = QLineEdit()
self.browse_button = QPushButton("Durchsuchen...")
self.browse_button.clicked.connect(self.browse_binary_file)
path_layout.addWidget(self.path_edit)
path_layout.addWidget(self.browse_button)
form_layout.addRow("Pfad zur Binary-Datei:", path_layout)
# Standard-Parameter (als mehrzeiliger Text)
self.params_edit = QTextEdit()
self.params_edit.setMaximumHeight(80)
form_layout.addRow("Standard-Parameter\n(ein Parameter pro Zeile):", self.params_edit)
# Output-Dateierweiterung
self.extension_edit = QLineEdit()
self.extension_edit.setText("pdf")
form_layout.addRow("Output-Dateierweiterung:", self.extension_edit)
layout.addLayout(form_layout)
# Dialog-Buttons
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
# Signale verbinden
self.ui.browseButton.clicked.connect(self.browse_binary_file)
def browse_binary_file(self):
"""Öffnet einen Dateidialog für die Binary-Datei."""
@@ -117,22 +66,22 @@ class DiffPdfConfigDialog(QDialog):
"Executable Files (*.exe);;All Files (*)"
)
if file_path:
self.path_edit.setText(file_path)
self.ui.pathEdit.setText(file_path)
def get_data(self):
"""Gibt die eingegebenen Daten zurück."""
if not self.version_edit.text().strip() or not self.path_edit.text().strip():
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
return None
# Parameter aus dem Text extrahieren
params_text = self.params_edit.toPlainText().strip()
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.version_edit.text().strip(),
'path_to_binary_file': Path(self.path_edit.text().strip()),
'version': self.ui.versionEdit.text().strip(),
'path_to_binary_file': Path(self.ui.pathEdit.text().strip()),
'default_params': params,
'output_file_extension': self.extension_edit.text().strip() or "pdf"
'output_file_extension': self.ui.extensionEdit.text().strip() or "pdf"
}
@@ -141,41 +90,13 @@ class SaxonJarConfigDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Saxon JAR Konfiguration")
self.setModal(True)
self.resize(500, 200)
# Layout erstellen
layout = QVBoxLayout()
form_layout = QFormLayout()
# UI einrichten
self.ui = Ui_SaxonJarConfigDialog()
self.ui.setupUi(self)
# Version Eingabefeld
self.version_edit = QLineEdit()
form_layout.addRow("Version:", self.version_edit)
# Pfad zur JAR-Datei
path_layout = QHBoxLayout()
self.path_edit = QLineEdit()
self.browse_button = QPushButton("Durchsuchen...")
self.browse_button.clicked.connect(self.browse_jar_file)
path_layout.addWidget(self.path_edit)
path_layout.addWidget(self.browse_button)
form_layout.addRow("Pfad zur JAR-Datei:", path_layout)
# Output-Dateierweiterung
self.extension_edit = QLineEdit()
self.extension_edit.setText("fo")
form_layout.addRow("Output-Dateierweiterung:", self.extension_edit)
layout.addLayout(form_layout)
# Dialog-Buttons
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
# Signale verbinden
self.ui.browseButton.clicked.connect(self.browse_jar_file)
def browse_jar_file(self):
"""Öffnet einen Dateidialog für die JAR-Datei."""
@@ -184,17 +105,17 @@ class SaxonJarConfigDialog(QDialog):
"JAR Files (*.jar);;All Files (*)"
)
if file_path:
self.path_edit.setText(file_path)
self.ui.pathEdit.setText(file_path)
def get_data(self):
"""Gibt die eingegebenen Daten zurück."""
if not self.version_edit.text().strip() or not self.path_edit.text().strip():
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
return None
return {
'version': self.version_edit.text().strip(),
'path_to_jar_file': Path(self.path_edit.text().strip()),
'output_file_extension': self.extension_edit.text().strip() or "fo"
'version': self.ui.versionEdit.text().strip(),
'path_to_jar_file': Path(self.ui.pathEdit.text().strip()),
'output_file_extension': self.ui.extensionEdit.text().strip() or "fo"
}
@@ -203,41 +124,13 @@ class ApacheFopConfigDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Apache FOP Konfiguration")
self.setModal(True)
self.resize(500, 200)
# Layout erstellen
layout = QVBoxLayout()
form_layout = QFormLayout()
# UI einrichten
self.ui = Ui_ApacheFopConfigDialog()
self.ui.setupUi(self)
# Version Eingabefeld
self.version_edit = QLineEdit()
form_layout.addRow("Version:", self.version_edit)
# Pfad zum Verzeichnis
path_layout = QHBoxLayout()
self.path_edit = QLineEdit()
self.browse_button = QPushButton("Durchsuchen...")
self.browse_button.clicked.connect(self.browse_directory)
path_layout.addWidget(self.path_edit)
path_layout.addWidget(self.browse_button)
form_layout.addRow("Pfad zum FOP-Verzeichnis:", path_layout)
# Output-Dateierweiterung
self.extension_edit = QLineEdit()
self.extension_edit.setText("pdf")
form_layout.addRow("Output-Dateierweiterung:", self.extension_edit)
layout.addLayout(form_layout)
# Dialog-Buttons
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
# Signale verbinden
self.ui.browseButton.clicked.connect(self.browse_directory)
def browse_directory(self):
"""Öffnet einen Verzeichnisdialog."""
@@ -245,17 +138,17 @@ class ApacheFopConfigDialog(QDialog):
self, "Apache FOP Verzeichnis auswählen"
)
if dir_path:
self.path_edit.setText(dir_path)
self.ui.pathEdit.setText(dir_path)
def get_data(self):
"""Gibt die eingegebenen Daten zurück."""
if not self.version_edit.text().strip() or not self.path_edit.text().strip():
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
return None
return {
'version': self.version_edit.text().strip(),
'path_to_dir': Path(self.path_edit.text().strip()),
'output_file_extension': self.extension_edit.text().strip() or "pdf"
'version': self.ui.versionEdit.text().strip(),
'path_to_dir': Path(self.ui.pathEdit.text().strip()),
'output_file_extension': self.ui.extensionEdit.text().strip() or "pdf"
}
@@ -264,36 +157,13 @@ class XslDirConfigDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("XSL-Verzeichnis Konfiguration")
self.setModal(True)
self.resize(500, 150)
# Layout erstellen
layout = QVBoxLayout()
form_layout = QFormLayout()
# UI einrichten
self.ui = Ui_XslDirConfigDialog()
self.ui.setupUi(self)
# Name Eingabefeld
self.name_edit = QLineEdit()
form_layout.addRow("Name:", self.name_edit)
# Pfad zum Root-Verzeichnis
path_layout = QHBoxLayout()
self.path_edit = QLineEdit()
self.browse_button = QPushButton("Durchsuchen...")
self.browse_button.clicked.connect(self.browse_directory)
path_layout.addWidget(self.path_edit)
path_layout.addWidget(self.browse_button)
form_layout.addRow("Pfad zum Root-Verzeichnis:", path_layout)
layout.addLayout(form_layout)
# Dialog-Buttons
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
# Signale verbinden
self.ui.browseButton.clicked.connect(self.browse_directory)
def browse_directory(self):
"""Öffnet einen Verzeichnisdialog."""
@@ -301,16 +171,16 @@ class XslDirConfigDialog(QDialog):
self, "XSL Root-Verzeichnis auswählen"
)
if dir_path:
self.path_edit.setText(dir_path)
self.ui.pathEdit.setText(dir_path)
def get_data(self):
"""Gibt die eingegebenen Daten zurück."""
if not self.name_edit.text().strip() or not self.path_edit.text().strip():
if not self.ui.nameEdit.text().strip() or not self.ui.pathEdit.text().strip():
return None
return {
'name': self.name_edit.text().strip(),
'path_to_root_dir': Path(self.path_edit.text().strip())
'name': self.ui.nameEdit.text().strip(),
'path_to_root_dir': Path(self.ui.pathEdit.text().strip())
}