Skip to content

refactor: optimize plugin loading and QML registration#3143

Open
caixr23 wants to merge 81 commits into
linuxdeepin:dcc-coredumpfrom
caixr23:master
Open

refactor: optimize plugin loading and QML registration#3143
caixr23 wants to merge 81 commits into
linuxdeepin:dcc-coredumpfrom
caixr23:master

Conversation

@caixr23
Copy link
Copy Markdown
Contributor

@caixr23 caixr23 commented Apr 2, 2026

This refactor improves plugin management by separating QML registration from plugin object creation. Key changes include:

  1. Added QML_ENGINE_PROPERTY constant for QML engine property name
  2. Modified DCC_FACTORY_CLASS macro to accept variadic arguments for QML registration
  3. Added dccObject() method in factory to handle QML type registration on main thread
  4. Created containsByName() method for more efficient module filtering
  5. Improved plugin loading sequence with proper thread management
  6. Moved all QML registration calls from constructors to factory's dccObject() method
  7. Removed unnecessary QML integration headers from model classes

The changes ensure QML type registration happens on the main thread while plugin objects are created in worker threads, preventing threading issues and improving performance.

Log: Optimized plugin loading process and QML registration

Influence:

  1. Test plugin loading and module display in control center
  2. Verify all QML components are properly registered and accessible
  3. Check module hiding functionality with wildcard patterns
  4. Test thread safety during plugin initialization
  5. Verify no regression in existing functionality

refactor: 优化插件加载和 QML 注册流程

本次重构改进了插件管理机制,将 QML 注册与插件对象创建分离。主要变更
包括:

  1. 添加 QML_ENGINE_PROPERTY 常量用于 QML 引擎属性名
  2. 修改 DCC_FACTORY_CLASS 宏支持可变参数用于 QML 注册
  3. 在工厂类中添加 dccObject() 方法处理主线程中的 QML 类型注册
  4. 创建 containsByName() 方法实现更高效的模块过滤
  5. 改进插件加载序列,优化线程管理
  6. 将所有 QML 注册调用从构造函数移至工厂的 dccObject() 方法
  7. 从模型类中移除不必要的 QML 集成头文件

这些变更确保 QML 类型注册在主线程执行,而插件对象在工作线程创建,避免线
程问题并提升性能。

Log: 优化插件加载过程和 QML 注册机制

Influence:

  1. 测试控制中心插件加载和模块显示
  2. 验证所有 QML 组件正确注册并可访问
  3. 检查通配符模式下的模块隐藏功能
  4. 测试插件初始化期间的线程安全性
  5. 验证现有功能无回归

PMS: BUG-309197

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @caixr23, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: caixr23

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

18202781743 and others added 28 commits April 9, 2026 05:24
The image provider has been refactored to eliminate mutex locks and
implement fully asynchronous processing. The main changes include:
1. Removed QMutex and QMutexLocker usage entirely, replacing thread
synchronization with thread-safe Qt signals/slots
2. Restructured CacheImageResponse to be a pure response container
without loading logic
3. Created ImageTask as a QRunnable that loads images asynchronously on
QThreadPool::globalInstance()
4. Implemented a pending response tracking system using QMultiMap to
handle multiple requests for the same image
5. Added proper thread affinity management with moveToThread() for
responses
6. Simplified cache key generation with a dedicated makeCacheKey()
method

The refactoring addresses performance issues by removing contention on
mutex locks during image loading. Multiple requests for the same image
now share the same loading task instead of creating duplicate tasks. The
response objects are properly managed with QPointer to handle potential
deletion during asynchronous operations.

Influence:
1. Test image loading with different sizes and formats
2. Verify concurrent requests for the same image don't create duplicate
loading tasks
3. Test image provider with invalid image paths to ensure proper error
handling
4. Verify memory management and proper cleanup of response objects
5. Test performance under high load with multiple simultaneous image
requests
6. Ensure thread safety without race conditions in the new async
architecture

refactor: 移除图标处理中的互斥锁,使用异步处理

图像提供器已重构,消除了互斥锁并实现了完全异步处理。主要变更包括:
1. 完全移除了QMutex和QMutexLocker的使用,用线程安全的Qt信号/槽替代线程
同步
2. 重构CacheImageResponse为纯响应容器,不包含加载逻辑
3. 创建ImageTask作为QRunnable,在QThreadPool::globalInstance()上异步加载
图像
4. 实现了使用QMultiMap的待处理响应跟踪系统,处理同一图像的多个请求
5. 通过moveToThread()为响应添加了适当的线程亲和性管理
6. 使用专用的makeCacheKey()方法简化了缓存键生成

此次重构解决了图像加载期间互斥锁争用导致的性能问题。现在对同一图像的多个
请求共享相同的加载任务,而不是创建重复任务。响应对象通过QPointer进行适当
管理,以处理异步操作期间可能的删除操作。

Influence:
1. 测试不同尺寸和格式的图像加载
2. 验证对同一图像的并发请求不会创建重复的加载任务
3. 测试图像提供器使用无效图像路径时的错误处理
4. 验证内存管理和响应对象的正确清理
5. 测试高负载下多个同时图像请求的性能
6. 确保新异步架构中的线程安全,避免竞态条件
1. Extracted plugin factory preparation logic from
LoadPluginTask::doLoadSo() into new method preparePluginFactory()
2. Modified LoadPluginTask::doLoadSo() to LoadPluginTask::createData()
that uses pre-prepared factory
3. Added factory pointer to PluginData structure to store prepared
factory instance
4. Moved factory preparation to occur before loadModule() in plugin
loading sequence
5. Simplified createData() method to focus only on object creation from
factory
6. Added proper cleanup of factory pointer in PluginManager destructor

This refactoring separates factory preparation from object creation,
allowing factory initialization to happen earlier in the plugin loading
process. The change improves code organization by separating concerns:
factory loading/validation vs. object instantiation. This prepares
for potential optimizations where factory preparation could be done in
parallel or at different stages of application startup.

Influence:
1. Verify plugin loading still works correctly for all control center
modules
2. Test plugin loading with both valid and invalid .so files
3. Verify error handling when factory preparation fails
4. Test memory management and cleanup of factory instances
5. Ensure plugin status updates are still emitted correctly
6. Verify thread safety during factory preparation and object creation
7. Test with plugins that have parent/child relationships in their
created objects

refactor: 将插件工厂准备逻辑前移到模块加载之前执行

