fix: network refresh button support hidpi

Change-Id: I0960678c43f125881126f5919878d3d9720a4e1f
This commit is contained in:
kirigaya 2017-09-27 13:11:54 +08:00 committed by Deepin Code Review
parent 3807c73115
commit c784f3c54c
Notes: Deepin Code Review 2017-09-27 13:21:54 +08:00
Verified+1: Anonymous Coward #1000004
Code-Review+2: 石博文 <sbw@sbw.so>
Submitted-by: kirigaya <kirigaya@mkacg.com>
Submitted-at: Wed, 27 Sep 2017 13:21:54 +0800
Reviewed-on: https://cr.deepin.io/26698
Project: dde/dde-dock
Branch: refs/heads/master
2 changed files with 35 additions and 5 deletions

View File

@ -23,32 +23,37 @@
#include <QMouseEvent>
#include <QEvent>
#include <QImageReader>
RefreshButton::RefreshButton(QWidget *parent) : QLabel(parent)
{
setAttribute(Qt::WA_TranslucentBackground);
setPixmap(QPixmap(":/wireless/resources/wireless/refresh_normal.svg"));
m_normalPixmap = loadPixmap(":/wireless/resources/wireless/refresh_normal.svg");
m_hoverPixmap = loadPixmap(":/wireless/resources/wireless/refresh_hover.svg");
m_pressPixmap = loadPixmap(":/wireless/resources/wireless/refresh_press.svg");
setPixmap(m_normalPixmap);
}
void RefreshButton::enterEvent(QEvent *event)
{
QLabel::enterEvent(event);
setPixmap(QPixmap(":/wireless/resources/wireless/refresh_hover.svg"));
setPixmap(m_hoverPixmap);
}
void RefreshButton::leaveEvent(QEvent *event)
{
QLabel::leaveEvent(event);
setPixmap(QPixmap(":/wireless/resources/wireless/refresh_normal.svg"));
setPixmap(m_normalPixmap);
}
void RefreshButton::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
setPixmap(QPixmap(":/wireless/resources/wireless/refresh_press.svg"));
setPixmap(m_pressPixmap);
}
void RefreshButton::mouseReleaseEvent(QMouseEvent *event)
@ -56,5 +61,22 @@ void RefreshButton::mouseReleaseEvent(QMouseEvent *event)
if (event->button() == Qt::LeftButton)
emit clicked();
setPixmap(QPixmap(":/wireless/resources/wireless/refresh_normal.svg"));
setPixmap(m_normalPixmap);
}
QPixmap RefreshButton::loadPixmap(const QString &file)
{
QPixmap pixmap;
const qreal ratio = devicePixelRatioF();
QImageReader reader;
reader.setFileName(file);
if (reader.canRead()) {
reader.setScaledSize(reader.size() * ratio);
pixmap = QPixmap::fromImage(reader.read());
pixmap.setDevicePixelRatio(ratio);
}
return pixmap;
}

View File

@ -39,6 +39,14 @@ protected:
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
private:
QPixmap loadPixmap(const QString &file);
private:
QPixmap m_normalPixmap;
QPixmap m_hoverPixmap;
QPixmap m_pressPixmap;
};
#endif // REFRESHBUTTON_H