diff --git a/src/imageformats/doc/src/qtimageformats.qdoc b/src/imageformats/doc/src/qtimageformats.qdoc
index c7f9687daac544f87a4a7b624cb694d4bf399690..90369ed0ac5b668df8b8d60c885476322c02f5bd 100644
--- a/src/imageformats/doc/src/qtimageformats.qdoc
+++ b/src/imageformats/doc/src/qtimageformats.qdoc
@@ -51,17 +51,21 @@ libraries. If not found, it may fall back on using a bundled copy (in
 \c src/3rdparty).
 
 \table
-\header \li Format \li Description                      \li Support      \li 3rd party codec
+\header \li Format \li Description                      \li Support      \li 3rd Party Codec
 \row    \li DDS    \li Direct Draw Surface              \li Read/write   \li No
 \row    \li ICNS   \li Apple Icon Image                 \li Read/write   \li No
-\row    \li JP2    \li Joint Photographic Experts Group 2000 \li Read/write   \li Yes (bundled)
-\row    \li MNG    \li Multiple-image Network Graphics  \li Read         \li Yes (bundled)
+\row    \li JP2    \li Joint Photographic Experts Group 2000 \li Read/write   \li Yes (bundled, unmaintained)
+\row    \li MNG    \li Multiple-image Network Graphics  \li Read         \li Yes (bundled, unmaintained)
 \row    \li TGA    \li Truevision Graphics Adapter      \li Read         \li No
 \row    \li TIFF   \li Tagged Image File Format         \li Read/write   \li Yes (bundled)
 \row    \li WBMP   \li Wireless Bitmap                  \li Read/write   \li No
 \row    \li WEBP   \li WebP                             \li Read/write   \li Yes (bundled)
 \endtable
 
+\note Some bundled third party codecs are not maintained anymore. They are
+provided for manual builds only, and not used as a fallback in case system
+libraries are unavailable.
+
 \section2 Deployment
 
 When built, the Qt Image Formats plugins are located as dynamic
diff --git a/src/plugins/imageformats/dds/main.cpp b/src/plugins/imageformats/dds/main.cpp
index 0c1db675bf23469ed00eed39a119ceba8028ff0f..837a5709e8120bd1e29677c298294451ab89ec30 100644
--- a/src/plugins/imageformats/dds/main.cpp
+++ b/src/plugins/imageformats/dds/main.cpp
@@ -53,8 +53,8 @@ class QDDSPlugin : public QImageIOPlugin
     Q_OBJECT
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "dds.json")
 public:
-    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;
 };
 
 QImageIOPlugin::Capabilities QDDSPlugin::capabilities(QIODevice *device, const QByteArray &format) const
diff --git a/src/plugins/imageformats/dds/qddshandler.cpp b/src/plugins/imageformats/dds/qddshandler.cpp
index 1d6a178c3ef951ee91ff0b30b01d3bf091a3f233..3a44b513f3ee08d0b230170fc716aa7ce9369825 100644
--- a/src/plugins/imageformats/dds/qddshandler.cpp
+++ b/src/plugins/imageformats/dds/qddshandler.cpp
@@ -996,7 +996,8 @@ static QImage readA2W10V10U10(QDataStream &s, quint32 width, quint32 height)
             quint8 b = qint8((tmp & 0x000003ff) >> 0 >> 2) + 128;
             quint8 a = 0xff * ((tmp & 0xc0000000) >> 30) / 3;
             // dunno why we should swap b and r here
-            line[x] = qRgba(b, g, r, a);
+            std::swap(b, r);
+            line[x] = qRgba(r, g, b, a);
         }
     }
 
@@ -1373,7 +1374,9 @@ static int formatByName(const QByteArray &name)
 }
 
 QDDSHandler::QDDSHandler() :
+    m_header(),
     m_format(FormatA8R8G8B8),
