Skip to content

MouseClick v3.1.2

Latest

Choose a tag to compare

@SeaEpoch SeaEpoch released this 03 Sep 14:58

🖱️ MouseClick v3.1.2

本次版本是一次以「架构重构」为主线的重大更新:主题系统与全局快捷键注册逻辑先后完成了底层重构,同时新增了连点器运行反馈,并修复了若干长期存在的视觉与交互缺陷。

✨ 新功能

连点器启停通知重构为「托盘状态 + 声音提示」

  • 移除 QSystemTrayIcon::showMessage 系统通知——高频启停时会被系统节流甚至丢失。
  • 新增 ClickerStatusFeedback:将运行状态统一投影为 托盘图标 + tooltip + 声音 三重反馈。
  • 新增 SoundPlayer:基于 Win32 PlaySound 播放系统提示音(启动 / 停止)。
  • 运行态采用全新托盘图标(favicon 叠加绿色状态点),一眼区分「运行中 / 已停止」。
  • 设置页新增 「Sound Feedback」 开关,默认开启,并写入 config.ini([Settings] SoundFeedback)。
  • 同步更新三语言翻译。

🔧 重构(架构调整)

全局快捷键注册逻辑重构(状态机 + 接口)

  • 引入 Hotkey 值对象作为快捷键唯一数据源,从底层键码(event->key() + modifiers())构造,绕过 QKeySequenceEdit 内部的 QKeyMapper。
  • 修复严重缺陷:Shift+1 被归一化为 !、且仅需按 1 即可触发的错误。
  • 修复:组合键注册后永远停留在「注册中」状态、每次按键重复注册的问题。
  • 新增 IHotkeyRegistrar 抽象接口 + QHotkeyRegistrar 实现,实现依赖倒置、可注入 mock 测试。
  • 新增 HotkeyCaptureController 状态机(Idle / Capturing / Failed),统一协调「捕获 → 注册 → 持久化」生命周期。
  • HotkeyEdit 重写为纯 UI 转发控件;持久化时机改为**「注册成功才写配置」**,取消录制(失焦回退)只恢复旧热键,不再误删原配置。

主题系统:以 QStyle 替换 QSS,重构样式架构

  • 新增 SepProxyStyle(QProxyStyle 子类)统一接管全局控件渲染,取代 QSS 样式表。
  • 引入语义化颜色 / 间距令牌 tokens.h 与 ThemeState 单例,驱动深 / 浅色主题切换。
  • 以自绘 MessageBox 替换 QMessageBox,样式纳入 QStyle 统一体系。
  • 源码目录重组为 core / ui / theme / vendor 四层,并按语义更名。
  • 移除 assets/qss 下全部样式表及未使用字体。

🐛 修复

  • 切换主题后无边框窗口出现 1px 白色边框:定位到 setPalette() 广播 ApplicationPaletteChange 事件,触发 Qt 6.7.3 Windows 插件 QWindowsWindow::setDarkBorder() 将 DWM 深色边框重置为浅色。修复为拦截该事件并排队重设 DWMWA_USE_IMMERSIVE_DARK_MODE,配合 SetWindowPos(SWP_FRAMECHANGED) 强制重绘,边框始终固定深色。
  • MessageBox 正文最后一行下伸字符(g/p/q/y/j)被裁切:新增 DescenderSafeLabel(QLabel 子类),重写 sizeHint() 在自然高度上追加「下伸安全区」,并提前字体设置时机。
  • 源码中文注释乱码:修复 6 个文件 55 处 U+FFFD + ? 乱码,并将全部源文件统一为无 BOM 编码,消除 git diff 噪声。

📝 其他

  • 删除 README 中关于 Star History 的章节。

📦 完整提交列表
  • c84b8df refactor: 以 QStyle 主题系统替换 QSS,重构样式架构
  • 747033a fix: 修复切换主题后无边框窗口出现 1px 白色边框
  • dde82f7 refactor: 以状态机+接口重构全局快捷键注册逻辑
  • 8d71002 feat: 连点器启停通知重构为托盘状态+声音提示
  • 403499e fix: 修复源码中文注释乱码并统一无 BOM 编码
  • 26ca7d9 fix: 修复 MessageBox 正文最后一行下伸字符被裁切
  • c7ed891 docs: 删除 README 中关于 Star History 的章节