1. 从 LoadPluginTask::doLoadSo() 中提取插件工厂准备逻辑到新的
preparePluginFactory() 方法
2. 将 LoadPluginTask::doLoadSo() 重命名为 LoadPluginTask::createData(),
使用预先准备的工厂
3. 在 PluginData 结构中添加工厂指针以存储准备好的工厂实例
4. 将工厂准备移动到插件加载序列中的 loadModule() 之前执行
5. 简化 createData() 方法,专注于从工厂创建对象
6. 在 PluginManager 析构函数中添加工厂指针的适当清理

此次重构将工厂准备与对象创建分离,允许工厂初始化在插件加载过程的更早阶段
进行。这一改动通过分离关注点(工厂加载/验证 vs. 对象实例化)改善了代码组
织。这为潜在的优化做好了准备,工厂准备可以并行进行或在应用程序启动的不同
阶段执行。

Influence:
1. 验证所有控制中心模块的插件加载是否仍然正常工作
2. 测试使用有效和无效 .so 文件的插件加载
3. 验证工厂准备失败时的错误处理
4. 测试工厂实例的内存管理和清理
5. 确保插件状态更新仍然正确发出
6. 验证工厂准备和对象创建期间的线程安全性
7. 测试具有父子关系的插件对象的创建
Changed plugin loading logic to ensure all plugins complete their module
phase before any plugin starts the data phase. Previously, when a plugin
reached ModuleEnd status, it would immediately proceed to LoadPluginTask
for data loading. Now, the system waits until all plugins have finished
their module phase (ModuleEnd, ModuleErr, or PluginEnd status) before
starting data loading for any plugin.

Key changes:
1. Added m_modulePhaseFinished flag to track module phase completion
2. Added allModulesFinished() method to check if all plugins have
completed module phase
3. Added loadPluginData() method extracted from original loadPlugin()
logic
4. Added onModulePhaseFinished() slot to handle transition to data phase
5. Modified loadPlugin() to check module phase completion before
proceeding to data loading
6. Connected modulePhaseFinished signal to onModulePhaseFinished slot

This ensures that plugins don't start their data loading (createData())
until all plugins have completed their module initialization, preventing
potential race conditions and ensuring proper synchronization between
plugins.

Log: Fixed plugin loading synchronization issue

Influence:
1. Test plugin loading with multiple plugins to ensure all complete
module phase before data phase starts
2. Verify that plugins with ModuleEnd status wait for others before
proceeding
3. Test edge cases where some plugins may have ModuleErr or PluginEnd
status
4. Verify that the m_modulePhaseFinished flag is properly reset when
needed
5. Test plugin loading performance to ensure no regression
6. Verify that hidden plugins (not visibleToApp) still follow the
synchronization logic

fix: 同步插件数据阶段加载

修改插件加载逻辑,确保所有插件完成模块阶段后再开始数据阶段。之前,当插件
达到 ModuleEnd 状态时,会立即进入 LoadPluginTask 进行数据加载。现在,系
统会等待所有插件完成模块阶段(ModuleEnd、ModuleErr 或 PluginEnd 状态)后
才开始任何插件的数据加载。

主要变更:
1. 添加 m_modulePhaseFinished 标志来跟踪模块阶段完成状态
2. 添加 allModulesFinished() 方法来检查所有插件是否已完成模块阶段
3. 添加 loadPluginData() 方法,从原始 loadPlugin() 逻辑中提取
4. 添加 onModulePhaseFinished() 槽函数来处理向数据阶段的过渡
5. 修改 loadPlugin() 以在进入数据加载前检查模块阶段完成状态
6. 连接 modulePhaseFinished 信号到 onModulePhaseFinished 槽

这确保了插件在所有插件完成模块初始化之前不会开始数据加载
(createData()),防止潜在的竞争条件并确保插件之间的正确同步。

Log: 修复插件加载同步问题

Influence:
1. 测试多插件加载,确保所有插件在数据阶段开始前完成模块阶段
2. 验证具有 ModuleEnd 状态的插件在继续之前会等待其他插件
3. 测试某些插件可能具有 ModuleErr 或 PluginEnd 状态的边缘情况
4. 验证 m_modulePhaseFinished 标志在需要时正确重置
5. 测试插件加载性能,确保没有回归问题
6. 验证隐藏插件(不可见)仍然遵循同步逻辑
1. Added QQmlParserStatus interface to DccObject to track QML component
lifecycle
2. Introduced m_componentComplete flag to track when component
construction is finished
3. Modified setIcon() to delay icon source resolution until
componentComplete() is called
4. Added updateIconSource() private method to handle icon URL resolution
logic
5. Added componentComplete() override to set completion flag and trigger
icon source update
6. Added classBegin() override as required by QQmlParserStatus interface
7. Made DccObject inherit from QQmlParserStatus and added Q_INTERFACES
macro
8. Added friend declaration for DccModel class to access private members

This fix addresses an issue where icon source resolution was attempted
during QML component construction phase when the QQmlContext might
not be fully initialized. By deferring the URL resolution until
componentComplete(), we ensure the context is properly set up,
preventing potential crashes or incorrect icon paths.

Log: Fixed icon loading issues during control center module
initialization

Influence:
1. Test icon loading for all control center modules
2. Verify icons appear correctly after QML component initialization
3. Test dynamic icon changes after component completion
4. Verify no crashes during control center startup
5. Test icon resolution with both relative and absolute paths
6. Verify icon updates when setIcon() is called after component
completion

fix: 延迟图标源解析直到组件完成

1. 为 DccObject 添加 QQmlParserStatus 接口以跟踪 QML 组件生命周期
2. 引入 m_componentComplete 标志来跟踪组件构造何时完成
3. 修改 setIcon() 方法,将图标源解析延迟到 componentComplete() 被调用时
4. 添加 updateIconSource() 私有方法来处理图标 URL 解析逻辑
5. 添加 componentComplete() 重写以设置完成标志并触发图标源更新
6. 添加 classBegin() 重写以满足 QQmlParserStatus 接口要求
7. 使 DccObject 继承自 QQmlParserStatus 并添加 Q_INTERFACES 宏
8. 为 DccModel 类添加友元声明以访问私有成员

此修复解决了在 QML 组件构造阶段尝试解析图标源时 QQmlContext 可能未完全初
始化的问题。通过将 URL 解析延迟到 componentComplete(),我们确保上下文已
正确设置,防止潜在的崩溃或错误的图标路径。

Log: 修复控制中心模块初始化期间的图标加载问题

