This commit is contained in:
2026-05-28 18:58:38 +02:00
parent 641bb10479
commit 28f429885a
4950 changed files with 933414 additions and 666 deletions

View File

@@ -936,16 +936,16 @@ class _OfficeShellV12:
).pack(fill="x", pady=3)
tk.Checkbutton(
outer, text="Chat-Empfang",
variable=app._empfang_auto_var,
command=self._on_chat_empfang_toggle,
outer, text="Diagnosen gliedern",
variable=app._diagnose_grouping_var,
command=lambda: _safe_call(app, "_toggle_diagnose_grouping"),
**pad,
).pack(fill="x", pady=3)
tk.Checkbutton(
outer, text="Diagnosen zusammenfassen",
variable=app._diagnose_grouping_var,
command=lambda: _safe_call(app, "_toggle_diagnose_grouping"),
outer, text="Chat-Empfang",
variable=app._empfang_auto_var,
command=self._on_chat_empfang_toggle,
**pad,
).pack(fill="x", pady=3)
@@ -1117,9 +1117,37 @@ class _OfficeShellV12:
))
self._diktat_btn.pack(side="left")
# ── Rechts: Pin + Lizenz + Profil + Aktivierung ──────────────────
# right muss VOR center gepackt werden, damit das center-Frame
# den echten Mittelbereich einnimmt.
right = tk.Frame(self._header_inner, bg=p["SURFACE"])
right.pack(side="right")
# Pin-Nadel fuer das Hauptfenster (Always-on-top toggeln).
# Standard: angepinnt (rot). Ein Klick togglet und speichert.
try:
_initial_pinned = bool(getattr(app, "_main_pinned", True))
except Exception:
_initial_pinned = True
self._main_pin_btn = tk.Label(
right,
text=("📌" if _initial_pinned else "📍"),
font=("Segoe UI Emoji", 11),
bg=p["SURFACE"],
fg=("#1A6FB5" if _initial_pinned else "#90A4B8"),
cursor="hand2",
padx=8,
pady=4,
)
self._main_pin_btn.pack(side="left", padx=(0, 6))
self._main_pin_btn.bind(
"<Button-1>", lambda e: _safe_call(app, "_toggle_main_pin"),
)
try:
app._main_pin_btn = self._main_pin_btn
except Exception:
pass
self._license_lbl = tk.Label(
right, text="Lizenz prüfen …", font=FONT_DEFAULT,
bg=p["SURFACE"], fg=p["SUBTLE"], cursor="hand2", padx=8, pady=4,
@@ -1144,6 +1172,19 @@ class _OfficeShellV12:
tooltip="Aktivierungsdialog öffnen",
)).pack(side="left")
# ── Mitte: Update-Button ──────────────────────────────────────────
# Wird zwischen left und right zentriert (pack side=left nach right).
center = tk.Frame(self._header_inner, bg=p["SURFACE"])
center.pack(side="left", expand=True, fill="x")
self._update_btn = PillButton(
center, "↑ Neu",
command=lambda: _safe_call(app, "_manual_update_check"),
kind="ghost", width=BTN_W_HEADER, palette=p,
tooltip="Nach Updates suchen",
)
self._update_btn.pack(anchor="center")
def _build_status_row(self):
app = self.app
p = self._palette
@@ -1216,7 +1257,7 @@ class _OfficeShellV12:
self._main_fill = tk.Frame(app, bg=p["BG"])
self._main_fill.pack(side="top", fill="both", expand=True)
self._sidebar = tk.Frame(self._main_fill, bg=p["ACCENT"], width=220)
self._sidebar = tk.Frame(self._main_fill, bg=p["ACCENT"], width=246)
self._sidebar.pack(side="left", fill="y")
self._sidebar.pack_propagate(False)
@@ -1308,16 +1349,16 @@ class _OfficeShellV12:
).pack(fill="x", padx=12, pady=3)
tk.Checkbutton(
self._sec_arb_body, text="Chat-Empfang",
variable=app._empfang_auto_var,
command=self._on_chat_empfang_toggle,
self._sec_arb_body, text="Diagnosen gliedern",
variable=app._diagnose_grouping_var,
command=lambda: _safe_call(app, "_toggle_diagnose_grouping"),
**cb_pad,
).pack(fill="x", padx=12, pady=3)
tk.Checkbutton(
self._sec_arb_body, text="Diagnosen zusammenfassen",
variable=app._diagnose_grouping_var,
command=lambda: _safe_call(app, "_toggle_diagnose_grouping"),
self._sec_arb_body, text="Chat-Empfang",
variable=app._empfang_auto_var,
command=self._on_chat_empfang_toggle,
**cb_pad,
).pack(fill="x", padx=12, pady=3)
@@ -1343,12 +1384,26 @@ class _OfficeShellV12:
font=FONT_DEFAULT,
cursor="hand2",
anchor="w",
).pack(fill="x", padx=(28, 12), pady=(2, 10))
).pack(fill="x", padx=(28, 12), pady=(2, 4))
self._sec_arb_body.winfo_children()[-1].bind(
"<Button-1>",
lambda e: self._open_workspace_autotext(),
)
tk.Label(
self._sec_arb_body,
text="Ordner",
bg=acc,
fg="#E2EEF6",
font=FONT_DEFAULT,
cursor="hand2",
anchor="w",
).pack(fill="x", padx=(28, 12), pady=(2, 10))
self._sec_arb_body.winfo_children()[-1].bind(
"<Button-1>",
lambda e: _safe_call(self.app, "open_ordner_window"),
)
if self._sec_arb_open:
self._sec_arb_body.pack(fill="x", after=self._sidebar_head_arb)