IMode: Create private class

Change-Id: I64bafc4b8f73b78b7c775192c247ed635a367a39
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Eike Ziller
2023-11-28 15:49:43 +01:00
parent a149c52e99
commit 8d851fab0b
2 changed files with 92 additions and 21 deletions

View File

@@ -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

View File

@@ -10,12 +10,18 @@
#include <QIcon>
#include <QMenu>
#include <memory.h>
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<Internal::IModePrivate> m_d;
};
} // namespace Core