qt6-bb10/tests/auto/gui/image/qicon/plugin/main.cpp

74 lines
1.4 KiB
C++

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <qiconengineplugin.h>
#include <qiconengine.h>
QT_BEGIN_NAMESPACE
class TestIconPlugin : public QIconEnginePlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QIconEngineFactoryInterface" FILE "plugin.json")
public:
QIconEngine *create(const QString &icon) override;
};
class TestIconEngine : public QIconEngine
{
public:
TestIconEngine(const QString &icon)
: m_iconName(QIcon::themeName() + "/" + icon)
{
}
~TestIconEngine()
{}
QIconEngine *clone() const override
{
return new TestIconEngine(m_iconName);
}
QString key() const override
{
return QStringLiteral("TestIconEngine");
}
QString iconName() override
{
return m_iconName;
}
bool isNull() override
{
return m_iconName.isNull();
}
QList<QSize> availableSizes(QIcon::Mode, QIcon::State) override
{
return {{16, 16}, {48, 48}, {64, 64}};
}
void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) override
{
Q_UNUSED(painter);
Q_UNUSED(rect);
Q_UNUSED(mode);
Q_UNUSED(state);
}
private:
const QString m_iconName;
};
QIconEngine *TestIconPlugin::create(const QString &icon)
{
return new TestIconEngine(icon);
}
QT_END_NAMESPACE
#include "main.moc"