Commit Graph

526 Commits

Author SHA1 Message Date
github-actions[bot] d2c2efc49a chore: New release 5.7.21
Log:
2025-08-14 20:28:21 +08:00
yeshanshan 9842a0644e fix: resolve compilation warnings and deprecation issues
1. Fixed deprecated enum usage by adding explicit deprecation comment
for IconAttibute
2. Added QT version checks for QMouseEvent::globalPos() vs
globalPosition() API changes
3. Marked unused parameters with Q_UNUSED to suppress warnings
4. Added version checks for DTK 6.0 API changes
5. Fixed test class visibility warnings by adding GTEST_API_ prefix
6. Improved warning messages to use modern qWarning() stream syntax
7. Added [[maybe_unused]] attribute for DEFINE_CONST_CHAR macro
8. Added version checks for QVariant type handling differences between
Qt5/Qt6
9. Fixed potential memory leak in DIconTheme::isXdgIcon() logic
10. Added proper type checks for QVariant conversions

Log: Fixed various compilation warnings and deprecated API usage

Influence:
1. Verify icon rendering still works correctly after enum changes
2. Test window movement functionality with both Qt5 and Qt6
3. Check palette handling in DGuiApplicationHelper
4. Verify test cases still pass with updated class visibility
5. Test QVariant conversions in DPlatformHandle properties

fix: 解决编译警告和废弃API问题

1. 为废弃的IconAttibute枚举添加明确的弃用注释
2. 为QMouseEvent::globalPos()和globalPosition()API变更添加QT版本检查
3. 使用Q_UNUSED标记未使用参数以消除警告
4. 添加DTK 6.0 API变更的版本检查
5. 通过添加GTEST_API_前缀修复测试类可见性警告
6. 改进警告消息使用现代qWarning()流式语法
7. 为DEFINE_CONST_CHAR宏添加[[maybe_unused]]属性
8. 添加Qt5/Qt6之间QVariant类型处理的版本检查
9. 修复DIconTheme::isXdgIcon()中潜在的内存泄漏问题
10. 为QVariant转换添加适当的类型检查

Log: 修复各种编译警告和废弃API使用问题

Influence:
1. 验证图标渲染在枚举变更后仍能正常工作
2. 测试Qt5和Qt6下的窗口移动功能
3. 检查DGuiApplicationHelper中的调色板处理
4. 验证更新类可见性后测试用例是否仍能通过
5. 测试DPlatformHandle属性中的QVariant转换
2025-08-14 11:39:10 +00:00
yeshanshan 9d3d659afe feat: add flags parameter to DDciIconPlayer play method
1. Added new overloaded play method that accepts
DDciIconImagePlayer::Flags parameter
2. Modified existing play method to call new method with default
IgnoreLastImageLoop flag
3. Updated documentation to reflect new method signature and behavior
4. Allows more control over icon playback behavior through flags
parameter

feat: 为 DDciIconPlayer 的 play 方法添加 flags 参数

1. 添加了新的重载 play 方法,接受 DDciIconImagePlayer::Flags 参数
2. 修改现有 play 方法以使用默认的 IgnoreLastImageLoop 标志调用新方法
3. 更新文档以反映新的方法签名和行为
4. 通过 flags 参数提供对图标播放行为的更多控制
2025-08-07 14:38:07 +08:00
github-actions[bot] eaf96e824d chore: New release 5.7.20
Log:
2025-07-31 20:29:47 +08:00
zhangkun 7c05bace4a feat: switch to QGuiApplication for SVG rendering
1. Changed from QCoreApplication to QGuiApplication to support SVG
rendering
2. Updated CMakeLists to link against QtGui instead of QtCore
3. This change is necessary because SVG rendering requires GUI
components
4. Note: CLI environment users must set QT_QPA_PLATFORM=offscreen

feat: 切换到 QGuiApplication 以支持 SVG 渲染