+    m_header10(),
     m_currentImage(0),
     m_scanState(ScanNotScanned)
 {
diff --git a/src/plugins/imageformats/dds/qddshandler.h b/src/plugins/imageformats/dds/qddshandler.h
index ad383e80c3831bb702efba35e9426df697f60c6b..665bd1648a0c59a68f24f65349a8645bded98c3b 100644
--- a/src/plugins/imageformats/dds/qddshandler.h
+++ b/src/plugins/imageformats/dds/qddshandler.h
@@ -53,18 +53,18 @@ class QDDSHandler : public QImageIOHandler
 public:
     QDDSHandler();
 
-    QByteArray name() const;
+    QByteArray name() const override;
 
-    bool canRead() const;
-    bool read(QImage *image);
-    bool write(const QImage &image);
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
 
-    QVariant option(QImageIOHandler::ImageOption option) const;
-    void setOption(ImageOption option, const QVariant &value);
-    bool supportsOption(QImageIOHandler::ImageOption option) const;
+    QVariant option(QImageIOHandler::ImageOption option) const override;
+    void setOption(ImageOption option, const QVariant &value) override;
+    bool supportsOption(QImageIOHandler::ImageOption option) const override;
 
-    int imageCount() const;
-    bool jumpToImage(int imageNumber);
+    int imageCount() const override;
+    bool jumpToImage(int imageNumber) override;
 
     static bool canRead(QIODevice *device);
 
diff --git a/src/plugins/imageformats/icns/main.cpp b/src/plugins/imageformats/icns/main.cpp
index abe78eba67453a742cc21b2b4b3e06835526023f..d25d884f3117ba1eb7adb1ad452bcec6cf1896f6 100644
--- a/src/plugins/imageformats/icns/main.cpp
+++ b/src/plugins/imageformats/icns/main.cpp
@@ -52,8 +52,8 @@ class QICNSPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "icns.json")
 
 public:
-    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;
 };
 
 QImageIOPlugin::Capabilities QICNSPlugin::capabilities(QIODevice *device, const QByteArray &format) const
diff --git a/src/plugins/imageformats/icns/qicnshandler_p.h b/src/plugins/imageformats/icns/qicnshandler_p.h
index 2ac975b9363e6db0721626f168f728f102c7a61f..84c7bf1c0c8368606321f7d08720eed35eb1e5d8 100644
--- a/src/plugins/imageformats/icns/qicnshandler_p.h
+++ b/src/plugins/imageformats/icns/qicnshandler_p.h
@@ -128,18 +128,18 @@ class QICNSHandler : public QImageIOHandler
 public:
     QICNSHandler();
 
-    bool canRead() const;
-    bool read(QImage *image);
-    bool write(const QImage &image);
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
 
-    QByteArray name() const;
+    QByteArray name() const override;
 
-    bool supportsOption(ImageOption option) const;
-    QVariant option(ImageOption option) const;
+    bool supportsOption(ImageOption option) const override;
+    QVariant option(ImageOption option) const override;
 
-    int imageCount() const;
-    bool jumpToImage(int imageNumber);
-    bool jumpToNextImage();
+    int imageCount() const override;
+    bool jumpToImage(int imageNumber) override;
+    bool jumpToNextImage() override;
 
     static bool canRead(QIODevice *device);
 
diff --git a/src/plugins/imageformats/imageformats.pro b/src/plugins/imageformats/imageformats.pro
index 24f5f84e1f46eb287fab093a49f7fa0db8ac9de6..118d7ea2e0e77127f38fec4d05ba176b2aff0a0f 100644
--- a/src/plugins/imageformats/imageformats.pro
+++ b/src/plugins/imageformats/imageformats.pro
@@ -1,6 +1,6 @@
 TEMPLATE = subdirs
 SUBDIRS = \
-    dds \
+#    dds \
     icns \
     tga \
     tiff \
