# Copyright (c) 2025-2026 马建军. All rights reserved. # 专有软件 — 未经授权禁止复制、传播、转售。 # 严禁用于:带单/代客理财、向他人推荐期货品种或买卖建议、融资配资等业务。 # 详见 LICENSE.zh-CN.txt 与 docs/软件购买与使用协议.md """顶栏导航项显示开关(系统设置)。""" from __future__ import annotations import json from typing import Callable # 可在系统设置中开关的导航项 NAV_TOGGLES: dict[str, str] = { "fees": "手续费配置", "plans": "开单计划", "market": "行情K线", "strategy": "策略交易", } DEFAULT_NAV: dict[str, bool] = {k: True for k in NAV_TOGGLES} def get_nav_items(get_setting: Callable[[str, str], str]) -> dict[str, bool]: raw = (get_setting("nav_items", "") or "").strip() out = dict(DEFAULT_NAV) if not raw: return out try: data = json.loads(raw) if isinstance(data, dict): for k in NAV_TOGGLES: if k in data: out[k] = bool(data[k]) except json.JSONDecodeError: pass return out def save_nav_items(set_setting: Callable[[str, str], None], items: dict[str, bool]) -> None: merged = dict(DEFAULT_NAV) for k in NAV_TOGGLES: if k in items: merged[k] = bool(items[k]) set_setting("nav_items", json.dumps(merged, ensure_ascii=False)) def nav_enabled(get_setting: Callable[[str, str], str], key: str) -> bool: if key not in NAV_TOGGLES: return True return get_nav_items(get_setting).get(key, True)