Skip to content

Upgrade to new version#372

Draft
OKOtohime wants to merge 10 commits into
masterfrom
dev
Draft

Upgrade to new version#372
OKOtohime wants to merge 10 commits into
masterfrom
dev

Conversation

@OKOtohime

@OKOtohime OKOtohime commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

🚀 新特性 (New Features)

🐞 缺陷修复 (Bug Fixes)

📝 文档更新 (Documentation)

  • README 优化:更新了针对 Linux/macOS 环境下的源码打包说明。
  • 开发者说明:新增关于修改 UI 界面的规范与注意事项。
  • 其它:新增贡献者图表及相关徽章。

SustechSKY and others added 10 commits April 30, 2026 23:12
Before: The <runtimes> setting for script will be applied to each subscript as well.
After: Each subscript will be run only once upon calling.
Add a formatted script write to format the recorded script.
Currently, a single event will be wrote in single line. The dump parameter are set to 'tailing_commas=False,quote_keys=True' to remove extra commas at end of item
In commit 79ac6d8 , `event_list` is mistakenly typed as `event_str`
This commit synchronizes `UIView.ui` with the UI changes for the timer
feature, which were previously only applied to the generated `UIView.py`
file in commit cddcb58.

The following changes were made:
- The timer-related widgets (labels, combo boxes, and checkboxes)
  have been added to the `UIView.ui` source file.
- The `UIView.py` file has been regenerated from the updated `UIView.ui`
  to ensure consistency.
- The initialization logic for populating the new combo boxes has been
  added to `UIFunc.py`.

This resolves the inconsistency between the UI source file and the
generated Python code, aligning with the recommended development workflow.
Previously, the input recording listeners (pynput on Linux/macOS and pyWinhook on Windows) were not stopped when the application was closed. This caused a race condition, leading to a `RuntimeError` on exit as the listener threads tried to access already-deleted Qt objects.

This commit resolves the issue by:
- Introducing a `stop_listeners` function in both `UniversalRecorder` and `WindowsRecorder` to properly terminate the listener threads or unhook the listeners.
- Ensuring these functions are called from the main `dispose` function when the application's `closeEvent` is triggered.

This prevents the crash and ensures a clean shutdown on all supported platforms.
Major changes:
1. Directory Structure Optimization
   - Create UI/ directory to consolidate all PySide6 logic, views, and resource definitions.
   - Create assets/img/ directory to unify storage of icons, previews, and third-party logos.
2. Logic Decoupling and Refactoring
   - Add Util/Path.py for unified absolute path conversion logic.
   - Refactor UI modules into a package structure using relative imports.
   - Remove redundant code from KeymouseGo.py and Plugin/Manager.py.
3. Compatibility Updates
   - Update image reference paths in README.md and README_en-US.md.
   - Update UI/assets.qrc paths and re-generate assets_rc.py.
   - Optimize .gitignore rules.
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.

2 participants