diff --git a/src/plugins/imageformats/jp2/main.cpp b/src/plugins/imageformats/jp2/main.cpp
index 888a101a7dd0d5e40e9204ededb82202f1293a06..a1f1281fc7bffe0c43f055e7c51d5f8034feed7c 100644
--- a/src/plugins/imageformats/jp2/main.cpp
+++ b/src/plugins/imageformats/jp2/main.cpp
@@ -56,16 +56,10 @@ class QJp2Plugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "jp2.json")
 
 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 QJp2Plugin::keys() const
-{
-    return QStringList() << QLatin1String("jp2") << QLatin1String("j2k");
-}
-
 QImageIOPlugin::Capabilities QJp2Plugin::capabilities(QIODevice *device, const QByteArray &format) const
 {
     if (format == "jp2" || format == "j2k")
diff --git a/src/plugins/imageformats/jp2/qjp2handler_p.h b/src/plugins/imageformats/jp2/qjp2handler_p.h
index 0264a9e551c5a407dfe1a0fcbd3eb27e7399cc26..e81ec9e7171c548f95646ae16593320203e52710 100644
--- a/src/plugins/imageformats/jp2/qjp2handler_p.h
+++ b/src/plugins/imageformats/jp2/qjp2handler_p.h
@@ -56,15 +56,15 @@ class QJp2Handler : public QImageIOHandler
 {
 public:
     QJp2Handler();
-    virtual ~QJp2Handler();
+    ~QJp2Handler();
     static bool canRead(QIODevice *iod, QByteArray *subType);
-    virtual bool canRead() const;
-    virtual bool read(QImage *image);
-    virtual bool write(const QImage &image);
-    virtual QVariant option(ImageOption option) const;
-    virtual void setOption(ImageOption option, const QVariant &value);
-    virtual bool supportsOption(ImageOption option) const;
-    virtual QByteArray name() const;
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
+    QVariant option(ImageOption option) const override;
+    void setOption(ImageOption option, const QVariant &value) override;
+    bool supportsOption(ImageOption option) const override;
+    QByteArray name() const override;
 
 private:
     Q_DECLARE_PRIVATE(QJp2Handler)
diff --git a/src/plugins/imageformats/macjp2/main.cpp b/src/plugins/imageformats/macjp2/main.cpp
index 95f7175997882563c833dd9e88f0075de4cff9f8..08b497e0afafafe365b8de205e96406d588340be 100644
--- a/src/plugins/imageformats/macjp2/main.cpp
+++ b/src/plugins/imageformats/macjp2/main.cpp
@@ -49,16 +49,10 @@ class QMacJp2Plugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "macjp2.json")
 
 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 QMacJp2Plugin::keys() const
-{
-    return QStringList() << QStringLiteral("jp2");
-}
-
 QImageIOPlugin::Capabilities QMacJp2Plugin::capabilities(QIODevice *device, const QByteArray &format) const
 {
     if (format == "jp2")
diff --git a/src/plugins/imageformats/macjp2/qiiofhelpers.cpp b/src/plugins/imageformats/macjp2/qiiofhelpers.cpp
index 99903b08f778449aa58caa31db8f2e1a24c77430..c8949323930f22141c9eed27d1dde057ef571bfe 100644
--- a/src/plugins/imageformats/macjp2/qiiofhelpers.cpp
+++ b/src/plugins/imageformats/macjp2/qiiofhelpers.cpp
@@ -74,7 +74,7 @@ static off_t cbSkipForward(void *info, off_t count)
     } else {
         char *buf = new char[count];
         res = dev->read(buf, count);
-        delete buf;
+        delete[] buf;
     }
     return qMax(qint64(0), res);
 }
