mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
fix: network refresh button support hidpi
Change-Id: I0960678c43f125881126f5919878d3d9720a4e1f
This commit is contained in:
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
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user