diff --git a/gui.py b/gui.py index be56a9c..4cd54ca 100644 --- a/gui.py +++ b/gui.py @@ -10,6 +10,7 @@ from pathlib import Path import threading import re import json +import webbrowser from pdf_to_ics import extract_dienstplan_data, create_ics_from_dienstplan from update_checker import check_for_updates, get_current_version @@ -263,22 +264,125 @@ class PDFtoICSGUI: def show_about_dialog(self): """Zeige About-Dialog mit Programminformationen""" - version = get_current_version() - about_text = f"""PDF zu ICS Konverter - Dienstplan Importer -Version {version} - -Entwickler: Sebastian Köhler -Firma: Webfarben -Kontakt: kontakt@webfarben.de - -Git Repository: -https://git.file-archive.de/webfarben/pdf_to_ics.git - -Ein Programm zur Konvertierung von Dienstplan-PDFs -zu ICS-Kalenderdateien für einfaches Importieren -in Kalenderprogramme.""" + about_window = tk.Toplevel(self.root) + about_window.title("Über dieses Programm") + about_window.geometry("500x350") + about_window.resizable(False, False) - messagebox.showinfo("Über dieses Programm", about_text) + # Zentriere das Fenster + about_window.transient(self.root) + about_window.grab_set() + + # Header + header = tk.Label( + about_window, + text="PDF zu ICS Konverter", + font=("Arial", 16, "bold"), + bg="#2c3e50", + fg="white", + pady=15 + ) + header.pack(fill=tk.X) + + # Content Frame + content = tk.Frame(about_window, padx=20, pady=20) + content.pack(fill=tk.BOTH, expand=True) + + # Version + version = get_current_version() + version_label = tk.Label( + content, + text=f"Version {version}", + font=("Arial", 11, "bold"), + fg="#2c3e50" + ) + version_label.pack(anchor=tk.W, pady=(0, 15)) + + # Info-Texte + info_texts = [ + ("Firma:", "Webfarben"), + ("Programmierer:", "Sebastian Köhler"), + ("Kontakt:", "kontakt@webfarben.de"), + ] + + for label, value in info_texts: + frame = tk.Frame(content) + frame.pack(anchor=tk.W, pady=3, fill=tk.X) + + label_widget = tk.Label( + frame, + text=label, + font=("Arial", 10, "bold"), + width=15, + anchor=tk.W + ) + label_widget.pack(side=tk.LEFT) + + value_widget = tk.Label( + frame, + text=value, + font=("Arial", 10), + fg="#34495e" + ) + value_widget.pack(side=tk.LEFT, padx=(5, 0)) + + # Git Repository mit Link + repo_frame = tk.Frame(content) + repo_frame.pack(anchor=tk.W, pady=(15, 0), fill=tk.X) + + repo_label = tk.Label( + repo_frame, + text="Repository:", + font=("Arial", 10, "bold"), + width=15, + anchor=tk.W + ) + repo_label.pack(side=tk.LEFT) + + repo_url = "https://git.file-archive.de/webfarben/pdf_to_ics.git" + repo_link = tk.Label( + repo_frame, + text=repo_url, + font=("Arial", 10, "underline"), + fg="#3498db", + cursor="hand2" + ) + repo_link.pack(side=tk.LEFT, padx=(5, 0)) + repo_link.bind("", lambda e: webbrowser.open(repo_url)) + + # Beschreibung + desc_frame = tk.Frame(content) + desc_frame.pack(anchor=tk.W, pady=(20, 0), fill=tk.BOTH, expand=True) + + desc_text = tk.Text( + desc_frame, + height=4, + font=("Arial", 9), + fg="#34495e", + wrap=tk.WORD, + relief=tk.FLAT, + bg=about_window.cget("bg") + ) + desc_text.insert(tk.END, + "Ein Programm zur Konvertierung von Dienstplan-PDFs " + "zu ICS-Kalenderdateien für einfaches Importieren " + "in Kalenderprogramme.") + desc_text.config(state=tk.DISABLED) + desc_text.pack(fill=tk.BOTH, expand=True) + + # Close Button + close_btn = tk.Button( + about_window, + text="Schließen", + command=about_window.destroy, + bg="#3498db", + fg="white", + font=("Arial", 10, "bold"), + padx=30, + pady=8, + cursor="hand2" + ) + close_btn.pack(pady=(0, 15)) def save_config(self):