1. 从 QCoreApplication 切换到 QGuiApplication 以支持 SVG 渲染
2. 更新 CMakeLists 链接 QtGui 替代 QtCore
3. 此变更是必要的因为 SVG 渲染需要 GUI 组件
4. 注意:命令行环境用户需要设置 QT_QPA_PLATFORM=offscreen
2025-07-31 13:42:53 +08:00
yeshanshan a892ddc4e2 feat: add concurrent processing for DCI icon conversion
1. Added QtConcurrent support for parallel processing of icon files
2. Implemented error handling with custom DciProcessingError exception
3. Grouped icon files by name to avoid concurrent access to same DCI
file
4. Improved performance by processing icon groups in parallel
5. Added proper error propagation and atomic flag for early termination
6. Maintained existing functionality while adding concurrency
7. Each icon group is processed as a unit to ensure thread safety with
DCI files

feat: 为DCI图标转换添加并发处理

1. 添加QtConcurrent支持以实现图标文件的并行处理
2. 使用自定义DciProcessingError异常实现错误处理
3. 按名称分组图标文件以避免对同一DCI文件的并发访问
4. 通过并行处理图标组提高性能
5. 添加适当的错误传播和原子标志用于提前终止
6. 在添加并发性的同时保持现有功能
7. 每个图标组作为一个单元处理以确保DCI文件的线程安全
2025-07-24 20:49:35 +08:00
yeshanshan 65cf7b4161 refactor: move icon finder functionality to separate tool
1. Removed icon finding functionality from dci-icon-theme to make it a
pure TUI tool
2. Created new dci-iconfinder tool specifically for icon lookup
operations
3. Changed dci-icon-theme to use QCoreApplication instead of
QGuiApplication
4. Updated version handling to use DTK version macros
5. Removed GUI dependencies from dci-icon-theme
6. Added proper documentation for both tools

This change was necessary to separate concerns and allow dci-icon-theme
to be used in environments without GUI dependencies while maintaining
icon lookup capabilities in a dedicated tool.

refactor: 将图标查找功能移至独立工具

1. 从dci-icon-theme中移除图标查找功能,使其成为纯命令行工具
2. 创建新的dci-iconfinder工具专门处理图标查找操作
3. 将dci-icon-theme改为使用QCoreApplication而非QGuiApplication
4. 更新版本处理以使用DTK版本宏
5. 移除dci-icon-theme对GUI的依赖
6. 为两个工具添加了适当的文档

此变更是为了分离关注点,使dci-icon-theme可以在没有GUI依赖的环境中使用,
同时将图标查找功能保留在专用工具中。
2025-07-23 04:16:59 +00:00
ComixHe 6b7e941839 feat: add pid namespace isolation to setSingleInstance
Enhance setSingleInstance to support multiple PID namespaces for
containerized environments. This prevents applications in different
containers from interfering with each other's single instance detection.

The lockfile format becomes: {original_name}_{namespace_inode}.lock,
ensuring unique identification across different PID namespaces.

Signed-off-by: ComixHe <heyuming@deepin.org>
2025-07-22 14:19:01 +08:00
yeshanshan dc2eaeb61c docs: update REUSE license file for CHANGELOG
Added CHANGELOG.md to the list of files under CC-BY-4.0 license
in .reuse/dep5
This change ensures proper licensing attribution for the changelog file
The modification follows the project's REUSE compliance standards

docs: 更新 REUSE 许可文件以包含 CHANGELOG

在 .reuse/dep5 文件中将 CHANGELOG.md 添加到 CC-BY-4.0 许可证下的文件列表
此变更确保了对变更日志文件的正确许可归属
修改遵循项目的 REUSE 合规标准
2025-07-21 09:55:22 +08:00
github-actions[bot] 4dd22b538d chore: New release 5.7.19
Log:
2025-07-03 13:23:09 +00:00
yeshanshan 2ea4e762fe fix: enhance build security hardening
1. Added security hardening compiler flags in debian/rules including
stack protection and RELRO
2. Removed redundant linker flag from dtkgui.cmake that was already set
in debian/rules
3. Consolidated security-related build flags in debian/rules for better
maintainability
4. The changes improve binary security against common exploits while
maintaining compatibility

