From 8d851fab0baf04a3602444eea89f29cc089fb81f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 28 Nov 2023 15:49:43 +0100 Subject: [PATCH] IMode: Create private class Change-Id: I64bafc4b8f73b78b7c775192c247ed635a367a39 Reviewed-by: Marcus Tillmanns --- src/plugins/coreplugin/imode.cpp | 79 ++++++++++++++++++++++++++++++-- src/plugins/coreplugin/imode.h | 34 +++++++------- 2 files changed, 92 insertions(+), 21 deletions(-) diff --git a/src/plugins/coreplugin/imode.cpp b/src/plugins/coreplugin/imode.cpp index f143459cf6b..af68e12db34 100644 --- a/src/plugins/coreplugin/imode.cpp +++ b/src/plugins/coreplugin/imode.cpp @@ -11,6 +11,21 @@ namespace Core { +namespace Internal { + +class IModePrivate +{ +public: + QString m_displayName; + QIcon m_icon; + QMenu *m_menu = nullptr; + int m_priority = -1; + Utils::Id m_id; + bool m_isEnabled = true; +}; + +} // namespace Internal + /*! \class Core::IMode \inheaderfile coreplugin/imode.h @@ -102,17 +117,66 @@ namespace Core { Registers the mode in \QC. */ -IMode::IMode(QObject *parent) : IContext(parent) +IMode::IMode(QObject *parent) + : IContext(parent) + , m_d(new Internal::IModePrivate) { ModeManager::addMode(this); } +IMode::~IMode() = default; + +QString IMode::displayName() const +{ + return m_d->m_displayName; +} + +QIcon IMode::icon() const +{ + return m_d->m_icon; +} + +int IMode::priority() const +{ + return m_d->m_priority; +} + +Utils::Id IMode::id() const +{ + return m_d->m_id; +} + void IMode::setEnabled(bool enabled) { - if (m_isEnabled == enabled) + if (m_d->m_isEnabled == enabled) return; - m_isEnabled = enabled; - emit enabledStateChanged(m_isEnabled); + m_d->m_isEnabled = enabled; + emit enabledStateChanged(m_d->m_isEnabled); +} + +void IMode::setDisplayName(const QString &displayName) +{ + m_d->m_displayName = displayName; +} + +void IMode::setIcon(const QIcon &icon) +{ + m_d->m_icon = icon; +} + +void IMode::setPriority(int priority) +{ + m_d->m_priority = priority; +} + +void IMode::setId(Utils::Id id) +{ + m_d->m_id = id; +} + +void IMode::setMenu(QMenu *menu) +{ + m_d->m_menu = menu; } Utils::FancyMainWindow *IMode::mainWindow() @@ -122,7 +186,12 @@ Utils::FancyMainWindow *IMode::mainWindow() bool IMode::isEnabled() const { - return m_isEnabled; + return m_d->m_isEnabled; +} + +QMenu *IMode::menu() const +{ + return m_d->m_menu; } } // namespace Core diff --git a/src/plugins/coreplugin/imode.h b/src/plugins/coreplugin/imode.h index 339d0ccf84a..728a128f9c2 100644 --- a/src/plugins/coreplugin/imode.h +++ b/src/plugins/coreplugin/imode.h @@ -10,12 +10,18 @@ #include #include +#include + namespace Utils { class FancyMainWindow; } namespace Core { +namespace Internal { +class IModePrivate; +} + class CORE_EXPORT IMode : public IContext { Q_OBJECT @@ -28,20 +34,21 @@ class CORE_EXPORT IMode : public IContext public: IMode(QObject *parent = nullptr); + ~IMode(); - QString displayName() const { return m_displayName; } - QIcon icon() const { return m_icon; } - int priority() const { return m_priority; } - Utils::Id id() const { return m_id; } + QString displayName() const; + QIcon icon() const; + int priority() const; + Utils::Id id() const; bool isEnabled() const; - QMenu *menu() const { return m_menu; } + QMenu *menu() const; void setEnabled(bool enabled); - void setDisplayName(const QString &displayName) { m_displayName = displayName; } - void setIcon(const QIcon &icon) { m_icon = icon; } - void setPriority(int priority) { m_priority = priority; } - void setId(Utils::Id id) { m_id = id; } - void setMenu(QMenu *menu) { m_menu = menu; } + void setDisplayName(const QString &displayName); + void setIcon(const QIcon &icon); + void setPriority(int priority); + void setId(Utils::Id id); + void setMenu(QMenu *menu); virtual Utils::FancyMainWindow *mainWindow(); @@ -49,12 +56,7 @@ signals: void enabledStateChanged(bool enabled); private: - QString m_displayName; - QIcon m_icon; - QMenu *m_menu = nullptr; - int m_priority = -1; - Utils::Id m_id; - bool m_isEnabled = true; + std::unique_ptr m_d; }; } // namespace Core