提交 21a32def 编写于 作者: C Clayton Groeneveld 提交者: jp9000

UI: Simplify locked/visibility checkboxes

上级 189e4883
#include <QPaintEvent>
#include <QPixmap>
#include <QPainter>
#include "locked-checkbox.hpp"
#include <util/c99defs.h>
LockedCheckBox::LockedCheckBox() : QCheckBox()
{
QString lockedFile;
QString unlockedFile;
if (devicePixelRatio() >= 2) {
lockedFile = ":/res/images/locked_mask_2x.png";
unlockedFile = ":/res/images/unlocked_mask_2x.png";
} else {
lockedFile = ":/res/images/locked_mask.png";
unlockedFile = ":/res/images/unlocked_mask.png";
}
lockedImage = QPixmap::fromImage(QImage(lockedFile));
unlockedImage = QPixmap::fromImage(QImage(unlockedFile));
setMinimumSize(16, 16);
setStyleSheet("outline: none;");
}
void LockedCheckBox::paintEvent(QPaintEvent *event)
{
UNUSED_PARAMETER(event);
QPixmap &pixmap = isChecked() ? lockedImage : unlockedImage;
QImage image(pixmap.size(), QImage::Format_ARGB32);
QPainter draw(&image);
draw.setCompositionMode(QPainter::CompositionMode_Source);
draw.drawPixmap(0, 0, pixmap.width(), pixmap.height(), pixmap);
draw.setCompositionMode(QPainter::CompositionMode_SourceIn);
draw.fillRect(QRectF(QPointF(0.0f, 0.0f), pixmap.size()),
palette().color(foregroundRole()));
QPainter p(this);
p.drawPixmap(0, 0, 16, 16, QPixmap::fromImage(image));
}
#pragma once
#include <QCheckBox>
#include <QPixmap>
class QPaintEvernt;
class LockedCheckBox : public QCheckBox {
Q_OBJECT
QPixmap lockedImage;
QPixmap unlockedImage;
public:
LockedCheckBox();
protected:
void paintEvent(QPaintEvent *event) override;
};
#include <QPaintEvent>
#include <QPixmap>
#include <QPainter>
#include "visibility-checkbox.hpp"
#include <util/c99defs.h>
VisibilityCheckBox::VisibilityCheckBox() : QCheckBox()
{
QString checkedFile;
QString uncheckedFile;
if (devicePixelRatio() >= 2) {
checkedFile = ":/res/images/visible_mask_2x.png";
uncheckedFile = ":/res/images/invisible_mask_2x.png";
} else {
checkedFile = ":/res/images/visible_mask.png";
uncheckedFile = ":/res/images/invisible_mask.png";
}
checkedImage = QPixmap::fromImage(QImage(checkedFile));
uncheckedImage = QPixmap::fromImage(QImage(uncheckedFile));
setMinimumSize(16, 16);
setStyleSheet("outline: none;");
}
void VisibilityCheckBox::paintEvent(QPaintEvent *event)
{
UNUSED_PARAMETER(event);
QPixmap &pixmap = isChecked() ? checkedImage : uncheckedImage;
QImage image(pixmap.size(), QImage::Format_ARGB32);
QPainter draw(&image);
draw.setCompositionMode(QPainter::CompositionMode_Source);
draw.drawPixmap(0, 0, pixmap.width(), pixmap.height(), pixmap);
draw.setCompositionMode(QPainter::CompositionMode_SourceIn);
draw.fillRect(QRectF(QPointF(0.0f, 0.0f), pixmap.size()),
palette().color(foregroundRole()));
QPainter p(this);
p.drawPixmap(0, 0, 16, 16, QPixmap::fromImage(image));
}
#pragma once
#include <QCheckBox>
#include <QPixmap>
class QPaintEvernt;
class VisibilityCheckBox : public QCheckBox {
Q_OBJECT
QPixmap checkedImage;
QPixmap uncheckedImage;
public:
VisibilityCheckBox();
protected:
void paintEvent(QPaintEvent *event) override;
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册