Neue Menü mit eingerichteten Projekten
This commit is contained in:
+25
-3
@@ -159,7 +159,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="frame_3">
|
<widget class="QFrame" name="frame_3">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Shape::StyledPanel</enum>
|
<enum>QFrame::Shape::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Shadow::Raised</enum>
|
<enum>QFrame::Shadow::Raised</enum>
|
||||||
@@ -174,6 +174,18 @@
|
|||||||
<enum>QFrame::Shadow::Raised</enum>
|
<enum>QFrame::Shadow::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_4">
|
<spacer name="horizontalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -276,8 +288,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>792</width>
|
<width>794</width>
|
||||||
<height>781</height>
|
<height>801</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
@@ -320,6 +332,8 @@
|
|||||||
<addaction name="actionNeu"/>
|
<addaction name="actionNeu"/>
|
||||||
<addaction name="action_ffnen"/>
|
<addaction name="action_ffnen"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionVorhandene_Projekte"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
<addaction name="actionEinstellungen"/>
|
<addaction name="actionEinstellungen"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionBeenden"/>
|
<addaction name="actionBeenden"/>
|
||||||
@@ -374,6 +388,14 @@
|
|||||||
<string>Ctrl+S</string>
|
<string>Ctrl+S</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionVorhandene_Projekte">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Vorhandene Projekte</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections>
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ class Ui_MainWindow(object):
|
|||||||
self.actionEinstellungen.setObjectName(u"actionEinstellungen")
|
self.actionEinstellungen.setObjectName(u"actionEinstellungen")
|
||||||
icon3 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties))
|
icon3 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties))
|
||||||
self.actionEinstellungen.setIcon(icon3)
|
self.actionEinstellungen.setIcon(icon3)
|
||||||
|
self.actionVorhandene_Projekte = QAction(MainWindow)
|
||||||
|
self.actionVorhandene_Projekte.setObjectName(u"actionVorhandene_Projekte")
|
||||||
|
self.actionVorhandene_Projekte.setEnabled(False)
|
||||||
self.centralwidget = QWidget(MainWindow)
|
self.centralwidget = QWidget(MainWindow)
|
||||||
self.centralwidget.setObjectName(u"centralwidget")
|
self.centralwidget.setObjectName(u"centralwidget")
|
||||||
self.horizontalLayout = QHBoxLayout(self.centralwidget)
|
self.horizontalLayout = QHBoxLayout(self.centralwidget)
|
||||||
@@ -137,7 +140,7 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.frame_3 = QFrame(self.centralwidget)
|
self.frame_3 = QFrame(self.centralwidget)
|
||||||
self.frame_3.setObjectName(u"frame_3")
|
self.frame_3.setObjectName(u"frame_3")
|
||||||
self.frame_3.setFrameShape(QFrame.Shape.StyledPanel)
|
self.frame_3.setFrameShape(QFrame.Shape.NoFrame)
|
||||||
self.frame_3.setFrameShadow(QFrame.Shadow.Raised)
|
self.frame_3.setFrameShadow(QFrame.Shadow.Raised)
|
||||||
self.verticalLayout_4 = QVBoxLayout(self.frame_3)
|
self.verticalLayout_4 = QVBoxLayout(self.frame_3)
|
||||||
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
||||||
@@ -147,6 +150,7 @@ class Ui_MainWindow(object):
|
|||||||
self.frame_4.setFrameShadow(QFrame.Shadow.Raised)
|
self.frame_4.setFrameShadow(QFrame.Shadow.Raised)
|
||||||
self.horizontalLayout_3 = QHBoxLayout(self.frame_4)
|
self.horizontalLayout_3 = QHBoxLayout(self.frame_4)
|
||||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||||
|
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||||
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
self.horizontalLayout_3.addItem(self.horizontalSpacer_4)
|
self.horizontalLayout_3.addItem(self.horizontalSpacer_4)
|
||||||
@@ -199,7 +203,7 @@ class Ui_MainWindow(object):
|
|||||||
self.scrollArea_2.setWidgetResizable(True)
|
self.scrollArea_2.setWidgetResizable(True)
|
||||||
self.scrollAreaWidgetContents_2 = QWidget()
|
self.scrollAreaWidgetContents_2 = QWidget()
|
||||||
self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2")
|
self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2")
|
||||||
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 792, 781))
|
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 794, 801))
|
||||||
self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents_2)
|
self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents_2)
|
||||||
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
||||||
self.label_3 = QLabel(self.scrollAreaWidgetContents_2)
|
self.label_3 = QLabel(self.scrollAreaWidgetContents_2)
|
||||||
@@ -237,6 +241,8 @@ class Ui_MainWindow(object):
|
|||||||
self.menuProjekt.addAction(self.actionNeu)
|
self.menuProjekt.addAction(self.actionNeu)
|
||||||
self.menuProjekt.addAction(self.action_ffnen)
|
self.menuProjekt.addAction(self.action_ffnen)
|
||||||
self.menuProjekt.addSeparator()
|
self.menuProjekt.addSeparator()
|
||||||
|
self.menuProjekt.addAction(self.actionVorhandene_Projekte)
|
||||||
|
self.menuProjekt.addSeparator()
|
||||||
self.menuProjekt.addAction(self.actionEinstellungen)
|
self.menuProjekt.addAction(self.actionEinstellungen)
|
||||||
self.menuProjekt.addSeparator()
|
self.menuProjekt.addSeparator()
|
||||||
self.menuProjekt.addAction(self.actionBeenden)
|
self.menuProjekt.addAction(self.actionBeenden)
|
||||||
@@ -262,6 +268,7 @@ class Ui_MainWindow(object):
|
|||||||
#if QT_CONFIG(shortcut)
|
#if QT_CONFIG(shortcut)
|
||||||
self.actionEinstellungen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+S", None))
|
self.actionEinstellungen.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+S", None))
|
||||||
#endif // QT_CONFIG(shortcut)
|
#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.setText(QCoreApplication.translate("MainWindow", u"nur ge\u00e4nderte generieren", None))
|
||||||
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Alle generieren", None))
|
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Alle generieren", None))
|
||||||
self.label.setText("")
|
self.label.setText("")
|
||||||
|
|||||||
+61
-3
@@ -3,10 +3,9 @@ import os
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from PySide6.QtCore import Qt, QSize
|
from PySide6.QtCore import Qt, QSize
|
||||||
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter, QAction
|
from PySide6.QtGui import QCursor, QPixmap, QPainter, QAction
|
||||||
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory
|
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory, QMenu
|
||||||
from PySide6.QtPdf import QPdfDocument
|
from PySide6.QtPdf import QPdfDocument
|
||||||
from PySide6.QtPdfWidgets import QPdfView
|
|
||||||
|
|
||||||
from ui.MainWinddow_ui import Ui_MainWindow
|
from ui.MainWinddow_ui import Ui_MainWindow
|
||||||
from ui.AppSettings import AppSettingsDlg
|
from ui.AppSettings import AppSettingsDlg
|
||||||
@@ -58,6 +57,9 @@ class MainWindow(QMainWindow):
|
|||||||
# Theme-Menü initialisieren
|
# Theme-Menü initialisieren
|
||||||
self._setup_theme_menu()
|
self._setup_theme_menu()
|
||||||
|
|
||||||
|
# Vorhandene Projekte-Menü initialisieren
|
||||||
|
self._setup_projects_menu()
|
||||||
|
|
||||||
#
|
#
|
||||||
if (theme := app_settings.theme):
|
if (theme := app_settings.theme):
|
||||||
self.change_theme(theme)
|
self.change_theme(theme)
|
||||||
@@ -94,6 +96,59 @@ class MainWindow(QMainWindow):
|
|||||||
# Füge die Aktion zum Theme-Menü hinzu
|
# Füge die Aktion zum Theme-Menü hinzu
|
||||||
self.ui.menuThema.addAction(action)
|
self.ui.menuThema.addAction(action)
|
||||||
|
|
||||||
|
def _setup_projects_menu(self):
|
||||||
|
"""Initialisiert das Vorhandene Projekte-Menü mit gespeicherten Projekten."""
|
||||||
|
# Prüfe ob Projekte vorhanden sind
|
||||||
|
if not app_settings.pdf_projects:
|
||||||
|
# Keine Projekte vorhanden - Menü deaktiviert lassen
|
||||||
|
self.ui.actionVorhandene_Projekte.setEnabled(False)
|
||||||
|
self.ui.actionVorhandene_Projekte.setText("Vorhandene Projekte (keine vorhanden)")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Projekte vorhanden - Menü aktivieren und Untermenü erstellen
|
||||||
|
self.ui.actionVorhandene_Projekte.setEnabled(True)
|
||||||
|
self.ui.actionVorhandene_Projekte.setText("Vorhandene Projekte")
|
||||||
|
|
||||||
|
# Erstelle ein Untermenü für die Projekte
|
||||||
|
projects_menu = QMenu(self)
|
||||||
|
|
||||||
|
# Füge jedes Projekt als Menü-Eintrag hinzu
|
||||||
|
for project in app_settings.pdf_projects:
|
||||||
|
project_action = QAction(project.name, self)
|
||||||
|
project_action.setToolTip(f"Projekt-Ordner: {project.project_dir}")
|
||||||
|
|
||||||
|
# Verbinde die Aktion mit der Projekt-Öffnen-Funktion
|
||||||
|
project_action.triggered.connect(
|
||||||
|
lambda checked, proj=project: self.open_existing_project(proj)
|
||||||
|
)
|
||||||
|
|
||||||
|
projects_menu.addAction(project_action)
|
||||||
|
|
||||||
|
# Setze das Untermenü für die Aktion
|
||||||
|
self.ui.actionVorhandene_Projekte.setMenu(projects_menu)
|
||||||
|
|
||||||
|
print(f"Projekte-Menü initialisiert mit {len(app_settings.pdf_projects)} Projekten")
|
||||||
|
|
||||||
|
def open_existing_project(self, project: PdfProject):
|
||||||
|
"""
|
||||||
|
Öffnet ein vorhandenes Projekt.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
project: Das zu öffnende PdfProject-Objekt
|
||||||
|
"""
|
||||||
|
print(f"Öffne Projekt: {project.name}")
|
||||||
|
print(f"Projekt-Ordner: {project.project_dir}")
|
||||||
|
|
||||||
|
# Hier könnte die Logik zum Laden des Projekts implementiert werden
|
||||||
|
# Zum Beispiel:
|
||||||
|
# - PDF-Dateien aus dem Projekt-Ordner laden
|
||||||
|
# - Projekt-spezifische Einstellungen anwenden
|
||||||
|
# - UI entsprechend aktualisieren
|
||||||
|
|
||||||
|
# Für jetzt nur eine Meldung ausgeben
|
||||||
|
print(f"Projekt '{project.name}' wurde ausgewählt")
|
||||||
|
# TODO: Implementiere Projekt-Lade-Logik
|
||||||
|
|
||||||
def change_theme(self, theme_name):
|
def change_theme(self, theme_name):
|
||||||
"""
|
"""
|
||||||
Wechselt das Theme der Anwendung.
|
Wechselt das Theme der Anwendung.
|
||||||
@@ -525,6 +580,9 @@ class MainWindow(QMainWindow):
|
|||||||
print(f"Projekt-ID: {new_id}")
|
print(f"Projekt-ID: {new_id}")
|
||||||
print(f"Projekt-Ordner: {project_data['project_dir']}")
|
print(f"Projekt-Ordner: {project_data['project_dir']}")
|
||||||
|
|
||||||
|
# Aktualisiere das Projekte-Menü
|
||||||
|
self._setup_projects_menu()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Fehler beim Erstellen des neuen Projekts: {e}")
|
print(f"Fehler beim Erstellen des neuen Projekts: {e}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user