Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: icon scaling and improve performance in item delegates #2575

Merged
merged 3 commits into from
Feb 13, 2025

Conversation

Johnson-zs
Copy link
Contributor

No description provided.

The icon scaling mechanism was affected by changes in Qt's scaling
behavior from qtbase change I563553. This caused incorrect icon sizes
when using painter->drawPixmap directly. While QIcon::paint would work
correctly, it has significant performance overhead.

Changes made:
- Calculate proper device pixel ratio scaled size for icons
- Maintain aspect ratio when scaling icons to fit target area
- Replace QIcon::paint with optimized QPixmap drawing
- Use QRectF to avoid rounding errors in icon placement

This change improves performance while ensuring correct icon scaling
and positioning across different DPI settings.

Log:

Bug: https://pms.uniontech.com/bug-view-286281.html
Bug: https://pms.uniontech.com/bug-view-302075.html
Bug: https://pms.uniontech.com/bug-view-296687.html
Bug: https://pms.uniontech.com/bug-view-302279.html
@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Johnson-zs

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

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

This commit addresses an issue where event registration for certain
plugins was failing intermittently due to the order in which plugins
were being started. The registration process was not properly
synchronized with the plugin lifecycle, leading to missed events.

Changes made:
- Introduced a mechanism to register plugins only after confirming
  their startup state.
- Added callbacks to ensure that event registration occurs when the
  corresponding plugin is fully initialized.
- Improved the connection handling for plugin state changes to
  prevent race conditions.

This fix enhances the reliability of event registration across
plugins and ensures that all necessary events are properly handled
during the plugin lifecycle.

Log:

Bug: https://pms.uniontech.com/bug-view-303391.html
@Johnson-zs
Copy link
Contributor Author

/forcemerge

@deepin-bot
Copy link
Contributor

deepin-bot bot commented Feb 13, 2025

This pr force merged! (status: blocked)

@deepin-bot deepin-bot bot merged commit a165a8d into linuxdeepin:master Feb 13, 2025
17 of 20 checks passed
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.

2 participants