refactor: optimize plugin loading and QML registration#3143
Open
caixr23 wants to merge 31 commits intolinuxdeepin:dcc-coredumpfrom
Open
refactor: optimize plugin loading and QML registration#3143caixr23 wants to merge 31 commits intolinuxdeepin:dcc-coredumpfrom
caixr23 wants to merge 31 commits intolinuxdeepin:dcc-coredumpfrom
Conversation
|
[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. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
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
This reverts commit 8ac3cac.
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
|
TAG Bot TAG: 6.1.83 |
…at pop-up window. 根据固定的行高计算当前ListView的可视区域,无法自适应字号的改变。修复方案使用ListView的positionViewAtIndex方法将目标项滚动至顶部 PMS: BUG-357581
Change Label to DccLabel, to add tooltips to automatically elided text 给区域格式弹窗中自动省略的长文本增加鼠标悬浮提示 Log: 修复区域格式弹窗中文案省略时无悬浮提示的问题 PMS: BUG-357575 Influence: 区域格式弹框中长日期、长时间等内容过长自动省略时,增加tooltips提示
…ndling Add m_recommendedParent to track recommended parent for objects, improve findParent logic to use it first. Simplify DccObject destructor and DccRepeater by removing complex cleanup logic. Remove unused DccQuickRepeater and move setParent calls to plugin loading completion phase. 添加m_recommendedParent追踪推荐父对象,改进findParent逻辑优先使用该父对象。 简化DccObject析构函数和DccRepeater,移除复杂清理逻辑。移除不再需要的 DccQuickRepeater,将setParent调用移至插件加载完成阶段。 Log: 优化DccObject父子关系管理和内存处理 Influence: 1. 测试控制中心模块加载/卸载时内存使用 2. 验证插件变更后页面导航 3. 测试D-Bus显示请求
deepin pr auto review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This refactor improves plugin management by separating QML registration from plugin object creation. Key changes include:
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:
refactor: 优化插件加载和 QML 注册流程
本次重构改进了插件管理机制,将 QML 注册与插件对象创建分离。主要变更
包括:
这些变更确保 QML 类型注册在主线程执行,而插件对象在工作线程创建,避免线
程问题并提升性能。
Log: 优化插件加载过程和 QML 注册机制
Influence:
PMS: BUG-309197