@@ -125,18 +125,26 @@ class AboutDialog(ttk.Toplevel):
125125 def __init__ (self , parent ):
126126 super ().__init__ (parent )
127127 self .title (_ ("Über Bash-Script-Maker" ))
128- self .geometry ("450x350" )
128+ self .geometry ("500x450" )
129+ self .resizable (False , False )
129130
130131 container = ttk .Frame (self , padding = 20 )
131132 container .pack (fill = tk .BOTH , expand = True )
132133
134+ # Logo und Titel-Bereich
135+ header_frame = ttk .Frame (container )
136+ header_frame .pack (fill = tk .X , pady = (0 , 20 ))
137+
138+ # Logo hinzufügen
139+ self .add_logo_to_header (header_frame )
140+
133141 title_label = ttk .Label (
134- container ,
142+ header_frame ,
135143 text = "Bash-Script-Maker" ,
136- font = ("" , 18 , "bold" ),
144+ font = ("Arial " , 20 , "bold" ),
137145 bootstyle = "primary" ,
138146 )
139- title_label .pack (pady = (0 , 10 ))
147+ title_label .pack (pady = (10 , 0 ))
140148
141149 desc_text = _ ("Ein GUI-Programm zur einfachen Erstellung von Bash-Scripts." )
142150 desc_label = ttk .Label (container , text = desc_text , wraplength = 400 )
@@ -182,6 +190,55 @@ def __init__(self, parent):
182190 )
183191 version_label .pack (pady = (15 , 0 ))
184192
193+ # Schließen-Button
194+ close_btn = ttk .Button (
195+ container ,
196+ text = _ ("Schließen" ),
197+ command = self .destroy ,
198+ bootstyle = "primary"
199+ )
200+ close_btn .pack (pady = (20 , 0 ))
201+
202+ def add_logo_to_header (self , header_frame ):
203+ """Fügt das Logo zum About-Dialog-Header hinzu"""
204+ try :
205+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
206+ logo_path = os .path .join (script_dir , "assets" , "bash-script-maker-64.png" )
207+
208+ if os .path .exists (logo_path ):
209+ try :
210+ from PIL import Image , ImageTk
211+
212+ # Logo für About-Dialog (64x64)
213+ img = Image .open (logo_path )
214+ logo_photo = ImageTk .PhotoImage (img )
215+
216+ logo_label = ttk .Label (header_frame , image = logo_photo )
217+ logo_label .image = logo_photo # Referenz behalten
218+ logo_label .pack (anchor = tk .CENTER )
219+
220+ except ImportError :
221+ # Fallback: Großes Emoji
222+ logo_label = ttk .Label (
223+ header_frame ,
224+ text = "🖥️" ,
225+ font = ("Arial" , 48 )
226+ )
227+ logo_label .pack (anchor = tk .CENTER )
228+ else :
229+ # Fallback: Emoji
230+ logo_label = ttk .Label (
231+ header_frame ,
232+ text = "🖥️" ,
233+ font = ("Arial" , 48 )
234+ )
235+ logo_label .pack (anchor = tk .CENTER )
236+
237+ except Exception as e :
238+ print (f"Fehler beim Hinzufügen des Logos zum About-Dialog: { e } " )
239+ # Minimaler Fallback
240+ pass
241+
185242
186243class ScriptInfoDialog (ttk .Toplevel ):
187244 def __init__ (self , parent , script_name , content ):
@@ -330,48 +387,116 @@ def set_window_icon(self):
330387 print (f"Fehler beim Setzen des Icons: { e } " )
331388
332389 def add_logo_to_toolbar (self , toolbar ):
333- """Fügt das Logo zur Toolbar hinzu"""
390+ """Fügt das Logo und den App-Namen zur Toolbar hinzu"""
334391 try :
392+ # Logo-Container für bessere Anordnung
393+ logo_container = ttk .Frame (toolbar )
394+ logo_container .pack (side = tk .LEFT , padx = (0 , 20 ), pady = 15 )
395+
335396 # Pfad zum Icon ermitteln
336397 script_dir = os .path .dirname (os .path .abspath (__file__ ))
337- logo_path = os .path .join (script_dir , "assets" , "bash-script-maker-32 .png" )
398+ logo_path = os .path .join (script_dir , "assets" , "bash-script-maker-48 .png" )
338399
339400 if os .path .exists (logo_path ):
340401 try :
341402 from PIL import Image , ImageTk
342403
343- # Logo laden und für Toolbar optimieren
404+ # Logo laden - größer für bessere Sichtbarkeit
344405 img = Image .open (logo_path )
345- # Etwas kleiner für die Toolbar (24x24 )
346- img = img .resize ((24 , 24 ), Image .Resampling .LANCZOS )
406+ # Optimale Größe für Toolbar (36x36 )
407+ img = img .resize ((36 , 36 ), Image .Resampling .LANCZOS )
347408 logo_photo = ImageTk .PhotoImage (img )
348409
349410 # Logo-Label erstellen
350- logo_label = ttk .Label (toolbar , image = logo_photo )
411+ logo_label = ttk .Label (logo_container , image = logo_photo )
351412 logo_label .image = logo_photo # Referenz behalten
352- logo_label .pack (side = tk .LEFT , padx = (0 , 10 ), pady = 20 )
413+ logo_label .pack (side = tk .LEFT , padx = (0 , 8 ))
414+
415+ # App-Name-Label hinzufügen
416+ name_label = ttk .Label (
417+ logo_container ,
418+ text = "Bash-Script-Maker" ,
419+ font = ("Arial" , 12 , "bold" ),
420+ foreground = "#2c3e50" # Dunkle Farbe für bessere Lesbarkeit
421+ )
422+ name_label .pack (side = tk .LEFT , anchor = tk .CENTER )
423+
424+ # Version-Label (kleiner) hinzufügen
425+ version_label = ttk .Label (
426+ logo_container ,
427+ text = f"v{ __version__ } " ,
428+ font = ("Arial" , 9 ),
429+ foreground = "#7f8c8d" # Grau für subtile Version
430+ )
431+ version_label .pack (side = tk .LEFT , padx = (5 , 0 ), anchor = tk .CENTER )
353432
354- # Tooltip hinzufügen
355- ToolTip (logo_label , text = "Bash-Script-Maker v" + __version__ )
433+ # Tooltips hinzufügen
434+ ToolTip (logo_label , text = f"Bash-Script-Maker v{ __version__ } " )
435+ ToolTip (name_label , text = f"Bash-Script-Maker v{ __version__ } " )
436+ ToolTip (version_label , text = f"Version { __version__ } " )
356437
357- print ("Logo zur Toolbar hinzugefügt" )
438+ print ("Logo und App-Name zur Toolbar hinzugefügt" )
358439
359440 except ImportError :
360- # Fallback ohne PIL - verwende Text-Logo
441+ # Fallback ohne PIL - verwende Text-Logo mit Name
361442 logo_label = ttk .Label (
362- toolbar ,
443+ logo_container ,
363444 text = "🖥️" ,
364- font = ("Arial" , 16 )
445+ font = ("Arial" , 24 )
446+ )
447+ logo_label .pack (side = tk .LEFT , padx = (0 , 8 ))
448+
449+ # App-Name auch im Fallback
450+ name_label = ttk .Label (
451+ logo_container ,
452+ text = "Bash-Script-Maker" ,
453+ font = ("Arial" , 12 , "bold" )
365454 )
366- logo_label .pack (side = tk .LEFT , padx = (0 , 10 ), pady = 20 )
367- ToolTip (logo_label , text = "Bash-Script-Maker v" + __version__ )
368- print ("Text-Logo zur Toolbar hinzugefügt" )
455+ name_label .pack (side = tk .LEFT , anchor = tk .CENTER )
456+
457+ version_label = ttk .Label (
458+ logo_container ,
459+ text = f"v{ __version__ } " ,
460+ font = ("Arial" , 9 )
461+ )
462+ version_label .pack (side = tk .LEFT , padx = (5 , 0 ), anchor = tk .CENTER )
463+
464+ # Tooltips
465+ ToolTip (logo_label , text = f"Bash-Script-Maker v{ __version__ } " )
466+ ToolTip (name_label , text = f"Bash-Script-Maker v{ __version__ } " )
467+ ToolTip (version_label , text = f"Version { __version__ } " )
468+
469+ print ("Text-Logo und App-Name zur Toolbar hinzugefügt" )
369470
370471 else :
371- print (f"Logo-Datei nicht gefunden: { logo_path } " )
472+ # Nur Text-Branding wenn kein Icon gefunden
473+ name_label = ttk .Label (
474+ logo_container ,
475+ text = "🖥️ Bash-Script-Maker" ,
476+ font = ("Arial" , 12 , "bold" )
477+ )
478+ name_label .pack (side = tk .LEFT )
479+
480+ version_label = ttk .Label (
481+ logo_container ,
482+ text = f"v{ __version__ } " ,
483+ font = ("Arial" , 9 )
484+ )
485+ version_label .pack (side = tk .LEFT , padx = (5 , 0 ), anchor = tk .CENTER )
486+
487+ ToolTip (name_label , text = f"Bash-Script-Maker v{ __version__ } " )
488+ ToolTip (version_label , text = f"Version { __version__ } " )
489+
490+ print (f"Logo-Datei nicht gefunden: { logo_path } , verwende Text-Branding" )
372491
373492 except Exception as e :
374493 print (f"Fehler beim Hinzufügen des Logos: { e } " )
494+ # Minimaler Fallback
495+ try :
496+ fallback_label = ttk .Label (toolbar , text = "Bash-Script-Maker" , font = ("Arial" , 10 , "bold" ))
497+ fallback_label .pack (side = tk .LEFT , padx = (0 , 15 ), pady = 20 )
498+ except :
499+ pass
375500
376501 def create_menu (self ):
377502 """Erstellt das Menü der Anwendung"""
@@ -886,13 +1011,20 @@ def show_script_info(self):
8861011 ScriptInfoDialog (self .root , self .script_name , content )
8871012
8881013 def show_about (self ):
889- """Zeigt About-Dialog"""
890- about_text = _ (
891- "Bash-Script-Maker ist ein GUI-Programm zur einfachen Erstellung von Bash-Scripts.\n \n "
892- "Erstellt mit Python und Tkinter"
893- )
894-
895- messagebox .showinfo (_ ("Über Bash-Script-Maker" ), about_text )
1014+ """Zeigt About-Dialog mit Logo"""
1015+ try :
1016+ about_dialog = AboutDialog (self .root )
1017+ about_dialog .grab_set () # Modal dialog
1018+ about_dialog .wait_window () # Warten bis Dialog geschlossen wird
1019+ except Exception as e :
1020+ # Fallback auf einfachen Dialog
1021+ about_text = _ (
1022+ f"Bash-Script-Maker v{ __version__ } \n \n "
1023+ "Ein GUI-Programm zur einfachen Erstellung von Bash-Scripts.\n \n "
1024+ "Erstellt mit Python und Tkinter\n "
1025+ "© 2024 SecureBits"
1026+ )
1027+ messagebox .showinfo (_ ("Über Bash-Script-Maker" ), about_text )
8961028
8971029 def open_documentation (self ):
8981030 """Öffnet die README.md Datei im Standard-Browser."""
0 commit comments