From 2fcc5debcdd18f0c1b716f789a22753b5700a46e Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 18 Sep 2022 14:51:23 +0200 Subject: [PATCH] Add global renderer instance to allow accessing renderer of icon engine --- iconengineplugin/main.cpp | 5 +---- qtforkawesome/renderer.cpp | 9 +++++++++ qtforkawesome/renderer.h | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/iconengineplugin/main.cpp b/iconengineplugin/main.cpp index 2ff2f5f..045e5d1 100644 --- a/iconengineplugin/main.cpp +++ b/iconengineplugin/main.cpp @@ -22,14 +22,11 @@ class QT_FORK_AWESOME_ICON_ENGINE_EXPORT ForkAwesomeIconEnginePlugin : public QI public: QIconEngine *create(const QString &filename = QString()) override; - -private: - const Renderer m_renderer; }; QIconEngine *ForkAwesomeIconEnginePlugin::create(const QString &file) { - auto *const engine = new IconEngine(m_renderer); + auto *const engine = new IconEngine(Renderer::global()); if (!file.isNull()) { engine->addFile(file, QSize(), QIcon::Normal, QIcon::Off); } diff --git a/qtforkawesome/renderer.cpp b/qtforkawesome/renderer.cpp index c98df14..8549a15 100644 --- a/qtforkawesome/renderer.cpp +++ b/qtforkawesome/renderer.cpp @@ -113,4 +113,13 @@ QPixmap Renderer::pixmap(Icon icon, const QSize &size, const QColor &color) cons return pixmap(QChar(static_cast(icon)), size, color); } +/*! + * \brief Returns the global instance (which is so far only used by the icon engine plugin). + */ +Renderer &Renderer::global() +{ + static auto globalRenderer = Renderer(); + return globalRenderer; +} + } // namespace QtForkAwesome diff --git a/qtforkawesome/renderer.h b/qtforkawesome/renderer.h index 9d4b100..fff382a 100644 --- a/qtforkawesome/renderer.h +++ b/qtforkawesome/renderer.h @@ -33,6 +33,8 @@ public: QPixmap pixmap(QChar icon, const QSize &size, const QColor &color) const; QPixmap pixmap(Icon icon, const QSize &size, const QColor &color) const; + static Renderer &global(); + private: std::unique_ptr m_d; };