Influence:
1. 测试所有控制中心模块的图标加载
2. 验证 QML 组件初始化后图标是否正确显示
3. 测试组件完成后的动态图标更改
4. 验证控制中心启动期间无崩溃
5. 测试相对路径和绝对路径的图标解析
6. 验证组件完成后调用 setIcon() 时的图标更新
…ions

开源软件声明中排版换行空隙较大,影响滚动查看。修复方案是删除package:标识前后的空行,其余排版不变

PMS: BUG-355359
1. Changed PluginManager::addObject signal connection from
Qt::QueuedConnection to direct connection to ensure immediate object
addition
2. Modified tryShow() condition to check m_showTimer instead of
m_activeObject for determining when to clear show parameters
3. Added fallback to show root page when no active object exists after
clearing show parameters
4. Reordered emit sequence in addMainObject() to ensure addObject
signals are emitted before the final updatePluginStatus signal

Log: Fixed control center page display issues when loading plugins

Influence:
1. Test control center startup with various plugin configurations
2. Verify page navigation works correctly after plugin loading
3. Test D-Bus show requests with different URL parameters
4. Ensure plugin objects are properly added and displayed
5. Verify root page displays correctly when no specific page is
requested

fix: 修复控制中心插件加载和页面显示逻辑

1. 将 PluginManager::addObject 信号连接从 Qt::QueuedConnection 改为直接
连接,确保对象立即添加
2. 修改 tryShow() 条件,使用 m_showTimer 代替 m_activeObject 来判断何时
清除显示参数
3. 添加在清除显示参数后没有活动对象时回退显示根页面的逻辑
4. 重新排序 addMainObject() 中的信号发射顺序,确保 addObject 信号在最终
的 updatePluginStatus 信号之前发射

Log: 修复控制中心在加载插件时的页面显示问题

Influence:
1. 测试控制中心在不同插件配置下的启动情况
2. 验证插件加载后的页面导航功能是否正常
3. 测试使用不同URL参数的D-Bus显示请求
4. 确保插件对象被正确添加和显示
5. 验证当没有特定页面请求时根页面是否正确显示
…cation password pop-up window

DConfig配置中com.deepin.dde.control-center的bootGrubUserNameVisible配置项缺失,导致无法控制启动菜单验证的验证密码弹窗中的用户名是否显示,修复方案是在dconfig的commoninfo模块新增bootGrubUserNameVisible配置项,并在CommonInfoModel中新增属性,CommonInfoWorker监听DConfig中对应配置项变化后更新该属性,去更改用户名label和lineeditor的visible状态,实时控制用户名:root是否显示

PMS: BUG-353719
1. Modified the createdItem method in DccRepeater to search for a
suitable DccObject parent in the object hierarchy
2. Instead of always setting the current instance as parent, now
traverses parent chain to find a named DccObject
3. When a named DccObject parent is found, sets the new item as its
child and adds to its internal object list
4. Falls back to original behavior (current instance as parent) if no
suitable parent is found
5. This improves object hierarchy management and parent-child
relationships in the control center plugin system

Influence:
1. Test creation of DccRepeater items with various parent hierarchies
2. Verify that items are correctly parented to named DccObject ancestors
when available
3. Test fallback behavior when no named DccObject parent exists in
hierarchy
4. Verify object addition signals are still emitted correctly
5. Test with complex nested object structures to ensure proper parent
assignment

feat: 改进 DccRepeater 父对象分配逻辑

1. 修改 DccRepeater 中的 createdItem 方法,在对象层次结构中搜索合适的
DccObject 父对象
2. 不再总是将当前实例设为父对象,而是遍历父链查找具有名称的 DccObject
3. 当找到具有名称的 DccObject 父对象时,将新项目设为其子项并添加到其内部
对象列表
4. 如果未找到合适的父对象,则回退到原始行为(将当前实例作为父对象)
5. 这改进了控制中心插件系统中的对象层次结构管理和父子关系

Influence:
1. 测试具有不同父层次结构的 DccRepeater 项目创建
2. 验证当存在命名 DccObject 祖先时,项目是否正确地父级化
3. 测试当层次结构中不存在命名 DccObject 父对象时的回退行为
4. 验证对象添加信号是否仍正确发出
5. 使用复杂的嵌套对象结构进行测试,确保正确的父级分配
update changelog to 6.1.81

Log: update changelog to 6.1.81
* i18n: Translate dde-control-center_en.ts in zh_HK

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in zh_TW

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in zh_CN

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

---------

Log:
Add current time display (HH:mm format) to timezone description and
implement minute-level updates for user timezone model data.

为时区信息添加实时时间显示,并实现每分钟更新用户时区模型数据。

Log: 添加时区实时时间显示功能
PMS: BUG-353159
Influence: 用户在查看时区信息时可以看到实时时间,提升用户体验。
1. Add explicit visibility bindings to all three main pages (loading
page, home page, and second page)
2. Bind each page's visibility to its corresponding
stackView.currentIndex to ensure only the active page is rendered
3. Prevent unnecessary rendering and potential performance issues from
inactive pages remaining visible in the background
4. Improve memory usage and rendering efficiency by properly managing
page lifecycle

Log: Optimized page switching performance and fixed potential visual
glitches

Influence:
1. Test page switching between loading, home, and second pages for
smooth transitions
2. Verify no visual artifacts or overlapping content during page
navigation
3. Check memory usage remains stable during repeated page switches
4. Test rapid navigation between pages to ensure visibility states
update correctly
5. Verify sidebar functionality remains intact on the second page
6. Test application startup to ensure loading page displays correctly
before home page appears

fix: 优化 DccWindow 中的页面可见性管理

1. 为三个主要页面(加载页面、主页和二级页面)添加显式的可见性绑定
2. 将每个页面的可见性绑定到对应的 stackView.currentIndex,确保只有活动页
面被渲染
3. 防止非活动页面在后台保持可见导致的渲染问题和潜在性能问题
4. 通过正确管理页面生命周期来改善内存使用和渲染效率

Log: 优化页面切换性能,修复潜在的视觉异常问题

Influence:
1. 测试加载页面、主页和二级页面之间的切换,确保过渡流畅
2. 验证页面导航期间无视觉伪影或内容重叠现象
3. 检查重复页面切换时内存使用保持稳定
4. 测试快速页面导航,确保可见性状态正确更新
5. 验证二级页面上的侧边栏功能保持正常
6. 测试应用启动流程,确保加载页面在主页出现前正确显示

Fixes: #353225
Log: During window maximisation, when `saveSize()` is triggered by the `widthChanged`/`heightChanged` signals, the screen dimensions override the previously saved normal window dimensions; furthermore, `width()`/`height()` use a ‘strictly greater than’ condition, causing the minimum boundary values to be incorrectly judged as invalid.

