summaryrefslogtreecommitdiffstats
path: root/src/plugins/imageformats/ico/main.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-04-27 20:21:27 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-04-28 11:15:03 +0200
commit1ca7b516944546e2de2b06dc7698338140f7e4ec (patch)
tree916bcecdf80dd36a57f44852848f07afaf307d66 /src/plugins/imageformats/ico/main.cpp
parent7d4b480be360d3d25f059c6edbef7d2e7f74da8f (diff)
Image Plugins: includemocs(-ish)
Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. The result of the automated script is no good here, because these plugins all use the same anti-pattern of defining the plugin class in a header, main.h, which doesn't have include guards. Included moc files therefore lead to redefiniton errors. Fix by inlining the main.h's into the respective main.cpp's and including main.moc's instead. Task-number: QTBUG-102886 Pick-to: 6.3 6.2 5.15 Change-Id: I6d3ec5590d13d9b7a4cedd5f1b4d3331e6916655 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/plugins/imageformats/ico/main.cpp')
-rw-r--r--src/plugins/imageformats/ico/main.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/plugins/imageformats/ico/main.cpp b/src/plugins/imageformats/ico/main.cpp
index b00d8c7fd3..96e9c89c0e 100644
--- a/src/plugins/imageformats/ico/main.cpp
+++ b/src/plugins/imageformats/ico/main.cpp
@@ -37,10 +37,25 @@
**
****************************************************************************/
-#include "main.h"
+#include <qimageiohandler.h>
+#include <qdebug.h>
+
+#ifdef QT_NO_IMAGEFORMAT_ICO
+#undef QT_NO_IMAGEFORMAT_ICO
+#endif
+#include "qicohandler.h"
QT_BEGIN_NAMESPACE
+class QICOPlugin : public QImageIOPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "ico.json")
+public:
+ Capabilities capabilities(QIODevice *device, const QByteArray &format) const override;
+ QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
+};
+
QImageIOPlugin::Capabilities QICOPlugin::capabilities(QIODevice *device, const QByteArray &format) const
{
if (format == "ico" || format == "cur")
@@ -67,3 +82,5 @@ QImageIOHandler *QICOPlugin::create(QIODevice *device, const QByteArray &format)
}
QT_END_NAMESPACE
+
+#include "main.moc"