From 3ac9bee144a5c9ce422e3d4954ef29ae22ef2506 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 14 Apr 2011 12:28:21 +0200 Subject: [PATCH] core: make mode creation more uniform --- src/plugins/coreplugin/coreplugin.cpp | 6 ++---- src/plugins/coreplugin/designmode.cpp | 25 +++++++++++++------------ src/plugins/coreplugin/designmode.h | 5 ++--- src/plugins/coreplugin/editmode.cpp | 4 ++-- src/plugins/coreplugin/editmode.h | 3 +-- 5 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index bf4a8de88bf..bd4423fad0d 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -86,12 +86,10 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage) parseArguments(arguments); const bool success = m_mainWindow->init(errorMessage); if (success) { - EditorManager *editorManager = m_mainWindow->editorManager(); - m_editMode = new EditMode(editorManager); + m_editMode = new EditMode; addObject(m_editMode); m_mainWindow->modeManager()->activateMode(m_editMode->id()); - - m_designMode = new DesignMode(editorManager); + m_designMode = new DesignMode; addObject(m_designMode); } return success; diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp index fdc1046f506..8bda867236b 100644 --- a/src/plugins/coreplugin/designmode.cpp +++ b/src/plugins/coreplugin/designmode.cpp @@ -86,36 +86,37 @@ bool DesignModeCoreListener::coreAboutToClose() } // namespace Internal -struct DesignEditorInfo { +struct DesignEditorInfo +{ int widgetIndex; QStringList mimeTypes; Context context; QWidget *widget; }; -struct DesignModePrivate { - explicit DesignModePrivate(DesignMode *q, EditorManager *editorManager); +class DesignModePrivate +{ +public: + explicit DesignModePrivate(DesignMode *q); + +public: Internal::DesignModeCoreListener *m_coreListener; QWeakPointer m_currentEditor; bool m_isActive; - QList m_editors; - - EditorManager *m_editorManager; QStackedWidget *m_stackWidget; Context m_activeContext; }; -DesignModePrivate::DesignModePrivate(DesignMode *q, EditorManager *editorManager) : - m_coreListener(new Internal::DesignModeCoreListener(q)), +DesignModePrivate::DesignModePrivate(DesignMode *q) + : m_coreListener(new Internal::DesignModeCoreListener(q)), m_isActive(false), - m_editorManager(editorManager), m_stackWidget(new QStackedWidget) { } -DesignMode::DesignMode(EditorManager *editorManager) : - IMode(), d(new DesignModePrivate(this, editorManager)) +DesignMode::DesignMode() + : d(new DesignModePrivate(this)) { setObjectName(QLatin1String("DesignMode")); setEnabled(false); @@ -129,7 +130,7 @@ DesignMode::DesignMode(EditorManager *editorManager) : 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*))); connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*,Core::IMode*)), diff --git a/src/plugins/coreplugin/designmode.h b/src/plugins/coreplugin/designmode.h index dab3877350a..08f2f8bcb4b 100644 --- a/src/plugins/coreplugin/designmode.h +++ b/src/plugins/coreplugin/designmode.h @@ -36,7 +36,6 @@ #include namespace Core { -class EditorManager; class IEditor; namespace Internal { @@ -50,14 +49,14 @@ class DesignModeCoreListener; * to the main editor widget itself. */ -struct DesignModePrivate; +class DesignModePrivate; class CORE_EXPORT DesignMode : public Core::IMode { Q_OBJECT public: - explicit DesignMode(EditorManager *editorManager); + explicit DesignMode(); virtual ~DesignMode(); void registerDesignWidget(QWidget *widget, diff --git a/src/plugins/coreplugin/editmode.cpp b/src/plugins/coreplugin/editmode.cpp index d9e49d1e0a9..236e03859db 100644 --- a/src/plugins/coreplugin/editmode.cpp +++ b/src/plugins/coreplugin/editmode.cpp @@ -51,11 +51,11 @@ using namespace Core; using namespace Core::Internal; -EditMode::EditMode(EditorManager *editorManager) : - m_editorManager(editorManager), +EditMode::EditMode() : m_splitter(new MiniSplitter), m_rightSplitWidgetLayout(new QVBoxLayout) { + m_editorManager = EditorManager::instance(); setObjectName(QLatin1String("EditMode")); setDisplayName(tr("Edit")); setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png"))); diff --git a/src/plugins/coreplugin/editmode.h b/src/plugins/coreplugin/editmode.h index ad45d2ae9cb..83faa7b81eb 100644 --- a/src/plugins/coreplugin/editmode.h +++ b/src/plugins/coreplugin/editmode.h @@ -37,7 +37,6 @@ QT_BEGIN_NAMESPACE class QSplitter; -class QWidget; class QVBoxLayout; QT_END_NAMESPACE @@ -52,7 +51,7 @@ class EditMode : public Core::IMode Q_OBJECT public: - EditMode(EditorManager *editorManager); + EditMode(); ~EditMode(); private slots: