1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
/*
* This file is part of the KDE project
* SPDX-FileCopyrightText: 2013 Arjen Hiemstra <ahiemstra@heimr.nl>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "CQThumbnailItem.h"
#include <QPainter>
class CQThumbnailItem::Private
{
public:
Private()
: contentWidth(-1)
, contentHeight(-1)
{
}
QPixmap content;
QString source;
int contentWidth;
int contentHeight;
};
CQThumbnailItem::CQThumbnailItem(QQuickItem *parent)
: QQuickPaintedItem(parent)
, d(new Private)
{
}
CQThumbnailItem::~CQThumbnailItem()
{
delete d;
}
void CQThumbnailItem::paint(QPainter *painter)
{
if (!d->content.isNull()) {
QPixmap pixmap = d->content.scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
int xpos = (width() - pixmap.width()) / 2;
int ypos = (height() - pixmap.height()) / 2;
painter->drawPixmap(xpos, ypos, pixmap);
}
}
QPixmap CQThumbnailItem::content() const
{
return d->content;
}
void CQThumbnailItem::setContent(const QPixmap &content)
{
d->content = content;
Q_EMIT contentChanged();
update();
}
|