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