forked from qt-creator/qt-creator
Don't show Design mode if "designer" plugins are disabled/not present.
Change-Id: Iee0a01491075e1e82c17211b5e119bd5e167763b Reviewed-by: Marco Bubke <marco.bubke@nokia.com>
This commit is contained in:
@@ -60,7 +60,8 @@ CorePlugin::~CorePlugin()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_designMode) {
|
if (m_designMode) {
|
||||||
removeObject(m_designMode);
|
if (m_designMode->designModeIsRequired())
|
||||||
|
removeObject(m_designMode);
|
||||||
delete m_designMode;
|
delete m_designMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +91,6 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
|||||||
addObject(m_editMode);
|
addObject(m_editMode);
|
||||||
m_mainWindow->modeManager()->activateMode(m_editMode->id());
|
m_mainWindow->modeManager()->activateMode(m_editMode->id());
|
||||||
m_designMode = new DesignMode;
|
m_designMode = new DesignMode;
|
||||||
addObject(m_designMode);
|
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
@@ -98,6 +98,8 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
|||||||
void CorePlugin::extensionsInitialized()
|
void CorePlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
m_mainWindow->mimeDatabase()->syncUserModifiedMimeTypes();
|
m_mainWindow->mimeDatabase()->syncUserModifiedMimeTypes();
|
||||||
|
if (m_designMode->designModeIsRequired())
|
||||||
|
addObject(m_designMode);
|
||||||
m_mainWindow->extensionsInitialized();
|
m_mainWindow->extensionsInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,6 +54,8 @@
|
|||||||
#include <QtGui/QPlainTextEdit>
|
#include <QtGui/QPlainTextEdit>
|
||||||
#include <QtGui/QStackedWidget>
|
#include <QtGui/QStackedWidget>
|
||||||
|
|
||||||
|
static Core::DesignMode *m_instance = 0;
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
class EditorManager;
|
class EditorManager;
|
||||||
@@ -103,6 +105,7 @@ public:
|
|||||||
Internal::DesignModeCoreListener *m_coreListener;
|
Internal::DesignModeCoreListener *m_coreListener;
|
||||||
QWeakPointer<Core::IEditor> m_currentEditor;
|
QWeakPointer<Core::IEditor> m_currentEditor;
|
||||||
bool m_isActive;
|
bool m_isActive;
|
||||||
|
bool m_isRequired;
|
||||||
QList<DesignEditorInfo*> m_editors;
|
QList<DesignEditorInfo*> m_editors;
|
||||||
QStackedWidget *m_stackWidget;
|
QStackedWidget *m_stackWidget;
|
||||||
Context m_activeContext;
|
Context m_activeContext;
|
||||||
@@ -111,6 +114,7 @@ public:
|
|||||||
DesignModePrivate::DesignModePrivate(DesignMode *q)
|
DesignModePrivate::DesignModePrivate(DesignMode *q)
|
||||||
: m_coreListener(new Internal::DesignModeCoreListener(q)),
|
: m_coreListener(new Internal::DesignModeCoreListener(q)),
|
||||||
m_isActive(false),
|
m_isActive(false),
|
||||||
|
m_isRequired(false),
|
||||||
m_stackWidget(new QStackedWidget)
|
m_stackWidget(new QStackedWidget)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -118,6 +122,7 @@ DesignModePrivate::DesignModePrivate(DesignMode *q)
|
|||||||
DesignMode::DesignMode()
|
DesignMode::DesignMode()
|
||||||
: d(new DesignModePrivate(this))
|
: d(new DesignModePrivate(this))
|
||||||
{
|
{
|
||||||
|
m_instance = this;
|
||||||
setObjectName(QLatin1String("DesignMode"));
|
setObjectName(QLatin1String("DesignMode"));
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
setContext(Context(Constants::C_DESIGN_MODE));
|
setContext(Context(Constants::C_DESIGN_MODE));
|
||||||
@@ -146,6 +151,21 @@ DesignMode::~DesignMode()
|
|||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DesignMode *DesignMode::instance()
|
||||||
|
{
|
||||||
|
return m_instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DesignMode::setDesignModeIsRequired()
|
||||||
|
{
|
||||||
|
d->m_isRequired = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DesignMode::designModeIsRequired() const
|
||||||
|
{
|
||||||
|
return d->m_isRequired;
|
||||||
|
}
|
||||||
|
|
||||||
QStringList DesignMode::registeredMimeTypes() const
|
QStringList DesignMode::registeredMimeTypes() const
|
||||||
{
|
{
|
||||||
QStringList rc;
|
QStringList rc;
|
||||||
@@ -163,6 +183,7 @@ void DesignMode::registerDesignWidget(QWidget *widget,
|
|||||||
const QStringList &mimeTypes,
|
const QStringList &mimeTypes,
|
||||||
const Context &context)
|
const Context &context)
|
||||||
{
|
{
|
||||||
|
setDesignModeIsRequired();
|
||||||
int index = d->m_stackWidget->addWidget(widget);
|
int index = d->m_stackWidget->addWidget(widget);
|
||||||
|
|
||||||
DesignEditorInfo *info = new DesignEditorInfo;
|
DesignEditorInfo *info = new DesignEditorInfo;
|
||||||
|
@@ -59,6 +59,11 @@ public:
|
|||||||
explicit DesignMode();
|
explicit DesignMode();
|
||||||
virtual ~DesignMode();
|
virtual ~DesignMode();
|
||||||
|
|
||||||
|
static DesignMode *instance();
|
||||||
|
|
||||||
|
void setDesignModeIsRequired();
|
||||||
|
bool designModeIsRequired() const;
|
||||||
|
|
||||||
void registerDesignWidget(QWidget *widget,
|
void registerDesignWidget(QWidget *widget,
|
||||||
const QStringList &mimeTypes,
|
const QStringList &mimeTypes,
|
||||||
const Context &context);
|
const Context &context);
|
||||||
|
@@ -47,6 +47,7 @@
|
|||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/mimedatabase.h>
|
#include <coreplugin/mimedatabase.h>
|
||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
|
#include <coreplugin/designmode.h>
|
||||||
#include <coreplugin/id.h>
|
#include <coreplugin/id.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
|
||||||
@@ -108,6 +109,7 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
|
|
||||||
void FormEditorPlugin::extensionsInitialized()
|
void FormEditorPlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
|
Core::DesignMode::instance()->setDesignModeIsRequired();
|
||||||
// 4) test and make sure everything works (undo, saving, editors, opening/closing multiple files, dirtiness etc)
|
// 4) test and make sure everything works (undo, saving, editors, opening/closing multiple files, dirtiness etc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -342,7 +342,7 @@ void FormEditorW::fullInit()
|
|||||||
m_toolBar->setNavigationVisible(false);
|
m_toolBar->setNavigationVisible(false);
|
||||||
m_toolBar->addCenterToolBar(m_editorToolBar);
|
m_toolBar->addCenterToolBar(m_editorToolBar);
|
||||||
|
|
||||||
m_designMode = ExtensionSystem::PluginManager::instance()->getObject<Core::DesignMode>();
|
m_designMode = Core::DesignMode::instance();
|
||||||
m_modeWidget = new QWidget;
|
m_modeWidget = new QWidget;
|
||||||
m_modeWidget->setObjectName(QLatin1String("DesignerModeWidget"));
|
m_modeWidget->setObjectName(QLatin1String("DesignerModeWidget"));
|
||||||
QVBoxLayout *layout = new QVBoxLayout;
|
QVBoxLayout *layout = new QVBoxLayout;
|
||||||
|
@@ -44,6 +44,7 @@
|
|||||||
#include <toolbox.h>
|
#include <toolbox.h>
|
||||||
|
|
||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
|
#include <coreplugin/designmode.h>
|
||||||
#include <coreplugin/modemanager.h>
|
#include <coreplugin/modemanager.h>
|
||||||
#include <coreplugin/outputpane.h>
|
#include <coreplugin/outputpane.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
@@ -224,10 +225,8 @@ DesignModeWidget::DesignModeWidget(QWidget *parent) :
|
|||||||
m_toggleRightSidebarAction = new QAction(tr("Toggle &Right Sidebar"), this);
|
m_toggleRightSidebarAction = new QAction(tr("Toggle &Right Sidebar"), this);
|
||||||
connect(m_toggleRightSidebarAction, SIGNAL(triggered()), SLOT(toggleRightSidebar()));
|
connect(m_toggleRightSidebarAction, SIGNAL(triggered()), SLOT(toggleRightSidebar()));
|
||||||
|
|
||||||
Core::ModeManager *modeManager = Core::ModeManager::instance();
|
|
||||||
Core::IMode *designmode = modeManager->mode(Core::Constants::MODE_DESIGN);
|
|
||||||
m_outputPlaceholderSplitter = new Core::MiniSplitter;
|
m_outputPlaceholderSplitter = new Core::MiniSplitter;
|
||||||
m_outputPanePlaceholder = new StyledOutputpanePlaceHolder(designmode, m_outputPlaceholderSplitter);
|
m_outputPanePlaceholder = new StyledOutputpanePlaceHolder(Core::DesignMode::instance(), m_outputPlaceholderSplitter);
|
||||||
}
|
}
|
||||||
|
|
||||||
DesignModeWidget::~DesignModeWidget()
|
DesignModeWidget::~DesignModeWidget()
|
||||||
|
@@ -359,7 +359,7 @@ void BauhausPlugin::updateActions(Core::IEditor* editor)
|
|||||||
|
|
||||||
void BauhausPlugin::extensionsInitialized()
|
void BauhausPlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
m_designMode = ExtensionSystem::PluginManager::instance()->getObject<Core::DesignMode>();
|
m_designMode = Core::DesignMode::instance();
|
||||||
|
|
||||||
m_mimeTypes << "application/x-qml";
|
m_mimeTypes << "application/x-qml";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user