diff --git a/src/plugins/imageformats/macjp2/qmacjp2handler.h b/src/plugins/imageformats/macjp2/qmacjp2handler.h
index 3706d98fa864e4844e9ba3ae6f13503810f2dc35..bf0496db6edd5f4049cd64590a528c07218514f1 100644
--- a/src/plugins/imageformats/macjp2/qmacjp2handler.h
+++ b/src/plugins/imageformats/macjp2/qmacjp2handler.h
@@ -55,15 +55,15 @@ class QMacJp2Handler : public QImageIOHandler
 {
 public:
     QMacJp2Handler();
-    virtual ~QMacJp2Handler();
+    ~QMacJp2Handler();
 
-    bool canRead() const Q_DECL_OVERRIDE;
-    bool read(QImage *image) Q_DECL_OVERRIDE;
-    bool write(const QImage &image) Q_DECL_OVERRIDE;
-    QVariant option(ImageOption option) const Q_DECL_OVERRIDE;
-    void setOption(ImageOption option, const QVariant &value) Q_DECL_OVERRIDE;
-    bool supportsOption(ImageOption option) const Q_DECL_OVERRIDE;
-    QByteArray name() const Q_DECL_OVERRIDE;
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
+    QVariant option(ImageOption option) const override;
+    void setOption(ImageOption option, const QVariant &value) override;
+    bool supportsOption(ImageOption option) const override;
+    QByteArray name() const override;
 
     static bool canRead(QIODevice *iod);
 
diff --git a/src/plugins/imageformats/mng/main.cpp b/src/plugins/imageformats/mng/main.cpp
index 09411410cb955343c7bc35e0f8f1398ff99ba472..5e5b0a3568404b872cb27d693444dbf900b98e3f 100644
--- a/src/plugins/imageformats/mng/main.cpp
+++ b/src/plugins/imageformats/mng/main.cpp
@@ -58,16 +58,10 @@ class QMngPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "mng.json")
 
 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 QMngPlugin::keys() const
-{
-    return QStringList() << QLatin1String("mng");
-}
-
 QImageIOPlugin::Capabilities QMngPlugin::capabilities(QIODevice *device, const QByteArray &format) const
 {
     if (format == "mng")
diff --git a/src/plugins/imageformats/mng/qmnghandler_p.h b/src/plugins/imageformats/mng/qmnghandler_p.h
index 252e2384172ad6af7c9c8cbb17f922a59139bd54..0f9a2073380af6d33db768d14cc30efdbb09a7b7 100644
--- a/src/plugins/imageformats/mng/qmnghandler_p.h
+++ b/src/plugins/imageformats/mng/qmnghandler_p.h
@@ -56,20 +56,20 @@ class QMngHandler : public QImageIOHandler
     public:
     QMngHandler();
     ~QMngHandler();
-    virtual bool canRead() const;
-    virtual QByteArray name() const;
-    virtual bool read(QImage *image);
-    virtual bool write(const QImage &image);
-    virtual int currentImageNumber() const;
-    virtual int imageCount() const;
-    virtual bool jumpToImage(int imageNumber);
-    virtual bool jumpToNextImage();
-    virtual int loopCount() const;
-    virtual int nextImageDelay() const;
+    bool canRead() const override;
+    QByteArray name() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
+    int currentImageNumber() const override;
+    int imageCount() const override;
+    bool jumpToImage(int imageNumber) override;
+    bool jumpToNextImage() override;
+    int loopCount() const override;
+    int nextImageDelay() const 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:
     Q_DECLARE_PRIVATE(QMngHandler)
diff --git a/src/plugins/imageformats/tga/main.cpp b/src/plugins/imageformats/tga/main.cpp
index bb80283ee502fc03caaabf9c20fcb4fb20e33bdf..22fd3bea439cca2268f3707419fb9dd246c8c5ea 100644
--- a/src/plugins/imageformats/tga/main.cpp
+++ b/src/plugins/imageformats/tga/main.cpp
@@ -56,9 +56,8 @@ class QTgaPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "tga.json")
 
 public:
-    Capabilities capabilities(QIODevice * device, const QByteArray & format) const;
-    QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const;
-    QStringList keys() const;
+    Capabilities capabilities(QIODevice * device, const QByteArray & format) const override;
+    QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const override;
 };
 
 QImageIOPlugin::Capabilities QTgaPlugin::capabilities(QIODevice *device, const QByteArray &format) const