pms: bug-353601
1. Added `app->setQuitOnLastWindowClosed(false)` in main.cpp to prevent
automatic application quit when the last window is closed
2. Added `onClosing` handler in DccWindow.qml that calls `Qt.quit()`
using `Qt.callLater()` to ensure proper application termination
3. Added console log for debugging window close events

Log: Fixed issue where control center application sometimes wouldn't
exit when clicking the close button

Influence:
1. Test clicking the close button on control center window to ensure
application exits properly
2. Verify that the application doesn't hang or remain running in
background after closing
3. Test multiple open/close cycles to ensure consistent behavior
4. Verify console logs show "DccWindow closed" message when window is
closed

fix: 修复控制中心点击关闭按钮偶现不退出问题

1. 在 main.cpp 中添加 `app->setQuitOnLastWindowClosed(false)` 防止最后一
个窗口关闭时自动退出应用
2. 在 DccWindow.qml 中添加 `onClosing` 处理程序,使用 `Qt.callLater()`
调用 `Qt.quit()` 确保应用正确终止
3. 添加控制台日志用于调试窗口关闭事件

Log: 修复了控制中心应用点击关闭按钮时偶现不退出问题

Influence:
1. 测试点击控制中心窗口关闭按钮,确保应用正确退出
2. 验证应用关闭后不会挂起或继续在后台运行
3. 测试多次打开/关闭循环,确保行为一致
4. 验证控制台日志在窗口关闭时显示"DccWindow closed"消息

PMS: BUG-357065
更新 V25 DCC 接口文档,更正插件的安装路径,补充部分关键类的属性和接口说明

Log: 更新插件文档
1. Changed PluginManager::createModule and createMain to use
QQmlIncubator for asynchronous object creation instead of
synchronous component->create()
2. Added DccIncubator class to handle incubator status callbacks
for module and main object creation
3. Added incubatorStatusChangedModule and incubatorStatusChangedMain
to process async creation results and manage object lifecycle
4. Fixed DccRepeater createdItem/initItem with boundary checks
and improved object release logic

Influence:
1. Test control center startup performance with various plugin
configurations
2. Verify page navigation works correctly after async plugin loading
3. Test D-Bus show requests with different URL parameters
4. Ensure plugin objects are properly added and displayed

fix: 使用QQmlIncubator异步创建插件对象

1. 将PluginManager::createModule和createMain改为使用QQmlIncubator
进行异步对象创建,替代同步的component->create()
2. 添加DccIncubator类处理模块和主对象创建的孵化器状态回调
3. 添加incubatorStatusChangedModule和incubatorStatusChangedMain
处理异步创建结果并管理对象生命周期
4. 修复DccRepeater的createdItem/initItem,添加边界检查
和改进对象释放逻辑

Influence:
1. 测试不同插件配置下控制中心的启动性能
2. 验证异步插件加载后页面导航是否正常工作
3. 测试使用不同URL参数的D-Bus显示请求
4. 确保插件对象被正确添加和显示
…Qt screen matching

1. Replace screen.currentResolution.width/height with screen.width/height in getQtScreen function

Log: Fix screen matching by using correct dimension properties

fix(display): 使用屏幕尺寸属性替代 currentResolution 进行 Qt 屏幕匹配

1. 在 getQtScreen 函数中使用 screen.width/height 替代 screen.currentResolution.width/height

Log: 修复屏幕匹配逻辑,使用正确的尺寸属性
PMS: BUG-355449
Add search feature for application notifications with support for
filtering by app name and transliteration (pinyin). Implement
case-insensitive filtering and add search UI components.

为应用通知添加搜索功能,支持按应用名称和拼音过滤,实现不区分大小写的搜索过滤。

Log: 添加应用通知搜索功能
PMS: TASK-388571
Influence: 用户现在可以在应用通知设置中通过搜索快速定位特定应用,支持应用名称和拼音搜索,提升使用体验。
…ions

调整开源软件声明的排版,删除package后的换行

PMS: BUG-355359
1. Remove asynchronous loading mode from QQmlComponent operations
2. Eliminate statusChanged signal connections and their handlers
(moduleLoading/mainLoading)
3. Change loadUrl and loadFromModule calls from Asynchronous to
synchronous mode
4. Directly invoke createModule/createMain after component loading
instead of waiting for status signals
5. Modify createModule and createMain signatures to accept PluginData
pointer directly instead of extracting from component property
6. Remove property-based plugin data storage on components, passing data
explicitly as parameters
7. Simplify code flow by making loading and creation sequential rather
than signal-driven

This change eliminates race conditions and complexity from async
loading while making the code more straightforward and maintainable. The
synchronous loading ensures component status is immediately available
without waiting for signals.

Influence:
1. Test plugin loading with various plugin types (V1_0 and V1_1)
2. Verify module creation succeeds for all installed plugins
3. Test main object loading and creation flow
4. Check error handling when component loading fails
5. Verify plugin manager cleanup during destruction
6. Test with plugins that have missing or invalid QML files
7. Verify memory management of QQmlComponent objects

refactor: 简化插件加载流程,移除异步加载机制

1. 从 QQmlComponent 操作中移除异步加载模式
2. 删除 statusChanged 信号连接及其处理函数(moduleLoading/mainLoading)
3. 将 loadUrl 和 loadFromModule 调用从异步模式改为同步模式
4. 在组件加载后直接调用 createModule/createMain,不再等待状态信号
5. 修改 createModule 和 createMain 的函数签名,直接接受 PluginData 指针
而非从组件属性中提取
6. 移除组件上的属性存储方式,改为显式参数传递插件数据
7. 简化代码流程,使加载和创建变为顺序执行而非信号驱动

此变更消除了异步加载带来的竞态条件和复杂性,使代码更加简洁易维护。同步加
载确保组件状态立即可用,无需等待信号。

Influence:
1. 测试各类插件(V1_0 和 V1_1)的加载流程
2. 验证所有已安装插件的模块创建是否成功
3. 测试主对象加载和创建流程
4. 检查组件加载失败时的错误处理
5. 验证插件管理器在销毁时的清理行为
6. 测试缺失或无效 QML 文件的插件场景
7. 验证 QQmlComponent 对象的内存管理
…er scaling

1. Use QImageReader::setScaledSize() to decode images at target size directly
2. Remove redundant full-image scaling after load, reducing memory usage
3. Add image validity check before processing to handle invalid files gracefully
4. Update WallpaperPage to use DccImage provider with proper sourceSize

