UI: Simplify locked/visibility checkboxes
This commit is contained in:
parent
189e48835d
commit
21a32def35
@ -1,42 +0,0 @@
|
||||
#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));
|
||||
}
|
@ -1,19 +1,7 @@
|
||||
#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;
|
||||
};
|
||||
|
@ -1,42 +0,0 @@
|
||||
#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));
|
||||
}
|
@ -1,19 +1,7 @@
|
||||
#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;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user