Feature: Aktions-Menü mit Batch-Transformationen und UI-Bereinigung

- Neues Aktions-Menü mit Transformations- und Datenbankfunktionen
- Menü wird beim Projekt-Laden automatisch aktiviert
- Neue Aktion: Alle XML-Dateien transformieren (inkrementell)
- Neue Aktion: Alle XML-Dateien neu transformieren (force)
- Neue Aktion: Aus Datenbank laden (ersetzt Button)
- Entfernte obsolete Buttons (pushButton, pushButton_2, pB_lade_aus_fn2)
- UI-Bereinigung: Button-Frame unterhalb TreeWidget entfernt
- Batch-Transformationen sammeln rekursiv alle XML/XSL-Paare
- Bestätigungsdialoge mit Job-Anzahl und Warnungen
- Deutsche Log-Meldungen und Fehlertexte
This commit is contained in:
2026-01-25 15:23:32 +01:00
parent 2858d46ef1
commit 3bdc0a0daa
4 changed files with 206 additions and 126 deletions
+29 -43
View File
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'MainWinddow.ui'
##
## Created by: Qt User Interface Compiler version 6.9.2
## Created by: Qt User Interface Compiler version 6.10.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -42,6 +42,18 @@ class Ui_MainWindow(object):
self.actionVorhandene_Projekte = QAction(MainWindow)
self.actionVorhandene_Projekte.setObjectName(u"actionVorhandene_Projekte")
self.actionVorhandene_Projekte.setEnabled(False)
icon3 = QIcon(QIcon.fromTheme(u"folder-open"))
self.actionVorhandene_Projekte.setIcon(icon3)
self.actionAlle_XML_Dateien_transformieren = QAction(MainWindow)
self.actionAlle_XML_Dateien_transformieren.setObjectName(u"actionAlle_XML_Dateien_transformieren")
self.actionAlle_XML_Dateien_neu_transformieren_force = QAction(MainWindow)
self.actionAlle_XML_Dateien_neu_transformieren_force.setObjectName(u"actionAlle_XML_Dateien_neu_transformieren_force")
icon4 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ViewRefresh))
self.actionAlle_XML_Dateien_neu_transformieren_force.setIcon(icon4)
self.actionFN2 = QAction(MainWindow)
self.actionFN2.setObjectName(u"actionFN2")
self.actionAus_Datenbank_laden = QAction(MainWindow)
self.actionAus_Datenbank_laden.setObjectName(u"actionAus_Datenbank_laden")
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.horizontalLayout = QHBoxLayout(self.centralwidget)
@@ -83,42 +95,6 @@ class Ui_MainWindow(object):
self.verticalLayout.addWidget(self.treeWidget)
self.frame_2 = QFrame(self.frame)
self.frame_2.setObjectName(u"frame_2")
self.frame_2.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_2 = QHBoxLayout(self.frame_2)
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.pushButton = QPushButton(self.frame_2)
self.pushButton.setObjectName(u"pushButton")
self.pushButton.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
icon3 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart))
self.pushButton.setIcon(icon3)
self.horizontalLayout_2.addWidget(self.pushButton)
self.pushButton_2 = QPushButton(self.frame_2)
self.pushButton_2.setObjectName(u"pushButton_2")
self.pushButton_2.setAutoFillBackground(False)
icon4 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.MediaSeekForward))
self.pushButton_2.setIcon(icon4)
self.horizontalLayout_2.addWidget(self.pushButton_2)
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_2.addItem(self.horizontalSpacer)
self.pB_lade_aus_fn2 = QPushButton(self.frame_2)
self.pB_lade_aus_fn2.setObjectName(u"pB_lade_aus_fn2")
icon5 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.GoDown))
self.pB_lade_aus_fn2.setIcon(icon5)
self.horizontalLayout_2.addWidget(self.pB_lade_aus_fn2)
self.verticalLayout.addWidget(self.frame_2)
self.splitter.addWidget(self.frame)
self.scrollArea = QScrollArea(self.splitter)
self.scrollArea.setObjectName(u"scrollArea")
@@ -132,7 +108,7 @@ class Ui_MainWindow(object):
self.scrollArea.setWidgetResizable(True)
self.scrollAreaWidgetContents = QWidget()
self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 68, 728))
self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 54, 716))
self.verticalLayout_2 = QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.label = QLabel(self.scrollAreaWidgetContents)
@@ -234,7 +210,7 @@ class Ui_MainWindow(object):
self.scrollArea_2.setWidgetResizable(True)
self.scrollAreaWidgetContents_2 = QWidget()
self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2")
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 726, 697))
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 881, 684))
self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
@@ -249,17 +225,21 @@ class Ui_MainWindow(object):
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 1263, 22))
self.menubar.setGeometry(QRect(0, 0, 1263, 33))
self.menuProjekt = QMenu(self.menubar)
self.menuProjekt.setObjectName(u"menuProjekt")
self.menuThema = QMenu(self.menubar)
self.menuThema.setObjectName(u"menuThema")
self.menuAktion = QMenu(self.menubar)
self.menuAktion.setObjectName(u"menuAktion")
self.menuAktion.setEnabled(False)
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuProjekt.menuAction())
self.menubar.addAction(self.menuAktion.menuAction())
self.menubar.addAction(self.menuThema.menuAction())
self.menuProjekt.addAction(self.actionNeu)
self.menuProjekt.addSeparator()
@@ -268,6 +248,10 @@ class Ui_MainWindow(object):
self.menuProjekt.addAction(self.actionEinstellungen)
self.menuProjekt.addSeparator()
self.menuProjekt.addAction(self.actionBeenden)
self.menuAktion.addAction(self.actionAlle_XML_Dateien_transformieren)
self.menuAktion.addAction(self.actionAlle_XML_Dateien_neu_transformieren_force)
self.menuAktion.addSeparator()
self.menuAktion.addAction(self.actionAus_Datenbank_laden)
self.retranslateUi(MainWindow)
self.actionBeenden.triggered.connect(MainWindow.close)
@@ -287,9 +271,10 @@ class Ui_MainWindow(object):
self.actionEinstellungen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+S", None))
#endif // QT_CONFIG(shortcut)
self.actionVorhandene_Projekte.setText(QCoreApplication.translate("MainWindow", u"Vorhandene Projekte", None))
self.pushButton.setText(QCoreApplication.translate("MainWindow", u"nur ge\u00e4nderte generieren", None))
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Alle generieren", None))
self.pB_lade_aus_fn2.setText(QCoreApplication.translate("MainWindow", u"lade aus FN2", None))
self.actionAlle_XML_Dateien_transformieren.setText(QCoreApplication.translate("MainWindow", u"Alle XML-Dateien transformieren", None))
self.actionAlle_XML_Dateien_neu_transformieren_force.setText(QCoreApplication.translate("MainWindow", u"Alle XML-Dateien neu transformieren (force)", None))
self.actionFN2.setText(QCoreApplication.translate("MainWindow", u"FN2", None))
self.actionAus_Datenbank_laden.setText(QCoreApplication.translate("MainWindow", u"Aus Datenbank laden", None))
self.label.setText("")
self.label_2.setText("")
self.view_ref_pdf.setText(QCoreApplication.translate("MainWindow", u"Vorher (Referenz)", None))
@@ -304,5 +289,6 @@ class Ui_MainWindow(object):
self.accept_changes.setText(QCoreApplication.translate("MainWindow", u"\u2705 \u00c4nderungen \u00fcbernehmen", None))
self.menuProjekt.setTitle(QCoreApplication.translate("MainWindow", u"Projekt", None))
self.menuThema.setTitle(QCoreApplication.translate("MainWindow", u"Thema", None))
self.menuAktion.setTitle(QCoreApplication.translate("MainWindow", u"Aktion", None))
# retranslateUi