@@ -84,11 +83,6 @@ QImageIOHandler* QTgaPlugin::create(QIODevice *device, const QByteArray &format)
     return tgaHandler;
 }
 
-QStringList QTgaPlugin::keys() const
-{
-    return QStringList() << QLatin1String("tga");
-}
-
 QT_END_NAMESPACE
 
 #include "main.moc"
diff --git a/src/plugins/imageformats/tga/qtgafile.cpp b/src/plugins/imageformats/tga/qtgafile.cpp
index 355b8a191e34f7a19bd7061125104b5834016f29..14a7a749c194f5f40ba3aa740cd93d5fa7d7a106 100644
--- a/src/plugins/imageformats/tga/qtgafile.cpp
+++ b/src/plugins/imageformats/tga/qtgafile.cpp
@@ -52,13 +52,13 @@ struct TgaReader
 struct Tga16Reader : public TgaReader
 {
     ~Tga16Reader() {}
-    QRgb operator()(QIODevice *s) const
+    QRgb operator()(QIODevice *s) const override
     {
         char ch1, ch2;
         if (s->getChar(&ch1) && s->getChar(&ch2)) {
             quint16 d = (int(ch1) & 0xFF) | ((int(ch2) & 0xFF) << 8);
             QRgb result = (d & 0x8000) ? 0xFF000000 : 0x00000000;
-            result |= (d & 0x7C00 << 6) | (d & 0x03E0 << 3) | (d & 0x001F);
+            result |= ((d & 0x7C00) << 6) | ((d & 0x03E0) << 3) | (d & 0x001F);
             return result;
         } else {
             return 0;
@@ -68,7 +68,7 @@ struct Tga16Reader : public TgaReader
 
 struct Tga24Reader : public TgaReader
 {
-    QRgb operator()(QIODevice *s) const
+    QRgb operator()(QIODevice *s) const override
     {
         char r, g, b;
         if (s->getChar(&b) && s->getChar(&g) && s->getChar(&r))
@@ -80,7 +80,7 @@ struct Tga24Reader : public TgaReader
 
 struct Tga32Reader : public TgaReader
 {
-    QRgb operator()(QIODevice *s) const
+    QRgb operator()(QIODevice *s) const override
     {
         char r, g, b, a;
         if (s->getChar(&b) && s->getChar(&g) && s->getChar(&r) && s->getChar(&a))
diff --git a/src/plugins/imageformats/tga/qtgahandler.h b/src/plugins/imageformats/tga/qtgahandler.h
index 757f187668aafdc86660ccd24cc6456bac6920a2..5ef7e021875b738ddc8315567f0b1e89a516daab 100644
--- a/src/plugins/imageformats/tga/qtgahandler.h
+++ b/src/plugins/imageformats/tga/qtgahandler.h
@@ -52,16 +52,16 @@ public:
     QTgaHandler();
     ~QTgaHandler();
 
-    bool canRead() const;
-    bool read(QImage *image);
+    bool canRead() const override;
+    bool read(QImage *image) override;
 
-    QByteArray name() const;
+    QByteArray name() const override;
 
     static bool canRead(QIODevice *device);
 
-    QVariant option(ImageOption option) const;
-    void setOption(ImageOption option, const QVariant &value);
-    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:
     mutable QTgaFile *tga;
diff --git a/src/plugins/imageformats/tiff/main.cpp b/src/plugins/imageformats/tiff/main.cpp
index e16b17822896bbfa26cf13ba963ee3380ec6d0b3..915f47e872982ba6b0c12046e482b50828c804d8 100644
--- a/src/plugins/imageformats/tiff/main.cpp
+++ b/src/plugins/imageformats/tiff/main.cpp
@@ -55,9 +55,8 @@ class QTiffPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "tiff.json")
 
 public:
-    Capabilities capabilities(QIODevice * device, const QByteArray & format) const;
-    QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const;
-    QStringList keys() const;
+    Capabilities capabilities(QIODevice * device, const QByteArray & format) const override;
+    QImageIOHandler * create(QIODevice * device, const QByteArray & format = QByteArray()) const override;
 };
 
 QImageIOPlugin::Capabilities QTiffPlugin::capabilities(QIODevice *device, const QByteArray &format) const
@@ -85,11 +84,6 @@ QImageIOHandler* QTiffPlugin::create(QIODevice *device, const QByteArray &format
     return tiffHandler;
 }
 
-QStringList QTiffPlugin::keys() const
-{
-    return QStringList() << QLatin1String("tiff") << QLatin1String("tif");
-}
-
 QT_END_NAMESPACE
 
 #include "main.moc"
diff --git a/src/plugins/imageformats/tiff/qtiffhandler_p.h b/src/plugins/imageformats/tiff/qtiffhandler_p.h
index be2c75319ddfceaa1c67f1d69fae61be8d5b2157..f362a90ee45fdec431e82aa294568973d2fca9a0 100644
--- a/src/plugins/imageformats/tiff/qtiffhandler_p.h
+++ b/src/plugins/imageformats/tiff/qtiffhandler_p.h
@@ -51,17 +51,17 @@ class QTiffHandler : public QImageIOHandler
 public:
     QTiffHandler();
 
-    bool canRead() const Q_DECL_OVERRIDE;
-    bool read(QImage *image) Q_DECL_OVERRIDE;
-    bool write(const QImage &image) Q_DECL_OVERRIDE;
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
 
-    QByteArray name() const Q_DECL_OVERRIDE;
+    QByteArray name() const override;
 
     static bool canRead(QIODevice *device);
 
-    QVariant option(ImageOption option) const Q_DECL_OVERRIDE;
-    void setOption(ImageOption option, const QVariant &value) Q_DECL_OVERRIDE;
-    bool supportsOption(ImageOption option) const Q_DECL_OVERRIDE;
+    QVariant option(ImageOption option) const override;
+    void setOption(ImageOption option, const QVariant &value) override;
+    bool supportsOption(ImageOption option) const override;
 
     enum Compression {
         NoCompression = 0,
diff --git a/src/plugins/imageformats/wbmp/main.cpp b/src/plugins/imageformats/wbmp/main.cpp
index 819808ebe5661ec1e429a32d44156e81244063fe..45da0ca5724d6e3749f184de3584079e2fcfce9d 100644
--- a/src/plugins/imageformats/wbmp/main.cpp
+++ b/src/plugins/imageformats/wbmp/main.cpp
@@ -55,9 +55,8 @@ class QWbmpPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "wbmp.json")
 
 public:
-    QStringList keys() const;
-    QImageIOPlugin::Capabilities capabilities(QIODevice *device, const QByteArray &format) const;
-    QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const;
+    QImageIOPlugin::Capabilities capabilities(QIODevice *device, const QByteArray &format) const override;
+    QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
 };
 
 QImageIOPlugin::Capabilities QWbmpPlugin::capabilities(QIODevice *device, const QByteArray &format) const
@@ -89,11 +88,6 @@ QImageIOHandler * QWbmpPlugin::create(QIODevice *device, const QByteArray &forma
     return handler;
 }
 
-QStringList QWbmpPlugin::keys() const
-{
-    return QStringList() << QLatin1String("wbmp");
-}
-
 QT_END_NAMESPACE
 
 #include "main.moc"
diff --git a/src/plugins/imageformats/wbmp/qwbmphandler_p.h b/src/plugins/imageformats/wbmp/qwbmphandler_p.h
index 437d7947c795d579c39a4a92619a7f70a3da3861..3856fc416696e0ec6ffe6d9a93bcbc8dafcfda3c 100644
--- a/src/plugins/imageformats/wbmp/qwbmphandler_p.h
+++ b/src/plugins/imageformats/wbmp/qwbmphandler_p.h
@@ -61,14 +61,14 @@ class QWbmpHandler : public QImageIOHandler
 {
 public:
     QWbmpHandler(QIODevice *device);
-    virtual ~QWbmpHandler();
+    ~QWbmpHandler();
 
-    bool canRead() const;
-    bool read(QImage *image);
-    bool write(const QImage &image);
+    bool canRead() const override;
+    bool read(QImage *image) override;
+    bool write(const QImage &image) override;
 
-    QVariant option(ImageOption option) const;
-    bool supportsOption(ImageOption option) const;
+    QVariant option(ImageOption option) const override;
+    bool supportsOption(ImageOption option) const override;
 
     static bool canRead(QIODevice *device);
 
diff --git a/src/plugins/imageformats/webp/main.cpp b/src/plugins/imageformats/webp/main.cpp
index 6aa34e685b0555c17cb75b41c6f73c9eadccbb72..064f3abf875bb6c2fffcbf9e732ec14f8dd92245 100644
--- a/src/plugins/imageformats/webp/main.cpp
+++ b/src/plugins/imageformats/webp/main.cpp
@@ -58,8 +58,8 @@ class QWebpPlugin : public QImageIOPlugin
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "webp.json")
 
 public:
-    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;
 };
 
 QWebpPlugin::Capabilities QWebpPlugin::capabilities(QIODevice *device, const QByteArray &format) const
diff --git a/src/plugins/imageformats/webp/qwebphandler.cpp b/src/plugins/imageformats/webp/qwebphandler.cpp
index a59e6bd9584a238f7fa4a580e43707fb8a520eca..0bd89f6fad7f07e5f245bc637fd1699c9fbd584c 100644
--- a/src/plugins/imageformats/webp/qwebphandler.cpp
+++ b/src/plugins/imageformats/webp/qwebphandler.cpp
@@ -51,6 +51,7 @@ QWebpHandler::QWebpHandler() :
     m_lossless(false),
     m_quality(75),
     m_scanState(ScanNotScanned),
+    m_features(),
     m_loop(0),
     m_frameCount(0),
     m_demuxer(NULL),
diff --git a/src/plugins/imageformats/webp/qwebphandler_p.h b/src/plugins/imageformats/webp/qwebphandler_p.h
index 36dfed776ea892e80dd7e2897a9e11da3f9699b3..99a7c21046d3fb1ded07e425583a28db46a5b42f 100644
--- a/src/plugins/imageformats/webp/qwebphandler_p.h
+++ b/src/plugins/imageformats/webp/qwebphandler_p.h
@@ -56,23 +56,23 @@ public:
     ~QWebpHandler();
 
 public:
-    QByteArray name() const;
+    QByteArray name() const override;
 
-    bool canRead() const;
-    bool read(QImage *image);
+    bool canRead() const override;
+    bool read(QImage *image) override;
 
     static bool canRead(QIODevice *device);
 
-    bool write(const QImage &image);
-    QVariant option(ImageOption option) const;
-    void setOption(ImageOption option, const QVariant &value);
-    bool supportsOption(ImageOption option) const;
+    bool write(const QImage &image) override;
+    QVariant option(ImageOption option) const override;
+    void setOption(ImageOption option, const QVariant &value) override;
+    bool supportsOption(ImageOption option) const override;
 
-    int imageCount() const;
-    int currentImageNumber() const;
-    QRect currentImageRect() const;
-    int loopCount() const;
-    int nextImageDelay() const;
+    int imageCount() const override;
+    int currentImageNumber() const override;
+    QRect currentImageRect() const override;
+    int loopCount() const override;
+    int nextImageDelay() const override;
 
 private:
     bool ensureScanned() const;
diff --git a/sync.profile b/sync.profile
index 3fad8a6b8aa7c6873321cd8e87feab576112ccc2..6d035bc53addb6a2fd86e3488a94230f9e7c0138 100644
--- a/sync.profile
+++ b/sync.profile
@@ -1,10 +1,2 @@
-# 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" => "",
+%modules = ( # path to module name map
 );