fix: 增强构建安全加固

1. 在debian/rules中添加了安全加固编译标志,包括栈保护和RELRO
2. 从dtkgui.cmake中移除了已在debian/rules中设置的冗余链接器标志
3. 将安全相关的构建标志整合到debian/rules中以提高可维护性
4. 这些改动提高了二进制文件对常见漏洞攻击的防护能力,同时保持兼容性
2025-07-03 13:03:14 +00:00
github-actions[bot] 18388f26f8 chore: New release 5.7.18
Log:
2025-06-27 09:19:06 +00:00
yeshanshan 9e54cbfad4 fix: make version parameter optional in release workflow
1. Changed version parameter from required to optional in GitHub
workflow
2. Fixed spec file formatting by aligning Version and Release fields
3. Added %{?dist} macro to Release field for proper RPM building

The changes make the release workflow more flexible by allowing version-
less releases while maintaining proper RPM spec file formatting and
distribution tagging. This helps with automated release processes and
ensures consistent package building across different distributions.

fix: 在发布工作流中使版本参数可选

1. 将 GitHub 工作流中的版本参数从必填改为可选
2. 修复 spec 文件格式,对齐 Version 和 Release 字段
3. 在 Release 字段添加 %{?dist} 宏以支持正确的 RPM 构建

这些变更使发布工作流更加灵活,允许无版本号的发布,同时保持 RPM spec 文件
的正确格式和分发标签。这有助于自动化发布流程并确保在不同发行版上一致的软
件包构建。
2025-06-27 16:43:59 +08:00
github-actions[bot] 6ff5c37579 chore(rpm): New release 5.7.17
Log:
2025-06-19 10:22:12 +08:00
asterwyx dd35e33644 chore: update .syncexclude
Exclude CHANGELOG.md.
2025-06-18 17:03:05 +08:00
Yixue Wang f834cb588d feat(ci): Add auto release workflow
Log: as title
2025-06-11 11:46:44 +08:00
Yixue Wang 9f500cbe94 feat: Support VERSION file
Use VERSION file to manage DTK version. VERSION file defines package
version. It also decides the initial value of cached variable
DTK_VERSION which controls the project version in cmake build system.
VERSION file is not synchronized to DTK6, as DTK6 has its own VERSION
file. One can still pass version to DTK_VERSION when running cmake
configure. This is helpful for developers.

Signed-off-by: Yixue Wang <wangyixue@deepin.org>
2025-06-11 11:46:44 +08:00
Wang Zichong 44bed9e070 fix: add missing prefix for QTranslator::load()
Log:
2025-06-06 18:12:53 +08:00
ComixHe 3f1cfd6800 fix: add missing header
Signed-off-by: ComixHe <heyuming@deepin.org>
2025-06-06 10:10:42 +08:00
Wang Zichong 1f44c47e55 chore: use another QTranslator::load overload to tidy code
使用另一个 QTranslator::load 重载来使代码更简洁,并潜在的支持
QLocale::uiLanguages().

并且添加了一个额外的接口来方便其他项目更方便的调用.

Log:
2025-06-04 09:54:37 +00:00
Ye ShanShan 28c53f37e7 chore: bump version to 5.7.16
update changelog to 5.7.16
2025-05-19 09:26:17 +00:00
Ye ShanShan 75d176f234 chore: bump version to 5.7.15
update changelog to 5.7.15
2025-05-08 10:48:29 +00:00
Ye ShanShan 6d6a4a4380 fix: correct bitwise operation in preference handling
1. Fixed incorrect bitwise AND operation in OrgDeepinDTKPreference class
2. Changed `fetchAndAndOrdered(1 << (index - 0))` to
`fetchAndAndOrdered(~(1 << (index - 0)))`
3. This ensures proper bit clearing operation when updating property
status flags
4. The original code would incorrectly set bits instead of clearing them

