Skip to content

feat: 引入悬浮窗配置方案系统与自动化行动#4

Merged
ywydog merged 3 commits into
mainfrom
trae/solo-agent-VuGEdC
Jun 19, 2026
Merged

feat: 引入悬浮窗配置方案系统与自动化行动#4
ywydog merged 3 commits into
mainfrom
trae/solo-agent-VuGEdC

Conversation

@ywydog

@ywydog ywydog commented Jun 19, 2026

Copy link
Copy Markdown
Owner

🎯 Changes

1. 悬浮窗配置方案系统

  • 新增 FloatingWindowProfile: 引入独立的悬浮窗配置方案类,将布局和外观参数从主配置中分离,支持多套配置。
  • 新增 FloatingWindowProfileManager: 实现方案的创建、读取、更新、删除 (CRUD) 功能,支持旧版配置迁移和文件存储管理。
  • 主配置更新: MainConfigData 新增 CurrentFloatingWindowProfile 等属性,关联当前激活的悬浮窗方案。
  • 编辑器重构: FloatingWindowEditorSettingsPage UI 大幅重构,支持方案选择、添加、删除,并提供组件库和规则集编辑功能。
  • 服务集成: FloatingWindowService 调整,其窗口属性现在从当前激活的配置方案中获取。

2. 悬浮窗自动化行动

  • 新增 SwitchFloatingWindowThemeAction: 支持切换悬浮窗主题(跟随系统/浅色/深色或指定主题)。
  • 新增 ToggleFloatingWindowLayerAction: 支持切换悬浮窗层级(置顶/置底或指定层级)。
  • 新增 ToggleFloatingWindowProfileAction: 支持切换悬浮窗配置方案(下一个/指定方案)。
  • 设置控件与类: 为上述三个新行动分别新增了对应的设置控件和设置类。

3. 悬浮窗可见性规则集

  • 新增规则集配置: 引入 ButtonRulesetConfigRowRulesetConfig,支持基于规则集控制悬浮窗按钮和行的可见性。
  • 服务集成: FloatingWindowService 实现了规则集驱动的窗口、按钮、行可见性控制系统。
  • 编辑器集成: FloatingWindowEditorSettingsPage 增加了规则集 Drawer 系统,支持三级规则集编辑。

4. 健壮性与空值安全改进

  • 多处空值检查: 在 SetVolume.cs, ShowFloatingWindowAction.cs, ClipboardContentComponent.axaml.cs, Plugin.cs, AboutSettingsPage.axaml.cs 等多处添加了空值检查,防止运行时崩溃。
  • 资源释放与内存优化: LyricsDisplayComponent.axaml.cs 修复了位图未释放导致的内存泄漏。
  • 异常处理增强: NetworkStatusComponent.axaml.cs 为 HTTP 请求添加 try-catch 保护,确保秒表正确停止。
  • 默认值与回退: FloatingWindowService.cs 确保颜色解析失败时回退到默认值;DriveUtils.cspluginDir 为空时回退到 AppContext.BaseDirectory

5. 其他改进

  • 组件重构: BetterCarouselContainerComponent, LocalQuoteComponent, NextClassDisplayComponent 等组件的依赖服务字段改为可空类型,并添加无参构造函数以支持设计时实例化。
  • 日志与调试: ScrollingTextComponent.axaml.cs 将静默异常捕获改为输出调试信息。
  • 依赖更新: Plugin.cs 注册 FloatingWindowProfileManager 到 DI 容器。

💡 Technical Highlights

  • 配置解耦: 通过引入 FloatingWindowProfile 实现悬浮窗布局和外观配置的解耦,增强了系统的灵活性和可扩展性。
  • 规则驱动的可见性: 实现了基于规则集的动态可见性控制,允许用户根据特定条件隐藏或显示悬浮窗元素,提升了用户体验和个性化能力。
  • 自动化工作流: 新增的三个自动化行动极大地丰富了悬浮窗的交互能力,用户可以通过规则或手动触发来改变悬浮窗的主题、层级和配置方案。
  • 健壮性提升: 大量的空值检查和异常处理增强了系统的稳定性,减少了潜在的运行时错误。
  • UI/UX 优化: 悬浮窗编辑器的大幅重构,提供了更直观、更强大的配置界面,包括组件库和规则集编辑,显著提升了用户配置体验。

ywydog and others added 2 commits June 19, 2026 20:02
悬浮窗重构
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
@ywydog ywydog changed the base branch from v2 to main June 19, 2026 12:46
- Actions/ShowFloatingWindowAction.cs: 保留 HEAD 的空悬浮窗组件检查与 main 的 IsRevertable 状态快照
- Services/FloatingWindowService.cs: 保留 HEAD 基于 FloatingWindowProfile 的行规则集方案

Co-Authored-By: TRAE Agent <agent@trae.local>
@ywydog ywydog merged commit afeb7e5 into main Jun 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant