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