From e5e0d9e66b905b65e42b34ba023dc9acf7d21c40 Mon Sep 17 00:00:00 2001 From: deepin-ci-robot Date: Tue, 8 Oct 2024 11:29:16 +0000 Subject: [PATCH] sync: from linuxdeepin/dtkwidget Synchronize source files from linuxdeepin/dtkwidget. Source-pull-request: https://github.com/linuxdeepin/dtkwidget/pull/609 --- include/widgets/dswitchbutton.h | 1 + src/widgets/dbounceanimation.cpp | 2 +- src/widgets/dmessagemanager.cpp | 2 +- src/widgets/dswitchbutton.cpp | 11 +++++++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/include/widgets/dswitchbutton.h b/include/widgets/dswitchbutton.h index 81ecea91f..07795d953 100644 --- a/include/widgets/dswitchbutton.h +++ b/include/widgets/dswitchbutton.h @@ -30,6 +30,7 @@ class LIBDTKWIDGETSHARED_EXPORT DSwitchButton : public QAbstractButton, public D protected: void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE; void initStyleOption(DStyleOptionButton *option) const; + void checkStateSet() Q_DECL_OVERRIDE; private: D_DECLARE_PRIVATE(DSwitchButton) diff --git a/src/widgets/dbounceanimation.cpp b/src/widgets/dbounceanimation.cpp index d574375a7..496d602f5 100644 --- a/src/widgets/dbounceanimation.cpp +++ b/src/widgets/dbounceanimation.cpp @@ -50,7 +50,7 @@ bool DBounceAnimation::eventFilter(QObject *o, QEvent *e) if (auto absscroll = dynamic_cast(o)) { if (auto wheelEvent = dynamic_cast(e)) { if (absscroll->verticalScrollBar()->value() <= 0 || absscroll->verticalScrollBar()->value() >= absscroll->verticalScrollBar()->maximum()) { - d->m_deltaSum += wheelEvent->delta(); + d->m_deltaSum += wheelEvent->pixelDelta().x() != 0 ? wheelEvent->pixelDelta().x() : wheelEvent->pixelDelta().y(); bounceBack(wheelEvent->angleDelta().x() == 0 ? Qt::Vertical : Qt::Horizontal); } } diff --git a/src/widgets/dmessagemanager.cpp b/src/widgets/dmessagemanager.cpp index 043731e81..f51472410 100644 --- a/src/widgets/dmessagemanager.cpp +++ b/src/widgets/dmessagemanager.cpp @@ -37,7 +37,7 @@ class ImageLabel : public QLabel { QPainter p(this); p.setRenderHint(QPainter::Antialiasing); p.setOpacity(m_opacity); - p.drawPixmap(rect().marginsRemoved(contentsMargins()), *pixmap()); + p.drawPixmap(rect().marginsRemoved(contentsMargins()), pixmap(Qt::ReturnByValue)); }; private: qreal m_opacity; diff --git a/src/widgets/dswitchbutton.cpp b/src/widgets/dswitchbutton.cpp index 48e5d1bc0..dc3a82c73 100644 --- a/src/widgets/dswitchbutton.cpp +++ b/src/widgets/dswitchbutton.cpp @@ -94,6 +94,17 @@ void DSwitchButton::initStyleOption(DStyleOptionButton *option) const option->rect.adjust(4, 4, -4, -4); } +void DSwitchButton::checkStateSet() +{ + D_D(DSwitchButton); + if (isChecked() == d->checked) { + return; + } + d->checked = isChecked(); + DDciIcon icon = !d->checked ? DDciIcon::fromTheme("switch_on") : DDciIcon::fromTheme("switch_off"); + d->player.setIcon(icon); +} + DSwitchButtonPrivate::DSwitchButtonPrivate(DSwitchButton *qq) : DObjectPrivate(qq) {