Log: Optimize wallpaper thumbnail loading by scaling during decode instead of after

perf(wallpaper): 优化壁纸缩略图加载性能

1. 使用 QImageReader::setScaledSize() 在解码时直接缩放到目标尺寸
2. 移除加载后的全图缩放操作,减少内存占用
3. 添加图片有效性检查,优雅处理无效文件
4. 更新 WallpaperPage 使用 DccImage provider 并设置正确的 sourceSize

Log: 通过解码时缩放优化壁纸缩略图加载性能
PMS: BUG-358691
Add EventLogger integration to log user page navigation behavior.
When user stays on a page for 2 seconds, the page navigation path
is logged with format: {"control_center_tag": ["display", "displayMultipleDisplays"]}.

The feature is optional and depends on dde-api eventlogger.hpp header.
If the header is not found, the feature is disabled at compile time.

Log: 添加控制中心事件日志功能
PMS: TASK-388657
update changelog to 6.1.82

Log: update changelog to 6.1.82
* i18n: Translate dde-control-center_en.ts in fi

100% translated source file: 'dde-control-center_en.ts'
on 'fi'.

* i18n: Translate dde-control-center_en.ts in es

77% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

77% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

77% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

78% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

78% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

78% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

79% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

79% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

79% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

80% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

80% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

81% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

82% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

82% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

83% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

83% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

84% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

85% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

86% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

86% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

87% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

87% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

87% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

22% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

23% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

23% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

24% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

24% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

24% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

24% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

25% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

25% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

25% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

25% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

25% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

26% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

26% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

26% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

26% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

27% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

28% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

28% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

28% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

28% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

28% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

29% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

29% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

30% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

30% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

30% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

30% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

31% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

32% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

33% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

33% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

34% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

35% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

35% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

35% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

36% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

36% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

37% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

37% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

37% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

38% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

38% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

39% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

40% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

40% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

40% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

40% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de

41% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

95% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

95% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

95% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

95% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

96% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

97% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

97% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

97% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

97% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

98% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es

100% translated source file: 'dde-control-center_en.ts'
on 'es'.

* i18n: Translate dde-control-center_en.ts in pt_BR

87% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

87% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

88% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

89% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

90% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

91% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

92% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

93% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

94% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

95% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

96% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

98% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

98% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

99% of minimum 10% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR

100% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

---------

Log:
Add dde-api-dev(>>6.0.38) to Build-Depends in debian/control
to ensure the required development headers are available during build.

build: 添加 dde-api-dev 构建依赖

在 debian/control 的 Build-Depends 中添加 dde-api-dev(>>6.0.38),
确保构建时有必要的开发头文件。

PMS: TASK-388657
update changelog to 6.1.83

Log: update changelog to 6.1.83
@caixr23 caixr23 force-pushed the master branch 3 times, most recently from 5577f72 to 5d90b33 Compare May 12, 2026 03:24
caixr23 and others added 2 commits May 12, 2026 16:50
1. Connect Monitor::scaleChanged signal through DccScreen to trigger
   layout recalculation when a monitor's scale changes
2. Add updateScale() to rerun ConcatScreen multi-screen algorithm and
   recompute monitor positions after scale change
3. Extract buildMonitorPosition() from setScreenPosition() to share
   monitor position calculation logic between the two methods
4. Add updateMonitorPosition() in DisplayWorker to update Monitor
   coordinates locally without backend commit
5. Move qRegisterMetaType to constructor to avoid repeated registration
6. Use two-step position update (immediate local update + 300ms delayed
   backend commit) to prevent treeland crash from rapid config changes

Log: 扩展模式下修改屏幕缩放后自动重排多屏布局

Influence:
1. 多屏扩展模式下修改某个屏幕的缩放比例,验证各屏幕位置是否
   自动重新排列
2. 快速连续修改缩放比例,验证是否出现treeland崩溃

fix(display): 扩展模式下缩放变化时调整屏幕布局

1. 将Monitor::scaleChanged信号通过DccScreen传递,在缩放变化时触发
   布局重算
2. 新增updateScale()方法,通过ConcatScreen多屏算法重新计算各显示器
   位置
3. 从setScreenPosition()中提取buildMonitorPosition(),共享显示器位置
   计算逻辑
4. 在DisplayWorker中新增updateMonitorPosition(),仅本地更新Monitor坐标
5. 将qRegisterMetaType移至构造函数,避免每次调用时重复注册
6. 采用两步位置更新(立即本地更新 + 延迟300ms后端提交),防止treeland
   因快速配置变更崩溃

Log: 扩展模式下修改屏幕缩放后自动重排多屏布局

Influence:
1. 多屏扩展模式下修改某个屏幕的缩放比例,验证各屏幕位置是否
   自动重新排列
2. 快速连续修改缩放比例,验证是否出现treeland崩溃

PMS: BUG-304077
Update EVENT_LOGGER_CONTROL_CENTER_STAY from 1000600012 to 1000610008
to align with the latest event tracking system.

Log: Update the event logger ID for control center page stay tracking.

fix: 更新控制中心页面停留事件日志ID

将 EVENT_LOGGER_CONTROL_CENTER_STAY 从 1000600012 更新为 1000610008,
以匹配最新的事件追踪系统。

Log: 更新控制中心页面停留事件日志ID。
PMS: BUG-360911
18202781743 and others added 23 commits May 13, 2026 10:06
1. Change plugin installation directory from debug libdir to system
install dir for all build types
2. Update plugin read directory to point to debug build directory in
debug mode for development convenience
3. This fixes cmake install failure in debug build due to incorrect
installation path

Influence:
1. Test debug build compilation and installation with cmake install
2. Verify plugins are correctly installed to system directory
3. Test plugin loading in debug mode, ensuring it reads from build
directory
4. Test release build remains unaffected

fix: 修复Debug模式下插件安装目录问题

1. 将所有构建类型的插件安装目录从debug库目录改为系统安装目录
2. 更新调试模式下插件读取目录为构建目录,方便开发调试
3. 修复Debug模式下cmake install失败的问题

Influence:
1. 测试Debug模式下的编译和cmake install安装
2. 验证插件正确安装到系统目录
3. 测试Debug模式下插件加载,确保从构建目录读取
4. 测试Release模式不受影响
1. Set `this` as parent for two QDBusPendingCallWatcher objects
   in DisplayWorker::active()
2. Without a parent, the watcher cannot be moved to the correct
   thread during thread switches, causing its connected slots to
   never execute, so scale factors are not saved
3. Affects GetScaleFactor and GetScreenScaleFactors watchers

