forked from qt-creator/qt-creator
core: make mode creation more uniform
This commit is contained in:
@@ -86,12 +86,10 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
|||||||
parseArguments(arguments);
|
parseArguments(arguments);
|
||||||
const bool success = m_mainWindow->init(errorMessage);
|
const bool success = m_mainWindow->init(errorMessage);
|
||||||
if (success) {
|
if (success) {
|
||||||
EditorManager *editorManager = m_mainWindow->editorManager();
|
m_editMode = new EditMode;
|
||||||
m_editMode = new EditMode(editorManager);
|
|
||||||
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(editorManager);
|
|
||||||
addObject(m_designMode);
|
addObject(m_designMode);
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
|
@@ -86,36 +86,37 @@ bool DesignModeCoreListener::coreAboutToClose()
|
|||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|
||||||
struct DesignEditorInfo {
|
struct DesignEditorInfo
|
||||||
|
{
|
||||||
int widgetIndex;
|
int widgetIndex;
|
||||||
QStringList mimeTypes;
|
QStringList mimeTypes;
|
||||||
Context context;
|
Context context;
|
||||||
QWidget *widget;
|
QWidget *widget;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DesignModePrivate {
|
class DesignModePrivate
|
||||||
explicit DesignModePrivate(DesignMode *q, EditorManager *editorManager);
|
{
|
||||||
|
public:
|
||||||
|
explicit DesignModePrivate(DesignMode *q);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
QList<DesignEditorInfo*> m_editors;
|
QList<DesignEditorInfo*> m_editors;
|
||||||
|
|
||||||
EditorManager *m_editorManager;
|
|
||||||
QStackedWidget *m_stackWidget;
|
QStackedWidget *m_stackWidget;
|
||||||
Context m_activeContext;
|
Context m_activeContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
DesignModePrivate::DesignModePrivate(DesignMode *q, EditorManager *editorManager) :
|
DesignModePrivate::DesignModePrivate(DesignMode *q)
|
||||||
m_coreListener(new Internal::DesignModeCoreListener(q)),
|
: m_coreListener(new Internal::DesignModeCoreListener(q)),
|
||||||
m_isActive(false),
|
m_isActive(false),
|
||||||
m_editorManager(editorManager),
|
|
||||||
m_stackWidget(new QStackedWidget)
|
m_stackWidget(new QStackedWidget)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
DesignMode::DesignMode(EditorManager *editorManager) :
|
DesignMode::DesignMode()
|
||||||
IMode(), d(new DesignModePrivate(this, editorManager))
|
: d(new DesignModePrivate(this))
|
||||||
{
|
{
|
||||||
setObjectName(QLatin1String("DesignMode"));
|
setObjectName(QLatin1String("DesignMode"));
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
@@ -129,7 +130,7 @@ DesignMode::DesignMode(EditorManager *editorManager) :
|
|||||||
|
|
||||||
ExtensionSystem::PluginManager::instance()->addObject(d->m_coreListener);
|
ExtensionSystem::PluginManager::instance()->addObject(d->m_coreListener);
|
||||||
|
|
||||||
connect(editorManager, SIGNAL(currentEditorChanged(Core::IEditor*)),
|
connect(EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
|
||||||
this, SLOT(currentEditorChanged(Core::IEditor*)));
|
this, SLOT(currentEditorChanged(Core::IEditor*)));
|
||||||
|
|
||||||
connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*,Core::IMode*)),
|
connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*,Core::IMode*)),
|
||||||
|
@@ -36,7 +36,6 @@
|
|||||||
#include <coreplugin/imode.h>
|
#include <coreplugin/imode.h>
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
class EditorManager;
|
|
||||||
class IEditor;
|
class IEditor;
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -50,14 +49,14 @@ class DesignModeCoreListener;
|
|||||||
* to the main editor widget itself.
|
* to the main editor widget itself.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct DesignModePrivate;
|
class DesignModePrivate;
|
||||||
|
|
||||||
class CORE_EXPORT DesignMode : public Core::IMode
|
class CORE_EXPORT DesignMode : public Core::IMode
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DesignMode(EditorManager *editorManager);
|
explicit DesignMode();
|
||||||
virtual ~DesignMode();
|
virtual ~DesignMode();
|
||||||
|
|
||||||
void registerDesignWidget(QWidget *widget,
|
void registerDesignWidget(QWidget *widget,
|
||||||
|
@@ -51,11 +51,11 @@
|
|||||||
using namespace Core;
|
using namespace Core;
|
||||||
using namespace Core::Internal;
|
using namespace Core::Internal;
|
||||||
|
|
||||||
EditMode::EditMode(EditorManager *editorManager) :
|
EditMode::EditMode() :
|
||||||
m_editorManager(editorManager),
|
|
||||||
m_splitter(new MiniSplitter),
|
m_splitter(new MiniSplitter),
|
||||||
m_rightSplitWidgetLayout(new QVBoxLayout)
|
m_rightSplitWidgetLayout(new QVBoxLayout)
|
||||||
{
|
{
|
||||||
|
m_editorManager = EditorManager::instance();
|
||||||
setObjectName(QLatin1String("EditMode"));
|
setObjectName(QLatin1String("EditMode"));
|
||||||
setDisplayName(tr("Edit"));
|
setDisplayName(tr("Edit"));
|
||||||
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
|
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
|
||||||
|
@@ -37,7 +37,6 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QSplitter;
|
class QSplitter;
|
||||||
class QWidget;
|
|
||||||
class QVBoxLayout;
|
class QVBoxLayout;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
@@ -52,7 +51,7 @@ class EditMode : public Core::IMode
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EditMode(EditorManager *editorManager);
|
EditMode();
|
||||||
~EditMode();
|
~EditMode();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
Reference in New Issue
Block a user