Neue Menü mit eingerichteten Projekten
This commit is contained in:
+61
-3
@@ -3,10 +3,9 @@ import os
|
||||
import time
|
||||
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter, QAction
|
||||
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory
|
||||
from PySide6.QtGui import QCursor, QPixmap, QPainter, QAction
|
||||
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory, QMenu
|
||||
from PySide6.QtPdf import QPdfDocument
|
||||
from PySide6.QtPdfWidgets import QPdfView
|
||||
|
||||
from ui.MainWinddow_ui import Ui_MainWindow
|
||||
from ui.AppSettings import AppSettingsDlg
|
||||
@@ -58,6 +57,9 @@ class MainWindow(QMainWindow):
|
||||
# Theme-Menü initialisieren
|
||||
self._setup_theme_menu()
|
||||
|
||||
# Vorhandene Projekte-Menü initialisieren
|
||||
self._setup_projects_menu()
|
||||
|
||||
#
|
||||
if (theme := app_settings.theme):
|
||||
self.change_theme(theme)
|
||||
@@ -94,6 +96,59 @@ class MainWindow(QMainWindow):
|
||||
# Füge die Aktion zum Theme-Menü hinzu
|
||||
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):
|
||||
"""
|
||||
Wechselt das Theme der Anwendung.
|
||||
@@ -525,6 +580,9 @@ class MainWindow(QMainWindow):
|
||||
print(f"Projekt-ID: {new_id}")
|
||||
print(f"Projekt-Ordner: {project_data['project_dir']}")
|
||||
|
||||
# Aktualisiere das Projekte-Menü
|
||||
self._setup_projects_menu()
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Erstellen des neuen Projekts: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user