PMS: BUG-360835

Influence:
1. Switch display scale, log out and re-login, verify the scale
   setting is correctly preserved
2. Set different scale factors per monitor, log out and re-login
   to verify each monitor keeps its scale

fix: 修复切换缩放后注销再登录缩放恢复为100%的问题

1. 为 DisplayWorker::active() 中的两个 QDBusPendingCallWatcher
   对象设置 this 作为 parent
2. 未设置 parent 时,切换线程后 watcher 无法找到目标线程,
   导致连接的槽函数永远不会执行,缩放比例未能正确保存
3. 影响 GetScaleFactor 和 GetScreenScaleFactors 的 watcher

PMS: BUG-360835

Influence:
1. 切换缩放比例后注销再重新登录,验证缩放设置是否被正确保持
2. 多显示器场景下分别设置不同缩放比例后注销再登录验证
修复: 事件日志页面标签过滤空 displayName 的节点

PMS: BUG-361175
1. Add DBus proxy methods to get/set auto brightness state and fetch the
built-in monitor name
2. Extend DisplayModel with properties for autoBacklightSupported,
autoBacklightEnabled, and builtinMonitorName
3. Implement initialization and state synchronization logic in
DisplayWorker
4. Expose new properties via DisplayModule for QML binding
5. Add "Auto Brightness" switch in QML for both single and multi-monitor
layouts
6. Dynamically position the switch after the built-in monitor's
brightness slider

Log: Added auto brightness toggle switch in display settings

Influence:
1. Test multi-monitor setup to ensure the auto brightness switch appears
correctly after the built-in monitor's slider
2. Test single built-in monitor setup to verify the switch visibility
and functionality
3. Test single external monitor setup to verify the switch is hidden
4. Toggle the auto brightness switch and verify the system brightness
adjusts according to ambient light
5. Test on hardware without an ambient light sensor to ensure the switch
remains hidden
6. Verify DBus connection and error handling if the backend service
fails to set the state

feat: 新增自动亮度调节开关

1. 新增 DBus 代理方法,用于获取/设置自动亮度状态并获取内置显示器名称
2. 在 DisplayModel 中扩展 autoBacklightSupported、autoBacklightEnabled
和 builtinMonitorName 属性
3. 在 DisplayWorker 中实现初始化和状态同步逻辑
4. 通过 DisplayModule 暴露新属性以供 QML 绑定
5. 在 QML 的单显示器和多显示器布局中添加“自动亮度”开关
6. 将该开关动态定位在内置显示器的亮度滑块之后

Log: 显示设置中新增自动亮度调节开关

Influence:
1. 测试多显示器设置,确保自动亮度开关正确显示在内置显示器的滑块之后
2. 测试单内置显示器设置,以验证开关的可见性和功能
3. 测试单外接显示器设置,以验证开关被隐藏
4. 切换自动亮度开关,验证系统亮度是否根据环境光进行调节
5. 在没有环境光传感器的硬件上测试,确保开关保持隐藏
6. 验证 DBus 连接以及后端服务设置状态失败时的错误处理

PMS: BUG-358023
Change-Id: Ide72a70f742d074d46b4f6432c61e840a364b805
更新翻译

Log: 更新翻译
Influence: 翻译
PMS: BUG-358023
Change-Id: Ifc21083a47f414afa3b71562f723f8fd036c1849
* i18n: Translate dde-control-center_en.ts in cs [Manual Sync]

11% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'cs'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ca [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ca'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in vi [Manual Sync]

64% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'vi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in af [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'af'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ro [Manual Sync]

7% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ro'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in id [Manual Sync]

4% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'id'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ms [Manual Sync]

9% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ms'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in zh_HK [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in de [Manual Sync]

48% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in da [Manual Sync]

10% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'da'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in et [Manual Sync]

62% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'et'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in hi_IN [Manual Sync]

3% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'hi_IN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in hy [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'hy'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in sl [Manual Sync]

64% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in es [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in bn [Manual Sync]

58% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'bn'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ky [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ky'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in nl [Manual Sync]

19% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'nl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ko [Manual Sync]

61% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ko'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in gl_ES [Manual Sync]

59% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'gl_ES'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ru [Manual Sync]

74% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in kab [Manual Sync]

50% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'kab'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in br [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'br'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in kk [Manual Sync]

55% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'kk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in fr [Manual Sync]

81% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'fr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ar [Manual Sync]

68% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ar'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in sw [Manual Sync]

3% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sw'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in fa [Manual Sync]

4% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'fa'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in bqi [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'bqi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in it [Manual Sync]

11% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'it'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in hu [Manual Sync]

59% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'hu'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in zh_TW [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in kn_IN [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'kn_IN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in el [Manual Sync]

9% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'el'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ku [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ku'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in bg [Manual Sync]

4% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'bg'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pam [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'pam'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt [Manual Sync]

11% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'pt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pl [Manual Sync]

100% translated source file: 'dde-control-center_en.ts'
on 'pl'.

* i18n: Translate dde-control-center_en.ts in sr [Manual Sync]

9% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in mr [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'mr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in sq [Manual Sync]

98% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sq'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ka [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ka'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in en_US [Manual Sync]

10% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'en_US'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in eu [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'eu'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in sk [Manual Sync]

5% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ur [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ur'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in fil [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'fil'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in lo [Manual Sync]

69% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'lo'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ja [Manual Sync]

94% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ja'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in en_AU [Manual Sync]

8% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'en_AU'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ug [Manual Sync]

10% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ug'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in lt [Manual Sync]

6% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'lt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in zh_CN [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in am_ET [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'am_ET'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in he [Manual Sync]

50% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'he'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in pt_BR [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in si [Manual Sync]

6% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'si'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in mn [Manual Sync]

3% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'mn'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ku_IQ [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ku_IQ'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in bo [Manual Sync]

10% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'bo'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in fi [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'fi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in th [Manual Sync]

63% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'th'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in az [Manual Sync]

66% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'az'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in sv [Manual Sync]

53% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'sv'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in eo [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'eo'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ta [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ta'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ne [Manual Sync]

58% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ne'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in lv [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'lv'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in uk [Manual Sync]

99% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'uk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ast [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ast'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in ml [Manual Sync]

2% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'ml'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in km_KH [Manual Sync]

1% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'km_KH'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in tr [Manual Sync]

78% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'tr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in hr [Manual Sync]

6% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'hr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* i18n: Translate dde-control-center_en.ts in nb [Manual Sync]

4% of minimum 1% translated source file: 'dde-control-center_en.ts'
on 'nb'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

---------

Log:
1. Add lastore manager DBus proxy for package install job tracking
2. Parse metadata.json for live wallpaper discovery with package info
3. Support download/install live wallpapers via lastore package manager
4. Add download progress indicator and install status to QML UI
5. Rename WallpaperType to WallpaperSetType to avoid naming conflict
6. Register WallpaperEnums namespace to QML for install status binding
7. Auto-apply wallpaper after successful download and installation

Log: Implement live wallpaper download/install feature via lastore integration

feat(wallpaper): 添加动态壁纸下载和安装功能

1. 新增 lastore manager DBus 代理用于包安装任务跟踪
2. 解析 metadata.json 获取动态壁纸信息及包名
3. 通过 lastore 包管理器支持动态壁纸的下载和安装
4. 在 QML 界面添加下载进度指示器和安装状态显示
5. 将 WallpaperType 重命名为 WallpaperSetType 避免命名冲突
6. 向 QML 注册 WallpaperEnums 命名空间用于安装状态绑定
7. 下载安装成功后自动应用壁纸

Log: 通过 lastore 集成实现动态壁纸下载安装功能
PMS: STORY-39897
as title

Log: bump version to 6.1.86
1. Remove explicit page visibility bindings in DccWindow.qml to allow
proper page rendering
2. Disable activeFocusOnTab and initial focus on HomePage grid to
prevent incorrect focus behavior
3. The previous visibility logic caused transparency issues and
incorrect stacking layer display
4. Focus settings were interfering with proper keyboard navigation and
UI state

Log: Fixed control center display transparency issues and focus problems

Influence:
1. Verify control center opens correctly without transparency issues
2. Test navigation between different pages (load, home, second)
3. Verify keyboard tab navigation works as expected
4. Check focus state on home page grid elements
5. Test page content visibility and stacking order
6. Verify no regression in page transition animations

fix: 修复控制中心显示透明问题和焦点问题

1. 移除 DccWindow.qml 中明确的页面可见性绑定,确保页面正确渲染
2. 禁用 HomePage 网格的 activeFocusOnTab 和初始焦点设置,防止焦点行为
异常
3. 之前的可见性逻辑导致透明度问题和错误的层叠显示
4. 焦点设置干扰了正常的键盘导航和UI状态

Log: 修复控制中心显示透明和焦点问题

Influence:
1. 验证控制中心能够正常打开,无显示透明问题
2. 测试在不同页面(加载页、主页、次级页)之间的导航功能
3. 验证键盘 Tab 导航功能符合预期
4. 检查主页网格元素上的焦点状态
5. 测试页面内容的可见性和层叠顺序
6. 验证页面切换动画无回归问题

PMS: BUG-359373
Change-Id: I1de872c1754ade0377876b422ae39cfe7df2199f
Changed the minimum width threshold from 520 to 630 pixels, ensuring
the sidebar remains visible when the window is restored after being
minimized. Previously, when the window width was between 520 and 630
pixels, the sidebar would be hidden upon restoration, causing a poor
user experience. This adjustment guarantees that the sidebar is always
displayed when the window is restored from a minimized state.

Log: Fixed sidebar not showing after window restoration from minimized
state

Influence:
1. Minimize the control center window and restore it to verify sidebar
visibility
2. Test with window widths at various breakpoints (below 630px and above
630px)
3. Verify sidebar display consistency across different screen
resolutions
4. Test window restoration from minimized state in different desktop
environments

fix: 窗口最小化关闭后还原显示侧边栏

将最小宽度阈值从520像素调整为630像素,确保窗口从最小化状态还原时侧边栏始
终可见。此前当窗口宽度在520到630像素之间时,还原后侧边栏会隐藏,影响用户
体验。此调整保证了从最小化状态还原窗口时侧边栏的正常显示。

Log: 修复从最小化状态还原窗口后侧边栏不显示的问题

Influence:
1. 最小化控制中心窗口并还原,验证侧边栏是否可见
2. 在不同宽度阈值(低于630像素和高于630像素)下测试窗口行为
3. 在不同屏幕分辨率下验证侧边栏显示一致性
4. 在不同桌面环境中测试窗口从最小化状态还原的效果

PMS: BUG-360847
Change-Id: I73c4e1d5bc6c2f3c3cae735b8225c3d1395a141e
1. Remove duplicate title Label from CreateAccountDialog, PasswordModifyDialog,
   ConFirmDialog, and biometric enrollment dialogs
2. Remove unused DialogTitleBar header from CreateAccountDialog

Log: Remove redundant title labels from dialogs that already display titles
through the D.DialogWindow header

fix: 移除对话框中重复的标题

1. 移除创建账号、修改密码、确认对话框及生物识别录入对话框中重复的标题 Label
2. 移除 CreateAccountDialog 中未使用的 DialogTitleBar header

Log: 移除对话框中与 D.DialogWindow header 重复显示的标题 Label
PMS: BUG-361279
…esolution

1. Resolve .desktop file symlink before passing to dpkg-query, so apps
   installed under /opt/apps/ can be correctly mapped to their package names
2. Without this, dpkg-query fails to match symlink paths like
   /usr/share/applications/xxx.desktop -> /opt/apps/xxx/entries/applications/xxx.desktop,
   causing those apps to fall into file mode instead of package mode and
   bypass folder permission restrictions

Log: Fix folder permission bypass for apps with symlinked .desktop files

fix(privacy): 解析软链接后再查询包名,修复文件夹权限绕过问题

1. 在传递 .desktop 文件路径给 dpkg-query 前先解析软链接,使 /opt/apps/ 下
   安装的应用能正确匹配到所属包名
2. 若不解析软链接,dpkg-query 无法匹配如
   /usr/share/applications/xxx.desktop -> /opt/apps/xxx/entries/applications/xxx.desktop
   的路径,导致此类应用进入文件模式而非包名模式,从而绕过文件夹权限限制

Log: 修复 .desktop 文件为软链接时文件夹权限被绕过的问题

PMS: BUG-360273
1. Replace the original D-Bus based singleton mechanism with DTK's
DGuiApplicationHelper::setSingleInstance to prevent duplicate instances
2. Remove old logic in the D-Bus registration failure branch that used
DDBusSender to forward commands to the running instance
3. Add toggle() method to DccManager to centralize window toggle logic
and improve code reuse
4. Connect to DGuiApplicationHelper::newProcessInstance signal to handle
command-line arguments (toggle, show page, show) in the already-running
process
5. Ensure proper window activation under Wayland by using DTK's single
instance mechanism

Log: Replaced singleton mechanism with DTK single instance for better
Wayland compatibility

Influence:
1. Test launching the control center multiple times to verify only one
instance runs
2. Test window toggle functionality via D-Bus and command line
3. Verify window activation works correctly under Wayland
4. Test showing specific pages via command line arguments
5. Test the "show" and "toggle" options when control center is already
running
6. Verify the new instance process correctly passes arguments to the
running instance

feat: 使用 DTK 单例并在 Wayland 下正确激活窗口

1. 使用 DTK 的 DGuiApplicationHelper::setSingleInstance 替换原有的基于
D-Bus 的单例机制,防止重复实例
2. 移除 D-Bus 注册失败分支中使用 DDBusSender 向运行实例转发命令的旧逻辑
3. 在 DccManager 中添加 toggle() 方法以集中管理窗口切换逻辑,提高代码复
用性
4. 连接 DGuiApplicationHelper::newProcessInstance 信号,在已运行的进程中
处理命令行参数(切换、显示页面、显示)
5. 通过使用 DTK 的单例机制,确保在 Wayland 下窗口能够正确激活

Log: 替换单例机制为 DTK 单例以提高 Wayland 兼容性

Influence:
1. 多次启动控制中心,验证只有一个实例在运行
2. 通过 D-Bus 和命令行测试窗口切换功能
3. 验证在 Wayland 下窗口激活是否正常
4. 通过命令行参数测试显示指定页面功能
5. 当控制中心已运行时测试"show"和"toggle"选项
6. 验证新实例进程能够正确将参数传递给已运行实例

PMS: BUG-345417
pattern

Replace direct method calls from MouseDBusProxy to MouseWorker with Qt
signal-slot connections to reduce coupling and improve maintainability.
Remove worker pointer dependency in constructor, emit signals for
property changes instead, and move connection binding to MouseWorker.

Log: Refactored mouse plugin to use signal-slot architecture for better
separation of concerns

Influence:
1. Verify mouse settings still apply correctly (left-handed, natural
scroll, double-click, acceleration)
2. Verify touchpad settings still apply correctly (enable/disable, tap-
click, palm detection, scroll)
3. Verify trackpoint (redpoint) settings still apply correctly
(acceleration)
4. Verify wheel speed and cursor size settings still work
5. Verify gesture data initialization and updates
6. Test property change propagation from DBus to model layer
7. Test request flow from UI to DBus through new signal-slot bindings
8. Verify no memory leaks from removed worker pointer usage

refactor: 使用信号-槽模式解耦MouseDBusProxy与MouseWorker

将MouseDBusProxy中直接调用MouseWorker方法的方式替换为Qt信号-槽连接模式,
减少耦合度并提高可维护性。移除构造函数中的worker指针依赖,转而通过发射信
号通知属性变化,并将连接绑定转移到MouseWorker中。

Log: 重构鼠标插件,采用信号-槽架构实现更好的关注点分离

Influence:
1. 验证鼠标设置仍能正确应用(左手模式、自然滚动、双击、加速度)
2. 验证触摸板设置仍能正确应用(启用/禁用、点击触摸、手掌检测、滚动)
3. 验证指点杆(小红点)设置仍能正确应用(加速度)
4. 验证滚轮速度和光标大小设置仍能正常工作
5. 验证手势数据的初始化和更新
6. 测试DBus属性变化到模型层的传播
7. 测试通过新信号-槽绑定的UI到DBus的请求流程
8. 验证移除worker指针使用后无内存泄漏
Support merging multiple physical monitors into a single logical
display area via xrandr on X11, with a Switch toggle
in extend mode that activates when screens form a rectangle.

支持在 X11 下通过 xrandr 命令将多个物理显示器拼接为单一逻辑显示区域,扩展模式下屏幕排列为矩形时可一键切换。

Log: 实现 X11 环境下多屏拼接
PMS: TASK-40959
Influence: 1.扩展模式下,多屏排列称矩形时,支持跨屏拼接 2.切换显示模式或热插拔时自动退出拼接模式;3.拼接模式下禁用分辨率、刷新率、方向、缩放调整及屏幕拖动
add translation for "Concat Screen"

添加“跨屏拼接”的多语言翻译

Log: 添加“跨屏拼接”的多语言翻译
PMS: TASK-389929
Influence: “跨屏拼接”的多语言翻译
update changelog to 6.1.87

Log: update changelog to 6.1.87
- Add AccelsRole to the dataChanged roles list in onUpdateShortcut
  so QML delegate bindings refresh model.accels values
- Previously model.accels stayed stale in QML cache after async
  model updates (resetAll/onKeyBindingChanged), causing the
  conflict warning icon to not display in re-conflict scenarios

Influence: fix for BUG-361841 conflict icon persistence

fix: 快捷键数据变更时更新 model.accels 角色

- onUpdateShortcut 的 dataChanged 信号加入 AccelsRole
- 避免 model 异步更新(resetAll/onKeyBindingChanged)后 QML 缓存
  的 model.accels 仍为旧值,导致再次触发冲突时图标不显示

Influence: 修复 BUG-361841 冲突图标不显示问题
PMS: BUG-361841
1. Remove the redundant title Label from TimeoutDialog.qml
2. The title text is already displayed via the dialog header,
   so the extra Label caused a duplicate display issue

Log: Remove duplicate title label from display timeout dialog

fix: 移除超时对话框中重复的标题标签

1. 从 TimeoutDialog.qml 中移除冗余的标题 Label
2. 标题文本已通过对话框头部显示,多余的 Label 导致标题重复展示

Log: 移除显示超时对话框中重复的标题标签
PMS: BUG-362237
…ncat screen mode

When in concat screen mode, all physical monitors are merged into a single logical display, making primary screen switching and monitor identification meaningless.

进入扩展模式的跨屏拼接后,禁用主屏幕切换和屏幕识别功能。

Log: “跨屏拼接”模式下,禁用屏幕识别和主屏切换
PMS: 362681
Influence: “跨屏拼接”模式下,禁用屏幕识别和主屏切换
Add a help button icon next to "Concat Screen" label that shows usage tips when clicked. The tooltip uses custom width with text wrapping for better readability.

添加“跨屏拼接”的提示按钮和文案

Log: 添加“跨屏拼接”的提示按钮和文案
PMS: 362691
Influence: “跨屏拼接”的提示按钮和文案正常显示
update changelog to 6.1.88

Log: update changelog to 6.1.88
update changelog to 6.1.89

Log: update changelog to 6.1.89
@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

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.