fix: 修复偏好设置处理中的位操作错误

1. 修正了 OrgDeepinDTKPreference 类中错误的位与操作
2. 将 `fetchAndAndOrdered(1 << (index - 0))` 改为
`fetchAndAndOrdered(~(1 << (index - 0)))`
3. 确保在更新属性状态标志时正确的位清除操作
4. 原代码会错误地设置位而不是清除它们
2025-05-08 09:52:03 +00:00
Ye ShanShan ed252239b2 fix: prevent theme saving when DontSaveApplicationTheme is set
Added a condition to check DontSaveApplicationTheme attribute before
saving theme type to config
This prevents unwanted theme persistence when the application explicitly
requests not to save theme preferences
The change maintains backward compatibility while respecting the
application's preference flag

fix: 当设置DontSaveApplicationTheme时阻止主题保存

在将主题类型保存到配置前添加了检查DontSaveApplicationTheme属性的条件
这可以防止当应用程序明确要求不保存主题偏好时进行不必要的主题持久化
该改动在尊重应用程序偏好标志的同时保持了向后兼容性
2025-05-08 09:52:03 +00:00
Ye ShanShan aa13f2a82f refactor: improve thread safety in OrgDeepinDTKPreference
1. Changed parent initialization from direct assignment to nullptr in
constructor
2. Added QPointer to track parent object for thread safety
3. Implemented parent object verification before setting parent
relationship
4. Added safety checks for parent object changes during thread
operations
5. Updated build path in file header comment

refactor: 改进 OrgDeepinDTKPreference 的线程安全性

1. 将构造函数中的父对象初始化改为直接赋值为 nullptr
2. 添加 QPointer 用于线程安全的父对象跟踪
3. 在设置父子关系前实现父对象验证
4. 添加线程操作期间父对象变化的安全检查
5. 更新文件头注释中的构建路径
2025-05-07 03:45:13 +00:00
Ye ShanShan decbf724b3 fix: build failed in qt5
Changed Q_GLOBAL_STATIC to Q_GLOBAL_STATIC_WITH_ARGS for
OrgDeepinDTKPreference initialization
This modification provides better type safety and clearer syntax for the
complex initialization parameters
The change maintains the same functionality while following Qt's
recommended practices for static initialization

refactor: 更新 DConfig 初始化语法

将 Q_GLOBAL_STATIC 改为 Q_GLOBAL_STATIC_WITH_ARGS 用于
OrgDeepinDTKPreference 初始化
此修改为复杂的初始化参数提供了更好的类型安全性和更清晰的语法
该变更保持了相同的功能,同时遵循 Qt 推荐的静态初始化实践
2025-04-29 06:03:39 +00:00
JiDe Zhang 7c2b35ae42 feat: use dconfig2cpp for read/write the DConfig
The org.deepin.dtk.preference.json file is not in this project, so
we can't generated codes by cmake.
2025-04-25 10:03:22 +08:00
JiDe Zhang ec6fbaf651 fix: fix build on Qt 6.8
Maybe start from 6.8.1
2025-04-25 10:03:22 +08:00
Ye ShanShan d3b68df561 chore: bump version to 5.7.14
update changelog to 5.7.14
2025-04-17 13:56:22 +00:00
ComixHe 5eb6b4c403 build: compiling failed with Qt 6.9
Signed-off-by: ComixHe <heyuming@deepin.org>
2025-04-17 06:25:31 +00:00
Ye ShanShan 75208f151f chore: bump version to 5.7.13
update changelog to 5.7.13
2025-03-20 18:07:30 +08:00
Ye ShanShan 5ce8bf3755 chore: bump version to 5.7.12
update changelog to 5.7.12
2025-03-06 17:40:25 +08:00
Ye ShanShan 0a0182faac fix: palette refresh delayed in qt6
QGuiApplication::paletteChanged is deprecated in qt6,
Delay to emit themeTypeChanged signal, palette doesn't refresh
after sending ThemeChangeEvent.

