From fde69adcecf6689c347b3459110ccfad14864c7b Mon Sep 17 00:00:00 2001 From: webfarben Date: Mon, 23 Feb 2026 19:51:49 +0100 Subject: [PATCH] feat: Android Export Guide und UI Verbesserungen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Android iPD Export-Anleitung im Hilfe-Menü - Fix About Dialog Layout und Close Button Sichtbarkeit - Fensteröffnungshöhe auf 400px optimiert - UTF-8 Encoding Deklaration für korrekte Umlaute --- gui.py | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 4 deletions(-) diff --git a/gui.py b/gui.py index ba69d18..66d6d63 100644 --- a/gui.py +++ b/gui.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# -*- coding: utf-8 -*- """ GUI für PDF zu ICS Konverter Grafische Benutzeroberfläche mit Tkinter @@ -258,15 +259,117 @@ class PDFtoICSGUI: # Hilfe-Menü help_menu = tk.Menu(menubar, tearoff=0) menubar.add_cascade(label="Hilfe", menu=help_menu) + help_menu.add_command(label="PDF-Export auf Android (iPD)", command=self.show_android_export_guide) + help_menu.add_separator() help_menu.add_command(label="Über dieses Programm", command=self.show_about_dialog) help_menu.add_separator() help_menu.add_command(label="Beenden", command=self.on_closing) + def show_android_export_guide(self): + """Zeige Anleitung für PDF-Export aus Android App (iPD)""" + guide_window = tk.Toplevel(self.root) + guide_window.title("PDF-Export auf Android (iPD)") + guide_window.geometry("550x550") + guide_window.resizable(False, False) + + # Zentriere das Fenster + guide_window.transient(self.root) + guide_window.grab_set() + + # Header + header = tk.Label( + guide_window, + text="PDF-Export aus iPD", + font=("Arial", 16, "bold"), + bg="#2c3e50", + fg="white", + pady=15 + ) + header.pack(fill=tk.X) + + # Content Frame + content = tk.Frame(guide_window, padx=20, pady=20) + content.pack(fill=tk.BOTH, expand=True) + + # Anleitung-Text + guide_text = tk.Text( + content, + height=20, + font=("Courier", 9), + fg="#34495e", + wrap=tk.WORD, + relief=tk.FLAT, + bg="#f8f9fa" + ) + + guide_content = """1. Öffne die iPD App auf deinem Android-Gerät + +2. Öffne einen Dienstplan + +3. Wähle den gewünschten Monat aus + +4. Tippe auf das PDF-Symbol + (rechts oben, links neben dem 3-Punkte-Menü) + +5. Tippe auf "Datei herunterladen" + (rechts oben, neben Drucker-Button) + +6. Wähle "Im Arbeitsprofil speichern" + +7. Sende die PDF-Datei als E-Mail-Anhang + an deine private E-Mailadresse + +8. Transferiere die PDF-Datei auf deinen Computer + +9. Öffne diese Anwendung und füge die PDF ein + +10. Klicke "ICS Datei erstellen" + +11. Importiere die ICS-Datei in deinen Kalender + +✓ Fertig!""" + + guide_text.insert(tk.END, guide_content) + guide_text.config(state=tk.DISABLED) + guide_text.pack(fill=tk.BOTH, expand=True) + + # Button-Frame + button_frame = tk.Frame(content) + button_frame.pack(fill=tk.X, pady=(15, 0)) + + # Online-Link Button + online_btn = tk.Button( + button_frame, + text="📖 Detaillierte Anleitung online", + command=lambda: webbrowser.open("https://git.file-archive.de/webfarben/pdf_to_ics"), + bg="#3498db", + fg="white", + font=("Arial", 10, "bold"), + padx=20, + pady=10, + cursor="hand2" + ) + online_btn.pack(side=tk.LEFT, padx=(0, 10)) + + # Close Button + close_btn = tk.Button( + button_frame, + text="Schließen", + command=guide_window.destroy, + bg="#95a5a6", + fg="white", + font=("Arial", 10, "bold"), + padx=20, + pady=10, + cursor="hand2" + ) + close_btn.pack(side=tk.LEFT) + def show_about_dialog(self): """Zeige About-Dialog mit Programminformationen""" about_window = tk.Toplevel(self.root) about_window.title("Über dieses Programm") - about_window.geometry("500x350") + about_window.geometry("500x400") about_window.resizable(False, False) # Zentriere das Fenster @@ -286,7 +389,7 @@ class PDFtoICSGUI: # Content Frame content = tk.Frame(about_window, padx=20, pady=20) - content.pack(fill=tk.BOTH, expand=True) + content.pack(fill=tk.BOTH, expand=False) # Version version = get_current_version() @@ -352,7 +455,7 @@ class PDFtoICSGUI: # Beschreibung desc_frame = tk.Frame(content) - desc_frame.pack(anchor=tk.W, pady=(20, 0), fill=tk.BOTH, expand=True) + desc_frame.pack(anchor=tk.W, pady=(20, 0), fill=tk.BOTH, expand=False) desc_text = tk.Text( desc_frame, @@ -368,7 +471,7 @@ class PDFtoICSGUI: "zu ICS-Kalenderdateien für einfaches Importieren " "in Kalenderprogramme.") desc_text.config(state=tk.DISABLED) - desc_text.pack(fill=tk.BOTH, expand=True) + desc_text.pack(fill=tk.BOTH, expand=False) # Close Button close_btn = tk.Button(