vdi-cloud/terminal/kiosk-shell/src/desktop_store.h
宋一鸣 ec1566a80e 功能:支持按桌面配置连接参数与多种地址
变更详情:桌面连接可配置化——每卡设置、地址支持 IP/域名/VPN 隧道

- 新增 DesktopStore:~/.config/vdi-terminal/desktops.json 持久化连接参数,
  首次启动生成三张默认卡(待分配),老盒子自动从 client.conf 迁移 server 地址
- 新增 DesktopSettingsDialog:按桌面编辑协议/地址/应用名/分辨率/帧率,
  置顶显示避免被全屏 kiosk 遮挡
- 桌面列表每张卡增加“设置”按钮;管理菜单 Ctrl+Alt+Shift+M 增加入口
- DesktopService 改为从 store 读取;地址为空的桌面显示待分配且不可连接
- 修复:默认卡未按 endpoint 重算状态导致迁移后仍显示待分配
- 实测真机通过:Windows 自动迁移可连接、对话框显示与保存正常
2026-10-29 14:05:35 +08:00

38 lines
1.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 桌面连接配置持久化(JSON)
//
// 每个客户部署环境的桌面地址不同,连接参数不能写死在代码里。
// 当前阶段由本地文件维护(现场通过"桌面连接设置"界面配置);
// 后续接入管理平台后,本类改为平台下发配置的本地缓存,接口不变。
//
// 文件:~/.config/vdi-terminal/desktops.json
// 兼容:文件不存在时生成默认骨架;老盒子从 client.conf 的 server 迁移 Windows 地址。
#ifndef KIOSK_SHELL_DESKTOP_STORE_H
#define KIOSK_SHELL_DESKTOP_STORE_H
#include <QString>
#include <vector>
#include "desktop_session.h"
namespace vdi {
class DesktopStore {
public:
static QString storePath();
// 读取桌面列表;确保三张默认卡(Windows/Ubuntu/麒麟)始终存在。
// state 由 endpoint 是否为空推导:有地址=可连接,无地址=待分配。
static std::vector<DesktopInfo> load();
// 保存完整桌面列表
static bool save(const std::vector<DesktopInfo>& desktops);
// 更新单张桌面(按 id 匹配),保存成功返回 true
static bool update(const DesktopInfo& info);
};
} // namespace vdi
#endif // KIOSK_SHELL_DESKTOP_STORE_H