Anpassungen Einstellungen
Dieser Commit ist enthalten in:
@ -19,8 +19,8 @@ class SettingsDialog(ctk.CTkToplevel):
|
||||
|
||||
# Window setup
|
||||
self.title("Einstellungen")
|
||||
self.geometry("450x400")
|
||||
self.resizable(False, False)
|
||||
self.minsize(500, 450)
|
||||
self.resizable(True, True)
|
||||
|
||||
# Make modal
|
||||
self.transient(parent)
|
||||
@ -32,6 +32,9 @@ class SettingsDialog(ctk.CTkToplevel):
|
||||
# Setup UI
|
||||
self.setup_ui()
|
||||
|
||||
# Update window size to fit content
|
||||
self.update_idletasks()
|
||||
|
||||
# Center window
|
||||
self.center_window()
|
||||
|
||||
@ -137,15 +140,28 @@ class SettingsDialog(ctk.CTkToplevel):
|
||||
activity_section,
|
||||
text="",
|
||||
font=FONTS['small'],
|
||||
text_color=COLORS['text_secondary']
|
||||
text_color=COLORS['text_secondary'],
|
||||
height=20
|
||||
)
|
||||
self.connection_status_label.pack(pady=(0, 10))
|
||||
|
||||
# Buttons
|
||||
button_frame = ctk.CTkFrame(main_frame, fg_color="transparent")
|
||||
button_frame.pack(side="bottom", fill="x", pady=(20, 0))
|
||||
button_frame.pack(fill="x", pady=(20, 0))
|
||||
|
||||
# Apply button
|
||||
# Cancel button (left side)
|
||||
cancel_btn = ctk.CTkButton(
|
||||
button_frame,
|
||||
text="Abbrechen",
|
||||
command=self.destroy,
|
||||
fg_color=COLORS['bg_tile'],
|
||||
hover_color=COLORS['bg_tile_hover'],
|
||||
text_color=COLORS['text_primary'],
|
||||
width=100
|
||||
)
|
||||
cancel_btn.pack(side="left", padx=(0, 5))
|
||||
|
||||
# Apply button (right side)
|
||||
apply_btn = ctk.CTkButton(
|
||||
button_frame,
|
||||
text="Anwenden",
|
||||
@ -156,17 +172,17 @@ class SettingsDialog(ctk.CTkToplevel):
|
||||
)
|
||||
apply_btn.pack(side="right", padx=(5, 0))
|
||||
|
||||
# Cancel button
|
||||
cancel_btn = ctk.CTkButton(
|
||||
# Save button (right side, before Apply)
|
||||
save_btn = ctk.CTkButton(
|
||||
button_frame,
|
||||
text="Abbrechen",
|
||||
command=self.destroy,
|
||||
fg_color=COLORS['bg_tile'],
|
||||
hover_color=COLORS['bg_tile_hover'],
|
||||
text="Speichern",
|
||||
command=self.save_settings_only,
|
||||
fg_color=COLORS['accent_secondary'],
|
||||
hover_color=COLORS['accent_hover'],
|
||||
text_color=COLORS['text_primary'],
|
||||
width=100
|
||||
)
|
||||
cancel_btn.pack(side="right")
|
||||
save_btn.pack(side="right", padx=(5, 0))
|
||||
|
||||
def load_settings(self):
|
||||
"""Load settings from file"""
|
||||
@ -189,6 +205,29 @@ class SettingsDialog(ctk.CTkToplevel):
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to save UI settings: {e}")
|
||||
|
||||
def save_settings_only(self):
|
||||
"""Save settings without applying to service or closing dialog"""
|
||||
# Get values
|
||||
server_url = self.server_url_var.get().strip()
|
||||
api_key = self.api_key_var.get().strip()
|
||||
user_name = self.user_name_var.get().strip()
|
||||
|
||||
# Update settings
|
||||
self.settings["activity_server_url"] = server_url
|
||||
self.settings["activity_api_key"] = api_key
|
||||
self.settings["activity_user_name"] = user_name
|
||||
self.save_settings()
|
||||
|
||||
# Show confirmation
|
||||
self.connection_status_label.configure(
|
||||
text="✅ Einstellungen gespeichert!",
|
||||
text_color=COLORS['accent_success']
|
||||
)
|
||||
logger.info("Settings saved successfully")
|
||||
|
||||
# Clear status after 2 seconds
|
||||
self.after(2000, lambda: self.connection_status_label.configure(text=""))
|
||||
|
||||
def apply_settings(self):
|
||||
"""Apply the selected settings"""
|
||||
import uuid
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren