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