mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
MaskablePixmapWidget: fixed drawing routine
This commit is contained in:
parent
4d24bd53f2
commit
97b5599651
|
@ -16,20 +16,17 @@
|
|||
|
||||
#include "maskablepixmapwidget.h"
|
||||
#include <QPainter>
|
||||
#include <QPaintEvent>
|
||||
|
||||
MaskablePixmapWidget::MaskablePixmapWidget(QWidget *parent, QSize size, QString maskName)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setMinimumSize(size);
|
||||
setMaximumSize(size);
|
||||
|
||||
mask = QPixmap(maskName).scaled(maximumSize(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
setFixedSize(size);
|
||||
mask = QPixmap(maskName).scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
|
||||
void MaskablePixmapWidget::setPixmap(const QPixmap &pmap)
|
||||
{
|
||||
pixmap = pmap.scaled(maximumSize(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
pixmap = pmap.scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
|
||||
QPixmap MaskablePixmapWidget::getPixmap() const
|
||||
|
@ -37,20 +34,20 @@ QPixmap MaskablePixmapWidget::getPixmap() const
|
|||
return pixmap;
|
||||
}
|
||||
|
||||
void MaskablePixmapWidget::paintEvent(QPaintEvent *ev)
|
||||
void MaskablePixmapWidget::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPixmap tmp(ev->rect().size());
|
||||
QPixmap tmp(width(), height());
|
||||
tmp.fill(Qt::transparent);
|
||||
|
||||
QPoint offset((ev->rect().size().width()-pixmap.size().width())/2,(ev->rect().size().height()-pixmap.size().height())/2);
|
||||
QPoint offset((width() - pixmap.size().width())/2,(height() - pixmap.size().height())/2); // centering the pixmap
|
||||
|
||||
QPainter painter(&tmp);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
painter.drawPixmap(offset,pixmap);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
|
||||
painter.drawPixmap(0,0,mask);
|
||||
|
||||
painter.end();
|
||||
|
||||
painter.begin(this);
|
||||
painter.drawPixmap(0,0,tmp);
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ signals:
|
|||
void clicked();
|
||||
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *ev);
|
||||
virtual void paintEvent(QPaintEvent *);
|
||||
virtual void mousePressEvent(QMouseEvent *);
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in New Issue
Block a user