pms: BUG-303929
2025-03-06 15:49:13 +08:00
jingshenghao c52610f23c feat: Add files generated by qdbusXML2cpp and DCONG2cpp
Add files generated by qdbusXML2cpp and DCONG2cpp

Log: Add files generated by qdbusXML2cpp and DCONG2cpp
2025-03-04 20:04:38 +08:00
Ye ShanShan 6cc9f8ac48 chore: bump version to 5.7.11
update changelog to 5.7.11
2025-02-27 21:05:15 +08:00
Ye ShanShan 8110fd861e chore: bump version to 5.7.10
update changelog to 5.7.10
2025-02-13 11:01:28 +00:00
Ye ShanShan 3c16e777fe fix: icon is blurry
iconSize doesn't multiplied by devicePixelRatio in pixmap,
but it's doesn't need to be in qt5.

pms:BUG-302919
2025-02-13 02:33:28 +00:00
deepin-ci-robot c0812b7af6 chore: update changelog
Release 5.7.9.
2025-01-23 09:47:46 +00:00
deepin-ci-robot b0c91b8714 chore: update changelog
Release 5.7.8.
2025-01-14 20:02:14 +08:00
zhangkun dc5aa91b44 chore: update default window corner size
The default value is 12

pms: BUG-286881
2025-01-14 07:53:30 +00:00
YeShanShan 976aa9113c fix: missing window decoration for treeland
It's exist when using DPlatformHandle by stack variable.
We save window decoration state in DTreeLandPlatformWindowHelper, and refresh them when surface created.

pms: BUG-278281
2025-01-14 13:06:43 +08:00
deepin-ci-robot b566c12e40 chore: update changelog
Release 5.7.7.
2025-01-09 18:33:34 +08:00
Felix Yan 329bf5a247 chore: correct typos about Dtk::Gui::DDciIcon::IconAttribute
Renaming enum would break ABI, but using doesn't modify ABI.

pms: BUG-368399
2025-01-09 16:17:49 +08:00
YeShanShan 7362e047b7 fix: accessing wild pointer in qt6
qobject_cast<QWindow*>(window) is returned nullptr if window is destroyed in qt6, and we can see it  on tst_QWindow::qobject_castOnDestruction() in tst_qwindow.cpp.
Object's address may be the same as before  in qt6,  memory may be optimized.

pms: BUG-299239
2025-01-09 14:29:21 +08:00
deepin-ci-robot 1ede364ac6 chore: update changelog
Release 5.7.6.
2025-01-02 06:40:54 +00:00
zhangkun e0873d04b3 fix: set font family invalid
FamilyResolved flag not set

pms: BUG-295665
2025-01-01 14:23:50 +08:00
Ye ShanShan acd947fa3e fix: iterator out of bounds for dciicon
Add check.

pms: TASK-368399
2024-12-27 10:54:13 +08:00
Ye ShanShan b152721ae8 refact: refacting DPlatformHandle to adapt treeland
Refact DPlatformHandle to update window settings.
Remove task dequeue in treeland interface when Personalization is inactive.
Add DTreeLandPlatformWindowHelper to manage windowContext.

pms: TASK-368399
2024-12-25 15:09:20 +08:00
Ye ShanShan 4bdfc69e31 Revert "refact: refacting DPlatformHandle to adap treeland"
This reverts commit e33a3945b2.
2024-12-25 15:09:20 +08:00
Ye ShanShan e33a3945b2 refact: refacting DPlatformHandle to adap treeland
Refacting DPlatformHandle to update window settings.
2024-12-24 16:39:11 +08:00