Files
remotedesk/docs/gui-host-management.md

4.0 KiB
Raw Permalink Blame History

RemoteDesk GUI 远程服务列表保存功能

实现概述

为 RemoteDesk 原生 GUI 添加了完整的远程主机管理功能,支持添加、保存、编辑和删除远程服务列表。

新增功能

1. 数据持久化

  • SQLite 数据库: 使用 rusqlite 存储远程主机配置
  • 数据位置: %LOCALAPPDATA%\RemoteDesk\remotedesk.db
  • 自动初始化: 首次运行时自动创建数据库和表结构

2. 远程主机管理

  • 添加主机: 点击 " Add Host" 按钮打开添加对话框
  • 主机信息:
    • 名称 (Name)
    • 地址 (Address)
    • 端口 (Port)
    • 协议 (RDP / Linux Agent)
    • 用户名 (Username)
    • 描述 (Description)

3. 主机列表视图

  • All Devices: 显示所有已添加的主机
  • Favorites: 显示收藏的主机
  • Recent: 显示最近连接的主机(最多10个)

4. 主机操作

  • 连接: 点击 "Connect" 按钮连接到远程主机
  • 收藏: 点击星标图标 (☆/★) 切换收藏状态
  • 删除: 点击垃圾桶图标 (🗑) 删除主机
  • 搜索: 使用搜索框快速查找主机

5. 快速连接

  • 保留原有的 "🗲 Quick Connect" 功能
  • 支持快速输入地址直接连接

数据库结构

CREATE TABLE remote_hosts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    address TEXT NOT NULL,
    port INTEGER NOT NULL,
    protocol TEXT NOT NULL,
    username TEXT NOT NULL,
    description TEXT,
    is_favorite INTEGER NOT NULL DEFAULT 0,
    last_connected INTEGER,
    created_at INTEGER NOT NULL
)

技术细节

新增依赖

  • rusqlite = { version = "0.32", features = ["bundled"] }
  • serde = { version = "1.0", features = ["derive"] }
  • chrono = "0.4"

新增文件

  • client/native-gui/src/storage.rs: 数据存储模块
    • RemoteHost: 主机数据结构
    • HostProtocol: 协议枚举 (RDP/LinuxAgent)
    • HostStorage: 数据库操作接口

主要方法

  • add_host(): 添加新主机
  • update_host(): 更新主机信息
  • delete_host(): 删除主机
  • get_all_hosts(): 获取所有主机
  • get_favorites(): 获取收藏主机
  • get_recent(): 获取最近连接
  • toggle_favorite(): 切换收藏状态
  • update_last_connected(): 更新最后连接时间

UI 改进

添加主机对话框

  • 居中显示的模态窗口
  • 表单式输入界面
  • 协议下拉选择 (ComboBox)
  • Save/Cancel 按钮

主机卡片增强

  • 显示主机缩写图标
  • 显示协议类型
  • 收藏状态可视化(金色/灰色星标)
  • 删除按钮
  • 悬停提示

视觉设计

  • 深色主题配色 (保持一致)
  • 卡片式布局
  • 响应式交互
  • 清晰的视觉层次

使用方法

添加远程主机

  1. 启动 RemoteDesk GUI
  2. 点击顶部 " Add Host" 按钮
  3. 填写主机信息
  4. 选择协议类型
  5. 点击 "Save" 保存

连接到主机

  1. 在主机列表中找到目标主机
  2. 点击 "Connect" 按钮
  3. 系统会自动记录连接时间

管理收藏

  • 点击主机卡片上的星标图标即可切换收藏状态
  • 在 "Favorites" 标签查看所有收藏的主机

查看历史

  • 切换到 "Recent" 标签查看最近连接的主机
  • 按连接时间倒序排列

构建和运行

# 构建
cargo build -p remotedesk-native-gui

# 运行
cargo run -p remotedesk-native-gui

# 或直接运行可执行文件
.\target\debug\remotedesk-native.exe

数据安全

  • 数据库文件存储在用户的本地应用数据目录
  • 仅保存主机配置信息和用户名
  • 不存储密码(符合安全最佳实践)
  • 凭据应通过 Windows Credential Manager 单独管理

未来增强

可考虑的功能扩展:

  • 主机分组/标签
  • 导入/导出配置
  • 批量操作
  • 主机状态检测(在线/离线)
  • 连接统计和分析
  • 自定义主机图标
  • 拖拽排序

测试

构建成功,生成的可执行文件位于: target\debug\remotedesk-native.exe

所有功能已集成到现有 GUI 中,保持了界面的一致性和流畅性。