15 changed files with 26 additions and 102 deletions
@ -1,39 +0,0 @@ |
|||
#include "svgimageprovider.h" |
|||
|
|||
#include <QtGui/QGuiApplication> |
|||
#include <QtGui/QPainter> |
|||
#include <QtGui/QScreen> |
|||
|
|||
#include <QtSvg/QSvgRenderer> |
|||
|
|||
using namespace QtMvvm; |
|||
|
|||
SvgImageProvider::SvgImageProvider() : |
|||
QQuickImageProvider(Image) |
|||
{} |
|||
|
|||
QImage SvgImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize) |
|||
{ |
|||
auto path = QStringLiteral(":/%1.svg").arg(id); |
|||
QScopedPointer<QSvgRenderer, QScopedPointerDeleteLater> renderer(new QSvgRenderer(path)); |
|||
if(renderer->isValid()) { |
|||
QSize tSize; |
|||
if(requestedSize.isValid()) |
|||
tSize = requestedSize; |
|||
else { |
|||
tSize = renderer->defaultSize(); |
|||
tSize *= QGuiApplication::primaryScreen()->devicePixelRatio(); |
|||
} |
|||
|
|||
QImage image(tSize, QImage::Format_ARGB32_Premultiplied); |
|||
image.fill(Qt::transparent); |
|||
QPainter painter(&image); |
|||
renderer->render(&painter); |
|||
*size = image.size(); |
|||
|
|||
return image; |
|||
} else { |
|||
*size = QSize(); |
|||
return QImage(); |
|||
} |
|||
} |
@ -1,18 +0,0 @@ |
|||
#ifndef QTMVVM_SVGIMAGEPROVIDER_H |
|||
#define QTMVVM_SVGIMAGEPROVIDER_H |
|||
|
|||
#include <QtQuick/QQuickImageProvider> |
|||
|
|||
namespace QtMvvm { |
|||
|
|||
class SvgImageProvider : public QQuickImageProvider |
|||
{ |
|||
public: |
|||
explicit SvgImageProvider(); |
|||
|
|||
QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override; |
|||
}; |
|||
|
|||
} |
|||
|
|||
#endif // QTMVVM_SVGIMAGEPROVIDER_H
|
Loading…
Reference in new issue