Conversation
…dentity, close-to-hide with no AppKit workarounds, and a restyled light/dark UI.
…s the server, and the transcription language moves onto the run page.
…own 640x480 default geometry and painted over the dialog; clear_layout() now detaches before deferred deletion.
…ean text), and checkboxes go back to native Fusion indicators so the check mark is visible.
…ag-drop, remove per-entry — the free-text paths box is gone.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
Flet 桌面端的架构是"Python 进程 + 独立的通用 viewer 客户端"两个进程,导致一整类只能绕、不能修的问题:Dock 身份要靠复制 bundle/改 plist/重签名(core/viewer.py 整个模块为此存在),关窗行为要靠 pyobjc 隐藏 viewer 进程,而且实测发现
NSRunningApplication.hide()返回值不可靠,隐藏与最小化会叠加执行。决定整体迁移到 PySide6:单进程原生 app,这类问题从根上消失。改动与实现
gui_qt/(约 1,500 行):main_window(侧边栏导航 + 4Hz drain 定时器 + 生命周期)、run_page(拖放输入、增量行渲染、事件日志、通栏操作条)、history_page(分组卡片 + 查看/补译对话框)、settings_page(设置表单 + 模型管理/环境检查/应用内更新三个对话框)、theme(设计代币 + 浅/深两套 QSS + QPalette,跟随系统外观实时切换)、widgets(卡片/省略标签/toast)GuiViewModel和整个 core 零改动——视图层规则原样保留:UI 线程不碰磁盘/网络、增量渲染、i18n 全覆盖、切语言重挂载closeEvent → hide()(macOS;其他平台最小化),Dock 图标点击经ApplicationActivate事件恢复窗口,⌘Q 经 QuitRole 菜单真正退出;应用内更新器复用同一退出路径exec uv run scripto、uv 亦为 exec,Qt 进程就是 bundle 进程——删除 LSUIElement 后 Dock 只有一个 Scripto 图标,core/viewer.py(品牌化手术)整个删除engines/models.py的 HF 缓存路径在 import 时被 huggingface_hub 固化的问题(改为调用时从环境解析,附带解决了测试顺序耦合)验证
uv run pytest -q:147 passed / 5 skipped。新增 tests/test_gui_qt.py(offscreen 无头):窗口构建与导航、关窗隐藏而非退出、切语言重挂载、主题切换、drain 更新行与日志;CI 增加 Qt 无头运行库安装