From aed47778b6677f3a4ca5f87e806191f25de3c6a9 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 19 Oct 2016 15:32:03 +0300 Subject: Ignore .svgz images unless compression is enabled The imageformats plugin was trying to pass them off to QSvgRenderer, which can't handle them when QT_NO_COMPRESS is defined. Change-Id: I92241370d8fd4ed2328fb13a01306fa8a7e5ef6e Reviewed-by: Edward Welbourne Reviewed-by: Eirik Aavitsland --- src/plugins/imageformats/svg/main.cpp | 4 ++++ src/plugins/imageformats/svg/qsvgiohandler.cpp | 13 +++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/imageformats/svg/main.cpp b/src/plugins/imageformats/svg/main.cpp index bf908f9..8eb80b3 100644 --- a/src/plugins/imageformats/svg/main.cpp +++ b/src/plugins/imageformats/svg/main.cpp @@ -62,7 +62,11 @@ QStringList QSvgPlugin::keys() const QImageIOPlugin::Capabilities QSvgPlugin::capabilities(QIODevice *device, const QByteArray &format) const { +#ifndef QT_NO_COMPRESS if (format == "svg" || format == "svgz") +#else + if (format == "svg") +#endif return Capabilities(CanRead); if (!format.isEmpty()) return 0; diff --git a/src/plugins/imageformats/svg/qsvgiohandler.cpp b/src/plugins/imageformats/svg/qsvgiohandler.cpp index 8a9cbb2..7a9c337 100644 --- a/src/plugins/imageformats/svg/qsvgiohandler.cpp +++ b/src/plugins/imageformats/svg/qsvgiohandler.cpp @@ -82,8 +82,10 @@ bool QSvgIOHandlerPrivate::load(QIODevice *device) const QByteArray &ba = buf->data(); res = r.load(QByteArray::fromRawData(ba.constData() + buf->pos(), ba.size() - buf->pos())); buf->seek(ba.size()); +#ifndef QT_NO_COMPRESS } else if (q->format() == "svgz") { res = r.load(device->readAll()); +#endif } else { xmlReader.setDevice(device); res = r.load(&xmlReader); @@ -119,10 +121,13 @@ bool QSvgIOHandler::canRead() const return true; // Will happen if we have been asked for the size QByteArray buf = device()->peek(8); +#ifndef QT_NO_COMPRESS if (buf.startsWith("\x1f\x8b")) { setFormat("svgz"); return true; - } else if (buf.contains("peek(8); - return buf.startsWith("\x1f\x8b") || buf.contains(" Date: Thu, 3 Nov 2016 18:24:08 +0100 Subject: remove dependencies from sync.profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the CI obtains them from the qt5 super repo nowadays. Change-Id: Ib4d20a382925262109c5d5f63372d767af188aba Reviewed-by: Jędrzej Nowacki --- sync.profile | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/sync.profile b/sync.profile index e7d8f15..cd6c4bf 100644 --- a/sync.profile +++ b/sync.profile @@ -3,13 +3,3 @@ ); %moduleheaders = ( # restrict the module headers to those found in relative path ); -# Module dependencies. -# Every module that is required to build this module should have one entry. -# Each of the module version specifiers can take one of the following values: -# - A specific Git revision. -# - any git symbolic ref resolvable from the module's repository (e.g. "refs/heads/master" to track master branch) -# - an empty string to use the same branch under test (dependencies will become "refs/heads/master" if we are in the master branch) -# -%dependencies = ( - "qtbase" => "", -); -- cgit v1.2.1 From 6d4eead2c5406b8cf23cf3648ea619338ac7f68a Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 19 Oct 2016 15:46:58 +0300 Subject: Imageformat plugin: Add mime type "image/svg+xml-compressed" Change-Id: I3cf5d9b6d6212128adab4682de33b192672f7c1f Reviewed-by: Edward Welbourne Reviewed-by: Eirik Aavitsland --- src/plugins/imageformats/svg/svg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/imageformats/svg/svg.json b/src/plugins/imageformats/svg/svg.json index c8825d4..970914d 100644 --- a/src/plugins/imageformats/svg/svg.json +++ b/src/plugins/imageformats/svg/svg.json @@ -1,4 +1,4 @@ { "Keys": [ "svg", "svgz" ], - "MimeTypes": [ "image/svg+xml" ] + "MimeTypes": [ "image/svg+xml", "image/svg+xml-compressed" ] } -- cgit v1.2.1 From 4704ecbf79053f2e1cde3c869b03c769be6ef207 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 19 Oct 2016 15:50:15 +0300 Subject: Use separate metadata files for plugins if QT_NO_COMPRESS is defined Change-Id: Ib15aa96c2ed84cf3ce9793385476f9fb3cacec8c Reviewed-by: Edward Welbourne Reviewed-by: Oswald Buddenhagen Reviewed-by: Eirik Aavitsland --- src/plugins/iconengines/svgiconengine/main.cpp | 4 ++++ src/plugins/iconengines/svgiconengine/qsvgiconengine-nocompress.json | 3 +++ src/plugins/iconengines/svgiconengine/svgiconengine.pro | 1 + src/plugins/imageformats/svg/main.cpp | 4 ++++ src/plugins/imageformats/svg/svg-nocompress.json | 4 ++++ 5 files changed, 16 insertions(+) create mode 100644 src/plugins/iconengines/svgiconengine/qsvgiconengine-nocompress.json create mode 100644 src/plugins/imageformats/svg/svg-nocompress.json diff --git a/src/plugins/iconengines/svgiconengine/main.cpp b/src/plugins/iconengines/svgiconengine/main.cpp index 8822982..0eade5a 100644 --- a/src/plugins/iconengines/svgiconengine/main.cpp +++ b/src/plugins/iconengines/svgiconengine/main.cpp @@ -47,7 +47,11 @@ QT_BEGIN_NAMESPACE class QSvgIconPlugin : public QIconEnginePlugin { Q_OBJECT +#ifndef QT_NO_COMPRESS Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QIconEngineFactoryInterface" FILE "qsvgiconengine.json") +#else + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QIconEngineFactoryInterface" FILE "qsvgiconengine-nocompress.json") +#endif public: QStringList keys() const; diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine-nocompress.json b/src/plugins/iconengines/svgiconengine/qsvgiconengine-nocompress.json new file mode 100644 index 0000000..a3e1ac3 --- /dev/null +++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine-nocompress.json @@ -0,0 +1,3 @@ +{ + "Keys": [ "svg" ] +} diff --git a/src/plugins/iconengines/svgiconengine/svgiconengine.pro b/src/plugins/iconengines/svgiconengine/svgiconengine.pro index eb6847b..bfc739f 100644 --- a/src/plugins/iconengines/svgiconengine/svgiconengine.pro +++ b/src/plugins/iconengines/svgiconengine/svgiconengine.pro @@ -4,6 +4,7 @@ HEADERS += qsvgiconengine.h SOURCES += main.cpp \ qsvgiconengine.cpp OTHER_FILES += qsvgiconengine.json +OTHER_FILES += qsvgiconengine-nocompress.json QT += svg core-private gui-private PLUGIN_TYPE = iconengines diff --git a/src/plugins/imageformats/svg/main.cpp b/src/plugins/imageformats/svg/main.cpp index 8eb80b3..24a61b8 100644 --- a/src/plugins/imageformats/svg/main.cpp +++ b/src/plugins/imageformats/svg/main.cpp @@ -47,7 +47,11 @@ QT_BEGIN_NAMESPACE class QSvgPlugin : public QImageIOPlugin { Q_OBJECT +#ifndef QT_NO_COMPRESS Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "svg.json") +#else + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "svg-nocompress.json") +#endif public: QStringList keys() const; diff --git a/src/plugins/imageformats/svg/svg-nocompress.json b/src/plugins/imageformats/svg/svg-nocompress.json new file mode 100644 index 0000000..3b5a653 --- /dev/null +++ b/src/plugins/imageformats/svg/svg-nocompress.json @@ -0,0 +1,4 @@ +{ + "Keys": [ "svg" ], + "MimeTypes": [ "image/svg+xml" ] +} -- cgit v1.2.1 From b7afe09e68b8ac582d72a94aaa5ca7d15a3f3ed9 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Thu, 10 Nov 2016 17:15:59 +0300 Subject: Replace Q_DECL_OVERRIDE by override Change-Id: I05e7e2984c70173408491deeeb2df92a578f00f9 Reviewed-by: hjk --- src/svg/qsvggenerator.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp index 0abd403..f19be78 100644 --- a/src/svg/qsvggenerator.cpp +++ b/src/svg/qsvggenerator.cpp @@ -162,22 +162,22 @@ public: { } - bool begin(QPaintDevice *device) Q_DECL_OVERRIDE; - bool end() Q_DECL_OVERRIDE; + bool begin(QPaintDevice *device) override; + bool end() override; - void updateState(const QPaintEngineState &state) Q_DECL_OVERRIDE; + void updateState(const QPaintEngineState &state) override; void popGroup(); - void drawEllipse(const QRectF &r) Q_DECL_OVERRIDE; - void drawPath(const QPainterPath &path) Q_DECL_OVERRIDE; - void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) Q_DECL_OVERRIDE; - void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode) Q_DECL_OVERRIDE; - void drawRects(const QRectF *rects, int rectCount) Q_DECL_OVERRIDE; - void drawTextItem(const QPointF &pt, const QTextItem &item) Q_DECL_OVERRIDE; + void drawEllipse(const QRectF &r) override; + void drawPath(const QPainterPath &path) override; + void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) override; + void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode) override; + void drawRects(const QRectF *rects, int rectCount) override; + void drawTextItem(const QPointF &pt, const QTextItem &item) override; void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, - Qt::ImageConversionFlags flags = Qt::AutoColor) Q_DECL_OVERRIDE; + Qt::ImageConversionFlags flags = Qt::AutoColor) override; - QPaintEngine::Type type() const Q_DECL_OVERRIDE { return QPaintEngine::SVG; } + QPaintEngine::Type type() const override { return QPaintEngine::SVG; } QSize size() const { return d_func()->size; } void setSize(const QSize &size) { -- cgit v1.2.1 From 2e6bc23b8846893a87fc7a0496efed25a945917e Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 19 Oct 2016 15:09:16 +0300 Subject: Add missing 'override' keyword to plugins Change-Id: I423b8531434d221880410cb3b40f10e6061769ff Reviewed-by: Oswald Buddenhagen Reviewed-by: hjk Reviewed-by: Eirik Aavitsland --- src/plugins/iconengines/svgiconengine/main.cpp | 2 +- src/plugins/iconengines/svgiconengine/qsvgiconengine.h | 18 +++++++++--------- src/plugins/imageformats/svg/main.cpp | 4 ++-- src/plugins/imageformats/svg/qsvgiohandler.h | 12 ++++++------ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/plugins/iconengines/svgiconengine/main.cpp b/src/plugins/iconengines/svgiconengine/main.cpp index ebcdc82..ef1c8c1 100644 --- a/src/plugins/iconengines/svgiconengine/main.cpp +++ b/src/plugins/iconengines/svgiconengine/main.cpp @@ -55,7 +55,7 @@ class QSvgIconPlugin : public QIconEnginePlugin public: QStringList keys() const; - QIconEngine *create(const QString &filename = QString()); + QIconEngine *create(const QString &filename = QString()) override; }; QStringList QSvgIconPlugin::keys() const diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.h b/src/plugins/iconengines/svgiconengine/qsvgiconengine.h index 495a8b0..cf4f255 100644 --- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.h +++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.h @@ -54,21 +54,21 @@ public: QSvgIconEngine(const QSvgIconEngine &other); ~QSvgIconEngine(); void paint(QPainter *painter, const QRect &rect, - QIcon::Mode mode, QIcon::State state); + QIcon::Mode mode, QIcon::State state) override; QSize actualSize(const QSize &size, QIcon::Mode mode, - QIcon::State state); + QIcon::State state) override; QPixmap pixmap(const QSize &size, QIcon::Mode mode, - QIcon::State state); + QIcon::State state) override; void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, - QIcon::State state); + QIcon::State state) override; void addFile(const QString &fileName, const QSize &size, - QIcon::Mode mode, QIcon::State state); + QIcon::Mode mode, QIcon::State state) override; - QString key() const; - QIconEngine *clone() const; - bool read(QDataStream &in); - bool write(QDataStream &out) const; + QString key() const override; + QIconEngine *clone() const override; + bool read(QDataStream &in) override; + bool write(QDataStream &out) const override; private: QSharedDataPointer d; diff --git a/src/plugins/imageformats/svg/main.cpp b/src/plugins/imageformats/svg/main.cpp index f18c1b4..a01398c 100644 --- a/src/plugins/imageformats/svg/main.cpp +++ b/src/plugins/imageformats/svg/main.cpp @@ -57,8 +57,8 @@ class QSvgPlugin : public QImageIOPlugin public: QStringList keys() const; - Capabilities capabilities(QIODevice *device, const QByteArray &format) const; - QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const; + Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; + QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; }; QStringList QSvgPlugin::keys() const diff --git a/src/plugins/imageformats/svg/qsvgiohandler.h b/src/plugins/imageformats/svg/qsvgiohandler.h index 864031f..fdafa0a 100644 --- a/src/plugins/imageformats/svg/qsvgiohandler.h +++ b/src/plugins/imageformats/svg/qsvgiohandler.h @@ -57,13 +57,13 @@ class QSvgIOHandler : public QImageIOHandler public: QSvgIOHandler(); ~QSvgIOHandler(); - virtual bool canRead() const; - virtual QByteArray name() const; - virtual bool read(QImage *image); + bool canRead() const override; + QByteArray name() const override; + bool read(QImage *image) override; static bool canRead(QIODevice *device); - virtual QVariant option(ImageOption option) const; - virtual void setOption(ImageOption option, const QVariant & value); - virtual bool supportsOption(ImageOption option) const; + QVariant option(ImageOption option) const override; + void setOption(ImageOption option, const QVariant & value) override; + bool supportsOption(ImageOption option) const override; private: QSvgIOHandlerPrivate *d; -- cgit v1.2.1 From 83fe59a86cceb94695ac85211b4ededb08bc5949 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Thu, 10 Nov 2016 17:12:01 +0300 Subject: Remove unused methods from plugin classes Remove QIconEnginePlugin::keys() and QImageIOPlugin::keys(): they are not overriders since Qt 5.0. Change-Id: I9127b5b72c9c37b450c6f0d0095e47b8d5454322 Reviewed-by: Oswald Buddenhagen --- src/plugins/iconengines/svgiconengine/main.cpp | 10 ---------- src/plugins/imageformats/svg/main.cpp | 6 ------ 2 files changed, 16 deletions(-) diff --git a/src/plugins/iconengines/svgiconengine/main.cpp b/src/plugins/iconengines/svgiconengine/main.cpp index ef1c8c1..8c3f8bb 100644 --- a/src/plugins/iconengines/svgiconengine/main.cpp +++ b/src/plugins/iconengines/svgiconengine/main.cpp @@ -54,19 +54,9 @@ class QSvgIconPlugin : public QIconEnginePlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QIconEngineFactoryInterface" FILE "qsvgiconengine.json") public: - QStringList keys() const; QIconEngine *create(const QString &filename = QString()) override; }; -QStringList QSvgIconPlugin::keys() const -{ - QStringList keys(QLatin1String("svg")); -#ifndef QT_NO_COMPRESS - keys << QLatin1String("svgz") << QLatin1String("svg.gz"); -#endif - return keys; -} - QIconEngine *QSvgIconPlugin::create(const QString &file) { QSvgIconEngine *engine = new QSvgIconEngine; diff --git a/src/plugins/imageformats/svg/main.cpp b/src/plugins/imageformats/svg/main.cpp index a01398c..e92f25a 100644 --- a/src/plugins/imageformats/svg/main.cpp +++ b/src/plugins/imageformats/svg/main.cpp @@ -56,16 +56,10 @@ class QSvgPlugin : public QImageIOPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "svg.json") public: - QStringList keys() const; Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; }; -QStringList QSvgPlugin::keys() const -{ - return QStringList() << QLatin1String("svg") << QLatin1String("svgz"); -} - QImageIOPlugin::Capabilities QSvgPlugin::capabilities(QIODevice *device, const QByteArray &format) const { if (format == "svg" || format == "svgz") -- cgit v1.2.1