2974 Commits

Author SHA1 Message Date
Wang Yu f86a0b5189 chore: update version to 7.0.70
- bump version to 7.0.70

Log : bump version to 7.0.70
7.0.70
2026-10-13 03:16:34 +00:00
wangyu 9ecf594923 fix: create runtime library symlinks for linglong package
In the linglong container, ldconfig -C "$LINGLONG_LD_SO_CACHE" failed
to make VLC runtime libraries discoverable, causing deepin-music to
fall back to QtPlayer whose supported format list is incomplete
(missing ac3/amr etc.), resulting in import failure for these formats.

Replace ldconfig with explicit symlink creation for required runtime
libraries (libvlccore, libvlc, libSDL2-2.0, libavcodec, libavformat,
libavutil, libswresample) so that VLC libraries are properly loaded
and VlcPlayer is used as the playback engine.

pms: BUG-379183
Log: create runtime library symlinks for linglong package
2026-10-13 02:49:22 +00:00
Wang Yu 6878c9cd37 chore: update version to 7.0.69
- bump version to 7.0.69

Log : bump version to 7.0.69
7.0.69
2026-10-10 03:13:29 +00:00
transifex-integration[bot] df22323f50 [skip CI] i18n: Translate deepin-music_en_US.ts in ru
100% translated source file: 'deepin-music_en_US.ts'
on 'ru'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] 9cc2111267 [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] 57a4329e23 [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] f12e52462c [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] 75d59b891f [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] c30e7d4953 [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] 25ec500a0f [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
transifex-integration[bot] 4ff32f6728 [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-10-09 07:49:06 +00:00
wangyu a82c24ec85 fix: resolve waveform race on track switch
1. Root cause: onBufferDetector() set m_stopFlag on a running thread
   but never called wait(); start() on a running QThread is a no-op so
   the new track's waveform detection never launched; the old thread's
   exit path also cleared m_curPath/m_curHash, overwriting the new
   track metadata just set by onBufferDetector()
2. Fix: introduce QMutex-protected request generation counter and
   pending-request queue; new requests arriving while the worker is
   running are queued and started via QThread::finished signal; stale
   thread results are discarded by generation check in resample and
   forwardAudioBuffer; QML side also filters stale buffers by hash
3. Impact: public audioBuffer signal and slot signatures unchanged;
   AudioAnalysis and all existing callers unaffected; new concurrency
   test covers the race scenario

Log: fix waveform progress bar anomaly on track switch

Influence:
1. Test waveform display when rapidly switching tracks
2. Test waveform display when playing from album page
3. Verify no stale waveform data after track switch

fix: 修复切歌时波形进度条状态异常

1. 根因:onBufferDetector() 在检测线程运行时仅设置 m_stopFlag 但未
   调用 wait() 等待线程退出,对运行中的线程调用 start() 是空操作导致
   新歌曲波形检测无法启动;旧线程退出时 clear m_curPath/m_curHash
   覆盖刚设置的新歌曲信息
2. 方案:引入 QMutex 保护的请求代际计数器和待处理请求队列;新请求在
   工作线程运行时排队,通过 QThread::finished 信号启动;resample 和
   forwardAudioBuffer 中通过代际检查丢弃过期结果;QML 侧通过 hash
   比较过滤过期波形数据
3. 影响:公开 audioBuffer 信号和槽签名未变,AudioAnalysis 及所有现有
   调用方不受影响;新增竞态测试覆盖切歌场景

Log: 修复切歌时波形进度条状态异常

Influence:
1. 测试快速切歌时的波形显示
2. 测试从专辑页面播放时的波形显示
3. 验证切歌后无过期波形数据残留

PMS: BUG-378709
2026-09-30 01:20:26 +00:00
Wang Yu c72fa0a600 chore: update version to 7.0.68
- bump version to 7.0.68

Log : bump version to 7.0.68
7.0.68
2026-09-23 12:52:18 +00:00
Wang Yu 8f6666f440 chore: migrate linglong deps to declarative buildext.apt
Remove manual install_dep/deploy_dep scripts and declare build and
runtime dependencies via buildext.apt in linglong.yaml.

移除手动 install_dep/deploy_dep 脚本,改为在 linglong.yaml 中通过
buildext.apt 声明构建和运行时依赖。

Log: 迁移玲珑依赖为声明式 buildext.apt
Influence: 构建流程简化,依赖由 linglong buildext 统一管理,无需手动脚本。
2026-09-23 12:46:44 +00:00
wangyu 7d3f84bf65 fix: remove always-on-top flag from settings dialog
1. Root cause: SettingsDialog.qml set Qt.WindowStaysOnTopHint
   causing the dialog to always stay on top of other windows
2. Fix: replace flags with Qt.Dialog | Qt.WindowCloseButtonHint
   and add modality Qt.WindowModal for proper modal dialog behavior
3. Impact: settings dialog no longer covers other app windows,
   works as a standard modal dialog without affecting other components

Log: Settings dialog no longer stays on top of other windows

Influence:
1. Test opening settings dialog and switching to other app windows
2. Verify settings dialog blocks parent window interaction (modal)
3. Verify close button and config saving still work correctly

fix: 移除设置对话框的始终置顶标志

1. 根因:SettingsDialog.qml 设置了 Qt.WindowStaysOnTopHint,导致
   设置对话框始终显示在其他窗口之上
2. 方案:将 flags 改为 Qt.Dialog | Qt.WindowCloseButtonHint,新增
   modality: Qt.WindowModal,使设置对话框作为常规模态对话框展示
3. 影响:设置对话框不再遮挡其他应用窗口,不影响其他组件行为

Log: 设置对话框不再始终置顶展示

Influence:
1. 测试打开设置对话框后切换到其他应用窗口
2. 验证设置对话框模态阻塞父窗口交互
3. 验证关闭按钮和配置保存功能正常

PMS: BUG-378317
2026-09-23 11:46:53 +00:00
Wang Yu ee6bd55067 chore: update version to 7.0.67
- bump version to 7.0.67

Log : bump version to 7.0.67
7.0.67
2026-09-03 06:42:18 +00:00
wangyu 8ff4899735 fix: add keyboard navigation for search dropdown
1. Root cause: SearchResultDialog.qml had no keyboard navigation;
   SearchEdit only handled Return key, arrow keys were consumed by
   TextField default cursor movement
2. Fix: add selectedIndex tracking, moveSelection/activateSelection
   methods and highlight in SearchResultDialog; add Keys.onDownPressed
   /onUpPressed and extend onReturnPressed in WindowTitlebar SearchEdit
3. Impact: users can now navigate search results with arrow keys and
   confirm with Enter; mouse interaction unchanged

Log: Search results now support keyboard navigation with arrow keys

Influence:
1. Test arrow key navigation in search result dropdown
2. Test Enter key to activate selected search result
3. Verify mouse hover and click still work as before

fix: 搜索结果下拉列表添加键盘导航

1. 根因:SearchResultDialog.qml 无键盘导航机制,SearchEdit 仅处理
   回车键,方向键被 TextField 默认光标移动行为消费
2. 方案:在 SearchResultDialog 添加 selectedIndex 追踪、
   moveSelection/activateSelection 方法和高亮显示;在 WindowTitlebar
   的 SearchEdit 添加方向键处理并扩展回车键逻辑
3. 影响:用户可通过方向键导航搜索结果并回车确认,鼠标交互不受影响

Log: 搜索结果支持方向键导航和回车选择

Influence:
1. 测试搜索结果下拉列表中方向键导航
2. 测试回车键激活选中的搜索结果
3. 验证鼠标悬停和点击功能无回归

PMS: BUG-375953
2026-09-03 05:22:53 +00:00
wangyu 92494baf59 fix: correct search dropdown position offset
1. Root cause: SearchResultDialog (Popup) used searchEdit.x which is
   a local coordinate relative to titleRowLayout, but Popup renders
   in Overlay layer with a different coordinate system
2. Fix: set parent to titleBar and use mapToItem() to convert
   searchEdit coordinates into titleBar coordinate system
3. Impact: only affects search result dropdown position, no change to
   search logic or event handling

Log: fix search result dropdown misalignment with search box

Influence:
1. Test searching by album name with songs in library
2. Verify dropdown appears below and centered on search box
3. Resize window and verify dropdown stays aligned

fix: 修复搜索关联栏位置错位

1. 根因:SearchResultDialog(Popup)使用 searchEdit.x 定位,但该值
   是相对于 titleRowLayout 的局部坐标,而 Popup 显示在 Overlay 层
   使用不同坐标系,导致下拉框偏移
2. 方案:将 Popup 的 parent 设为 titleBar,使用 mapToItem() 将
   searchEdit 坐标转换到 titleBar 坐标系后定位
3. 影响:仅影响搜索结果下拉框显示位置,不影响搜索逻辑和事件处理

Log: 修复搜索关联栏位置错位

Influence:
1. 测试搜索已导入歌曲的专辑名
2. 验证下拉框出现在搜索框正下方居中对齐
3. 调整窗口大小后验证下拉框保持对齐

PMS: BUG-375805
2026-09-02 05:58:08 +00:00
Cloud 1471c01f93 refactor: remove Windows start menu shortcut creation logic
Remove ensureStartMenuShortcut() which created a "深度音乐.lnk" shortcut in the
Windows Start Menu Programs folder on launch, along with its declaration in
winsmtc.h, the call site in main.cpp, the WINSMTC_AUMID macro, and the
now-unused includes (QDir, shlobj, shobjidl, propkey, propvarutil).

refactor: 移除 Windows 开始菜单快捷方式创建逻辑

移除 ensureStartMenuShortcut() 函数,该函数原在应用启动时于 Windows 开始菜单
Programs 目录下创建"深度音乐.lnk"快捷方式;同时移除 winsmtc.h 中的声明、
main.cpp 中的调用、WINSMTC_AUMID 宏,以及随之不再使用的头文件包含
(QDir、shlobj、shobjidl、propkey、propvarutil)。
2026-09-01 08:55:59 +00:00
Wang Yu 2f6ef7e0b1 fix(lyrics): parse repeated LRC timestamps as separate lines
Lines like [00:01.00][00:02.00]same line were misparsed as word-timed
lyrics. Now only treat a line as word-timed when each intermediate
timestamp is followed by lyric text.

形如 [00:01.00][00:02.00]同一句歌词 的多时间标签行,此前被误判为逐字歌词。
现在只有当每个中间时间标签后都跟有歌词文本时,才按逐字歌词解析。
多个时间标签会生成多条同文本的独立歌词行。

Log: 修复重复时间标签 LRC 行被误判为逐字歌词的问题
Influence: 修复后带多个时间标签的歌词行按多行独立显示,逐字歌词解析不再被误触发,歌词同步更准确。
2026-09-01 06:08:10 +00:00
transifex-integration[bot] 8772f18856 [skip CI] i18n: Translate deepin-music_en_US.ts in pl
100% translated source file: 'deepin-music_en_US.ts'
on 'pl'.
2026-09-01 05:05:46 +00:00
transifex-integration[bot] 763aacbe17 [skip CI] i18n: Translate deepin-music_en_US.ts in ar
100% translated source file: 'deepin-music_en_US.ts'
on 'ar'.
2026-09-01 05:05:46 +00:00
transifex-integration[bot] 015e0581e5 [skip CI] i18n: Translate deepin-music_en_US.ts in sv
100% translated source file: 'deepin-music_en_US.ts'
on 'sv'.
2026-09-01 05:05:46 +00:00
Wang Yu ad313cbe5b fix: clean up partial WinSMTC initialization in shutdown
shutdown() early-returned when m_initialized was false, skipping cleanup of
partial state. Now cleanup runs if any of SMTC/updater/props/RO init exist.

shutdown() 在 m_initialized 为 false 时直接返回,跳过了部分初始化状态的清理。
现在只要 SMTC/更新器/属性/RO 初始化任一存在,清理逻辑均会执行。

Log: 修复 WinSMTC 部分初始化时资源未清理的问题
Influence: 修复 Windows 下初始化中途失败时 SMTC 资源泄漏,避免系统媒体控件残留。
2026-08-31 06:10:28 +00:00
Cloud b5980e22b7 fix: correct QML signal handler syntax in WindowTitlebar
Replace the deprecated `function onSignal(...)` form with the proper
`onSignal: function(...)` syntax for the searchItemTriggered handler
in SearchResultDialog. The old form is not supported by newer QML
engines and prevented the handler from being invoked.

fix: 修正 WindowTitlebar 中的 QML 信号处理器语法

将 SearchResultDialog 中 searchItemTriggered 信号处理器由已弃用的
`function onSignal(...)` 形式改为正确的 `onSignal: function(...)` 语法。
旧写法在新版 QML 引擎中不受支持,会导致处理器无法被正常调用。
2026-08-31 05:18:45 +00:00
Cloud e043ec7dd1 fix: remove forced poll.h include workaround for VLC headers
The `add_definitions(-include poll.h)` was a workaround because VLC
headers call poll() without including poll.h. Drop the workaround from
src/libdmusic/CMakeLists.txt along with its explanatory comment.

fix: 移除 VLC 头文件强制包含 poll.h 的 workaround

此前由于 VLC 头文件调用 poll() 但未包含 poll.h,通过
`add_definitions(-include poll.h)` 强制包含以绕过该问题。
现从 src/libdmusic/CMakeLists.txt 中移除该 workaround 及对应注释。
2026-08-31 03:06:23 +00:00
Cloud ed6f91bc25 fix: resolve QML compatibility issues and add null safety checks
- Update QML signal handlers to function syntax (Qt 6.x compat)
- Add null checks for currentData/parent to prevent crashes
- Update SPDX copyright year to 2026
- Replace hardcoded Chinese strings with qsTr for i18n
- Remove commented-out dead code
- Guard update() call in shaderdataview.cpp before component is ready

fix: 修复 QML 兼容性问题并增强空值保护

- 更新 QML 信号处理语法为函数式写法 (Qt 6.x 兼容)
- 添加多处 currentData/parent 空值检查,防止崩溃
- 更新 SPDX 许可证年份至 2026
- 修复硬编码中文字符串,使用 qsTr 国际化
- 移除冗余注释代码
- 修复 shaderdataview.cpp 组件未就绪时的 update 调用
2026-08-31 03:01:25 +00:00
Cloud 26a955cbcc fix: harden WinSMTC teardown and fix SMTC play fallback per review
- Store the ButtonPressed registration token as a member and remove it
  in shutdown() before releasing SMTC, fixing use-after-free crash when
  a media key is dispatched after the app exits
- Guard setWinSMTC() against double initialization to avoid leaking the
  old WinSMTC object and duplicate signal connections
- Move engine.rootObjects() emptiness check before first access in
  main.cpp to avoid undefined behavior when QML loading fails
- Make the SMTC play fallback actually start playback (play() falls
  back to forcePlay() when the current meta has no localPath)
- Pair RoInitialize/RoUninitialize and CoInitializeEx/CoUninitialize,
  and validate DataWriter StoreAsync results

fix: 加固 WinSMTC 释放流程并修复 SMTC 播放回退

- ButtonPressed 注册 token 保存为成员,shutdown() 中先解绑再释放 SMTC,
  修复应用退出后系统派发媒体键导致的 use-after-free 崩溃
- setWinSMTC() 增加双重初始化保护,避免泄漏旧对象并重复 connect
- main.cpp 将 engine.rootObjects() 判空上移到首次访问之前,
  避免 QML 加载失败时的未定义行为
- SMTC 播放回退改为真正触发播放(当前曲目无 localPath 时 play()
  内部走 forcePlay()),按“播放”必定有声音
- 配对 RoInitialize/RoUninitialize 与 CoInitializeEx/CoUninitialize,
  并校验 DataWriter StoreAsync 返回值
2026-08-31 01:50:29 +00:00
Cloud 81b0034e7f feat: add Windows SMTC support and wrap MPRIS in Linux-only guards
- Add Windows System Media Transport Controls (SMTC) support
- Wrap MprisPlayer include and usage in Q_OS_LINUX ifdef
- Use void* placeholder for non-Linux platforms to maintain ABI
- Add platform guards for setMprisPlayer in presenter and main
- Update tests to conditionally compile MPRIS-dependent code

feat: 添加 Windows SMTC 支持并为 MPRIS 添加 Linux 条件编译

- 新增 Windows System Media Transport Controls (SMTC) 支持
- 使用 Q_OS_LINUX ifdef 将 MprisPlayer 包裹为仅 Linux 可用
- 非 Linux 平台使用 void* 占位符保持 ABI 兼容
- 为 presenter 和 main 中的 setMprisPlayer 添加平台保护
- 更新测试代码的条件编译
2026-08-31 01:50:29 +00:00
Cloud a6d91bcde7 fix: word highlight 500ms early and 1-digit fraction timestamps dropped
Pass the original playback position to LyricRect.currentPosition in
LyricPage.positionChange(); the +500ms offset is now only used for the
line-scroll look-ahead binary search, so word-by-word (karaoke)
highlighting no longer runs 500ms ahead.

Relax the timestamp regex from \d{2,3} to \d{1,3} and handle one-digit
fractions (*100) in parseTimeStamp, so legacy timestamps like [01:23.4]
are no longer silently dropped.

fix: 修复逐字歌词高亮提前500ms及一位小数时间戳被丢弃

- LyricPage.qml 中 currentPosition 改为使用原始播放位置,+500ms 偏移
  仅用于提前滚动当前行的二分查找,避免逐字卡拉OK式高亮提前 500ms。
- 时间戳正则放宽为支持 1~3 位小数,parseTimeStamp 对 1 位小数做 *100
  处理,形如 [01:23.4] 的旧格式时间戳不再被静默丢弃。
2026-08-31 01:14:41 +00:00
Cloud eb1d741c1b feat: support word-by-word lyric parsing and highlighting
- Add LyricWord struct for per-word timing data
- Parser supports LRC word-by-word format (e.g. [00:27.94]持[00:28.26]有)
- Fix centisecond parsing to correctly convert 1/100s to milliseconds
- LyricPage/LyricRect add word-by-word rendering with per-word highlight
- Presenter passes word timing data to QML layer
- Add related unit tests

feat: 支持逐字歌词解析与高亮显示

- 新增 LyricWord 结构体,用于存储逐字歌词的时间轴数据
- 解析器支持 LRC 逐字格式(如 [00:27.94]持[00:28.26]有)
- 修复厘秒解析,正确将百分之一秒转换为毫秒
- LyricPage/LyricRect 添加逐字歌词渲染逻辑,支持逐字高亮
- Presenter 传递逐字歌词数据到 QML 层
- 添加相关单元测试
2026-08-31 01:14:41 +00:00
Cloud bc7fe7090a fix: improve search result UI and navigation
- Overhaul SearchResultWindow navigation with StackView for push/pop transitions
- Adjust grid cell sizes for better artist and album display
- Add requestClose signal and padding/radius improvements to SearchResultDialog
- Remove sidebar auto-uncheck behavior when entering search page
- Fix connection handlers for artist and album detail navigation

fix: 优化搜索结果UI和导航

- 使用StackView重构SearchResultWindow导航,支持推入/弹出过渡动画
- 调整网格单元格大小以改善歌手和专辑显示
- 为SearchResultDialog添加requestClose信号和内边距/圆角改进
- 移除进入搜索页面时侧边栏自动取消勾选的行为
- 修复歌手和专辑详情页导航的连接处理
2026-08-31 01:08:44 +00:00
Cloud 9b7ccc25df fix: resolve UI centering and alignment issues
- Fix vertical centering of title column and time text in Toolbar
- Add vertical alignment to title label in AllMusicListDelegate
- Fix playlist delegate horizontal centering and dynamic width in CurrentPlayList
- Adjust header column width and title offset in ArtistSublistView
- Fix text vertical centering in WaveformRect
- Add row number column and play button centering in ArtistSublistDelegate

fix: 解决UI居中和对齐问题

- 修复工具栏标题列和时间文本的垂直居中
- 在AllMusicListDelegate中为标题标签添加垂直对齐
- 修复播放列表委托的水平居中和动态宽度
- 调整ArtistSublistView中的标题列宽度和偏移
- 修复WaveformRect中的文本垂直居中
- 在ArtistSublistDelegate中添加行号列和播放按钮居中
2026-08-31 01:06:16 +00:00
Cloud 045029869e fix: ensure directories exist before use and update cover metadata
- Pre-create config/cache/database directories using QDir::mkpath()
  to fix build on MSYS2 where directories may not exist yet
- Simplify directory creation logic in MusicSettings
- Emit metaChanged signal when cover is ready for current playing media
- Fetch latest cover/lyric metadata from database in getActivateMeta()

fix: 确保目录在使用前已创建,并修复封面元数据更新

- 使用 QDir::mkpath() 预创建配置/缓存/数据库目录,
  修复 MSYS2 构建时目录不存在的问题
- 简化 MusicSettings 中的目录创建逻辑
- 当前播放歌曲的封面就绪时发送 metaChanged 信号
- 在 getActivateMeta() 中从数据库获取最新的封面和歌词路径
2026-08-31 01:03:46 +00:00
liuzhangjian 0df0f3c349 fix: update Arabic (ar) translations
Complete all unfinished Arabic translation entries in .ts files.
2026-08-31 00:59:05 +00:00
Cloud 19619faf92 fix: always recalculate position to prevent issues on window resize
Remove the conditional check that only calculated the position when
defaultY was negative. Now the position is recalculated every time
on hover, preventing layout issues when the window size changes.

fix: 每次都重新计算,防止窗口大小变化时有问题

移除仅在 defaultY 为负值时才计算位置的条件判断。
现在悬停时每次都重新计算位置,防止窗口大小变化时出现布局问题。
2026-08-26 11:34:59 +00:00
Cloud 89e2c65209 chore: update shader files for Windows GLSL compatibility
- Update GLSL shader for cross-platform rendering
- Regenerate binary QSB shader files for Vulkan/OpenGL compatibility
- Update cusVertex.qsv vertex shader

chore: 更新着色器文件以兼容 Windows GLSL

- 更新 GLSL 着色器源码以支持跨平台渲染
- 重新生成二进制 QSB 着色器文件以兼容 Vulkan/OpenGL
- 更新 cusVertex.qsv 顶点着色器
2026-08-26 11:30:26 +00:00
Cloud deba8ae824 fix: improve VLC engine detection and null safety
- Add null pointer safety guards for m_qvplayer in all VLC player methods
- Replace inline VLC library detection with DynamicLibraries singleton
- Set playback engine type to VLC when dynamic libraries load successfully

fix: 优化VLC引擎检测和空值安全

- 在所有VLC播放器方法中为m_qvplayer添加空指针安全保护
- 使用DynamicLibraries单例替换内联VLC库检测
- 当动态库加载成功时设置播放引擎类型为VLC
2026-08-26 11:27:44 +00:00
Cloud b6f67c060b fix: remove SystemPalette and use hardcoded colors in sidebar
fix: 移除 SystemPalette,侧边栏使用硬编码颜色
2026-08-26 11:24:26 +00:00
Cloud 37efb9c89b fix: Use version-agnostic library names for FFmpeg DLLs on Windows
Remove hardcoded version suffixes (e.g. avcodec-63) from FFmpeg library
names so that libPath's wildcard matching can automatically resolve the
latest available version at runtime.

fix: Windows 下使用无版本号的 FFmpeg 库名以实现动态适配

移除 FFmpeg 库名中硬编码的版本号后缀(如 avcodec-63),使 libPath 的通配
符匹配机制能够自动解析运行时可用的最新版本,避免因 FFmpeg 版本更替导致
库加载失败。
2026-08-26 11:22:11 +00:00
Cloud 08f6b9539b fix: disable unnecessary VLC modules and add Qt6::DBus dependency
fix: 禁用不需要的 VLC 模块,添加 Qt6::DBus 依赖
2026-08-26 11:18:50 +00:00
Cloud 4614a75973 fix: Windows file location support
- Use explorer /select, to open file location on Windows
- Keep Linux DBus implementation unchanged
2026-08-26 11:16:12 +00:00
Cloud 80f7f20d5e fix: QtPlayer volume setting - convert int to qreal
- Fix setFadeInOutFactor to use proper volume scaling (0.0-1.0 range)
- Fix setVolume to divide by 100.0 for correct volume level
2026-08-26 11:12:38 +00:00
zhangkun bb84143448 chore: bump version to 7.0.66
update changelog to 7.0.66

Log: update changelog to 7.0.66
7.0.66
2026-08-20 00:55:27 +00:00
deepin-admin-bot f7cace0ba9 chore: Sync by https://github.com/linuxdeepin/.github/commit/a300f8523d4876677112edab6a0772f7ad112976
sync by github workflow

Log: none
Influence: none
2026-08-19 08:14:24 +00:00
Wang Yu 9d0ad7b207 fix(album): restore clickability of empty-state buttons
Raise AlbumDefaultPage above the full-page DropArea.

Log: 修复专辑默认页按钮无法点击问题
PMS: BUG-374225
Influence: 确保专辑为空时,默认页中的添加歌曲和打开文件夹按钮可以正常响应点击。
2026-08-19 06:43:06 +00:00
Wang Yu 776fc6f2b3 fix(window): handle dialog flags and close actions safely
Avoid undefined window flags and handle deferred close dialogs safely.

修复窗口 flags 未定义及关闭对话框延迟加载时的退出处理。

Log: 修复对话框 flags 和关闭行为

PMS: BUG-373421

Influence: 消除相关 QML 警告,确保退出、最小化和关闭确认行为正确。
2026-08-19 03:36:14 +00:00
Wang Yu cf981e999f fix(startup): refresh queue count without playlist view
Provide queue count helpers for deferred playlist UI updates.

补齐延迟播放列表界面的队列计数辅助函数,确保状态更新可用。

Log: 修复播放队列计数更新

PMS: BUG-373421

Influence: 避免延迟加载时调用未定义函数,保证上一首和下一首状态正确刷新。
2026-08-19 03:10:15 +00:00
Wang Yu 591b6f546e chore(qml): update Connections signal handler syntax
Use explicit function handlers for Qt 5 and Qt 6 compatibility.

将 Connections 信号处理器改为显式函数写法,兼容 Qt 5 和 Qt 6。

Log: 清理 QML Connections 弃用警告

PMS: BUG-373421

Influence: 消除启动时的 Connections 弃用警告,不改变业务逻辑。
2026-08-19 02:56:33 +00:00
Wang Yu 76177b9eb7 fix(database): migrate legacy music columns safely
Check existing musicNew columns before applying schema updates.

更新数据库结构前检查 musicNew 现有字段,避免重复添加导致初始化失败。

Log: 修复旧数据库字段迁移

PMS: BUG-373421

Influence: 提升旧版本数据库兼容性,避免启动时数据库迁移失败。
2026-08-19 02:42:07 +00:00