DesignMode: Apply 'static pattern'

Also:
 - and replace some occurrences of DesignMode::instance()->id() by
   Core::Constants::MODE_DESIGN for less dependence on the lifetime
   of the DesignMode object (and less indirection)
 - remove storage if DesignMode::instance() values when direct
   use of the static functions suffice
 - remove some unused items from the interface
 - use member-initialization in DesignMode::Private.

Change-Id: Ie66c06da0fc0a3ccc588b8079e51db6b39284152
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2018-01-23 09:09:46 +01:00
parent fba61c5b55
commit 2b76504bd2
9 changed files with 28 additions and 50 deletions

View File

@@ -40,8 +40,6 @@
#include <QStackedWidget>
static Core::DesignMode *m_instance = 0;
namespace Core {
struct DesignEditorInfo
@@ -60,17 +58,15 @@ public:
public:
QPointer<IEditor> m_currentEditor;
bool m_isActive;
bool m_isRequired;
bool m_isActive = false;
bool m_isRequired = false;
QList<DesignEditorInfo*> m_editors;
QStackedWidget *m_stackWidget;
Context m_activeContext;
};
DesignModePrivate::DesignModePrivate()
: m_isActive(false),
m_isRequired(false),
m_stackWidget(new QStackedWidget)
: m_stackWidget(new QStackedWidget)
{}
DesignModePrivate::~DesignModePrivate()
@@ -78,10 +74,13 @@ DesignModePrivate::~DesignModePrivate()
delete m_stackWidget;
}
static DesignMode *m_instance = nullptr;
static DesignModePrivate *d = nullptr;
DesignMode::DesignMode()
: d(new DesignModePrivate)
{
m_instance = this;
d = new DesignModePrivate;
ICore::addPreCloseListener([]() -> bool {
m_instance->currentEditorChanged(0);
@@ -121,19 +120,11 @@ void DesignMode::setDesignModeIsRequired()
d->m_isRequired = true;
}
bool DesignMode::designModeIsRequired() const
bool DesignMode::designModeIsRequired()
{
return d->m_isRequired;
}
QStringList DesignMode::registeredMimeTypes() const
{
QStringList rc;
foreach (const DesignEditorInfo *i, d->m_editors)
rc += i->mimeTypes;
return rc;
}
/**
* Registers a widget to be displayed when an editor with a file specified in
* mimeTypes is opened. This also appends the additionalContext in ICore to