summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin
diff options
context:
space:
mode:
authorhjk <hjk@theqtcompany.com>2016-03-25 20:00:19 +0100
committerhjk <hjk@theqtcompany.com>2016-04-08 10:38:49 +0000
commit5e47d35fcd8c750afc6d0453165066f969e282c2 (patch)
tree573b5af9c6a8759cb41cc8c4185856846038b201 /src/plugins/coreplugin
parented7d5e0d626505a4880d57738ef0403632ed7014 (diff)
downloadqt-creator-5e47d35fcd8c750afc6d0453165066f969e282c2.tar.gz
Use Core::Id in ModeManager interface
Makes it more uniform to use and allows placeholder widget creation to be independent of mode creations. Change-Id: I4021bc9db7f8c78f0374c0cc3b3331506959afe4 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/coreplugin')
-rw-r--r--src/plugins/coreplugin/designmode.cpp10
-rw-r--r--src/plugins/coreplugin/designmode.h2
-rw-r--r--src/plugins/coreplugin/editmode.cpp12
-rw-r--r--src/plugins/coreplugin/editmode.h2
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp4
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.h6
-rw-r--r--src/plugins/coreplugin/modemanager.cpp14
-rw-r--r--src/plugins/coreplugin/modemanager.h12
-rw-r--r--src/plugins/coreplugin/navigationwidget.cpp4
-rw-r--r--src/plugins/coreplugin/navigationwidget.h7
-rw-r--r--src/plugins/coreplugin/outputpane.cpp10
-rw-r--r--src/plugins/coreplugin/outputpane.h9
-rw-r--r--src/plugins/coreplugin/rightpane.cpp4
-rw-r--r--src/plugins/coreplugin/rightpane.h8
14 files changed, 48 insertions, 56 deletions
diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp
index 82ce55ad23..08d3ec20e6 100644
--- a/src/plugins/coreplugin/designmode.cpp
+++ b/src/plugins/coreplugin/designmode.cpp
@@ -197,7 +197,7 @@ void DesignMode::currentEditorChanged(IEditor *editor)
if (!mimeEditorAvailable) {
setActiveContext(Context());
- if (ModeManager::currentMode() == this)
+ if (ModeManager::currentMode() == id())
ModeManager::activateMode(Constants::MODE_EDIT);
setEnabled(false);
d->m_currentEditor = 0;
@@ -217,11 +217,11 @@ void DesignMode::updateActions()
emit actionsUpdated(d->m_currentEditor.data());
}
-void DesignMode::updateContext(IMode *newMode, IMode *oldMode)
+void DesignMode::updateContext(Id newMode, Id oldMode)
{
- if (newMode == this)
+ if (newMode == id())
ICore::addAdditionalContext(d->m_activeContext);
- else if (oldMode == this)
+ else if (oldMode == id())
ICore::removeAdditionalContext(d->m_activeContext);
}
@@ -230,7 +230,7 @@ void DesignMode::setActiveContext(const Context &context)
if (d->m_activeContext == context)
return;
- if (ModeManager::currentMode() == this)
+ if (ModeManager::currentMode() == id())
ICore::updateAdditionalContexts(d->m_activeContext, context);
d->m_activeContext = context;
diff --git a/src/plugins/coreplugin/designmode.h b/src/plugins/coreplugin/designmode.h
index fca1bf03f9..fc0be09ed0 100644
--- a/src/plugins/coreplugin/designmode.h
+++ b/src/plugins/coreplugin/designmode.h
@@ -68,7 +68,7 @@ private:
void updateActions();
void currentEditorChanged(IEditor *editor);
- void updateContext(IMode *newMode, IMode *oldMode);
+ void updateContext(Id newMode, Id oldMode);
void setActiveContext(const Context &context);
DesignModePrivate *d;
diff --git a/src/plugins/coreplugin/editmode.cpp b/src/plugins/coreplugin/editmode.cpp
index f56b6273ad..6432ac8a15 100644
--- a/src/plugins/coreplugin/editmode.cpp
+++ b/src/plugins/coreplugin/editmode.cpp
@@ -58,25 +58,25 @@ EditMode::EditMode() :
m_rightSplitWidgetLayout->setMargin(0);
QWidget *rightSplitWidget = new QWidget;
rightSplitWidget->setLayout(m_rightSplitWidgetLayout);
- auto editorPlaceHolder = new EditorManagerPlaceHolder(this);
+ auto editorPlaceHolder = new EditorManagerPlaceHolder(Constants::MODE_EDIT);
m_rightSplitWidgetLayout->insertWidget(0, editorPlaceHolder);
MiniSplitter *rightPaneSplitter = new MiniSplitter;
rightPaneSplitter->insertWidget(0, rightSplitWidget);
- rightPaneSplitter->insertWidget(1, new RightPanePlaceHolder(this));
+ rightPaneSplitter->insertWidget(1, new RightPanePlaceHolder(Constants::MODE_EDIT));
rightPaneSplitter->setStretchFactor(0, 1);
rightPaneSplitter->setStretchFactor(1, 0);
MiniSplitter *splitter = new MiniSplitter;
splitter->setOrientation(Qt::Vertical);
splitter->insertWidget(0, rightPaneSplitter);
- QWidget *outputPane = new OutputPanePlaceHolder(this, splitter);
+ QWidget *outputPane = new OutputPanePlaceHolder(Constants::MODE_EDIT, splitter);
outputPane->setObjectName(QLatin1String("EditModeOutputPanePlaceHolder"));
splitter->insertWidget(1, outputPane);
splitter->setStretchFactor(0, 3);
splitter->setStretchFactor(1, 0);
- m_splitter->insertWidget(0, new NavigationWidgetPlaceHolder(this));
+ m_splitter->insertWidget(0, new NavigationWidgetPlaceHolder(Constants::MODE_EDIT));
m_splitter->insertWidget(1, splitter);
m_splitter->setStretchFactor(0, 0);
m_splitter->setStretchFactor(1, 1);
@@ -100,9 +100,9 @@ EditMode::~EditMode()
delete m_splitter;
}
-void EditMode::grabEditorManager(IMode *mode)
+void EditMode::grabEditorManager(Id mode)
{
- if (mode != this)
+ if (mode != id())
return;
if (EditorManager::currentEditor())
diff --git a/src/plugins/coreplugin/editmode.h b/src/plugins/coreplugin/editmode.h
index 7fed4f361b..d11ab206e4 100644
--- a/src/plugins/coreplugin/editmode.h
+++ b/src/plugins/coreplugin/editmode.h
@@ -47,7 +47,7 @@ public:
~EditMode();
private:
- void grabEditorManager(IMode *mode);
+ void grabEditorManager(Id mode);
QSplitter *m_splitter;
QVBoxLayout *m_rightSplitWidgetLayout;
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 9d6a44ed64..862445b47b 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -121,7 +121,7 @@ using namespace Utils;
//===================EditorManager=====================
-EditorManagerPlaceHolder::EditorManagerPlaceHolder(IMode *mode, QWidget *parent)
+EditorManagerPlaceHolder::EditorManagerPlaceHolder(Id mode, QWidget *parent)
: QWidget(parent), m_mode(mode)
{
setLayout(new QVBoxLayout);
@@ -143,7 +143,7 @@ EditorManagerPlaceHolder::~EditorManagerPlaceHolder()
}
}
-void EditorManagerPlaceHolder::currentModeChanged(IMode *mode)
+void EditorManagerPlaceHolder::currentModeChanged(Id mode)
{
if (m_mode == mode) {
QWidget *previousFocus = 0;
diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h
index 3d80e73e69..8dcb166915 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.h
+++ b/src/plugins/coreplugin/editormanager/editormanager.h
@@ -72,13 +72,13 @@ class CORE_EXPORT EditorManagerPlaceHolder : public QWidget
{
Q_OBJECT
public:
- explicit EditorManagerPlaceHolder(IMode *mode, QWidget *parent = 0);
+ explicit EditorManagerPlaceHolder(Id mode, QWidget *parent = 0);
~EditorManagerPlaceHolder();
private:
- void currentModeChanged(IMode *);
+ void currentModeChanged(Id mode);
- IMode *m_mode;
+ Id m_mode;
};
class CORE_EXPORT EditorManager : public QObject
diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index 55733e97f2..5b389f9a19 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -115,15 +115,15 @@ ModeManager::~ModeManager()
m_instance = 0;
}
-IMode *ModeManager::currentMode()
+Id ModeManager::currentMode()
{
int currentIndex = d->m_modeStack->currentIndex();
if (currentIndex < 0)
return 0;
- return d->m_modes.at(currentIndex);
+ return d->m_modes.at(currentIndex)->id();
}
-IMode *ModeManager::mode(Id id)
+static IMode *findMode(Id id)
{
const int index = indexOf(id);
if (index >= 0)
@@ -205,7 +205,7 @@ void ModeManager::enabledStateChanged()
d->m_modeStack->setTabEnabled(index, mode->isEnabled());
// Make sure we leave any disabled mode to prevent possible crashes:
- if (mode == currentMode() && !mode->isEnabled()) {
+ if (mode->id() == currentMode() && !mode->isEnabled()) {
// This assumes that there is always at least one enabled mode.
for (int i = 0; i < d->m_modes.count(); ++i) {
if (d->m_modes.at(i) != mode &&
@@ -256,7 +256,7 @@ void ModeManager::currentTabAboutToChange(int index)
if (index >= 0) {
IMode *mode = d->m_modes.at(index);
if (mode)
- emit currentModeAboutToChange(mode);
+ emit currentModeAboutToChange(mode->id());
}
}
@@ -276,13 +276,13 @@ void ModeManager::currentTabChanged(int index)
if (d->m_oldCurrent >= 0)
oldMode = d->m_modes.at(d->m_oldCurrent);
d->m_oldCurrent = index;
- emit currentModeChanged(mode, oldMode);
+ emit currentModeChanged(mode ? mode->id() : Id(), oldMode ? oldMode->id() : Id());
}
}
void ModeManager::setFocusToCurrentMode()
{
- IMode *mode = currentMode();
+ IMode *mode = findMode(currentMode());
QTC_ASSERT(mode, return);
QWidget *widget = mode->widget();
if (widget) {
diff --git a/src/plugins/coreplugin/modemanager.h b/src/plugins/coreplugin/modemanager.h
index 324684bdd7..8f5dbdbba7 100644
--- a/src/plugins/coreplugin/modemanager.h
+++ b/src/plugins/coreplugin/modemanager.h
@@ -25,7 +25,7 @@
#pragma once
-#include <coreplugin/core_global.h>
+#include <coreplugin/id.h>
#include <QObject>
QT_BEGIN_NAMESPACE
@@ -34,9 +34,6 @@ QT_END_NAMESPACE
namespace Core {
-class Id;
-class IMode;
-
namespace Internal {
class MainWindow;
class FancyTabWidget;
@@ -49,8 +46,7 @@ class CORE_EXPORT ModeManager : public QObject
public:
static ModeManager *instance();
- static IMode *currentMode();
- static IMode *mode(Id id);
+ static Id currentMode();
static void addAction(QAction *action, int priority);
static void addProjectSelector(QAction *action);
@@ -63,10 +59,10 @@ public slots:
static void setModeSelectorVisible(bool visible);
signals:
- void currentModeAboutToChange(Core::IMode *mode);
+ void currentModeAboutToChange(Core::Id mode);
// the default argument '=0' is important for connects without the oldMode argument.
- void currentModeChanged(Core::IMode *mode, Core::IMode *oldMode = 0);
+ void currentModeChanged(Core::Id mode, Core::Id oldMode = Core::Id());
private:
explicit ModeManager(Internal::MainWindow *mainWindow, Internal::FancyTabWidget *modeStack);
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index ee64915484..8f8f1435c2 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -55,7 +55,7 @@ NavigationWidgetPlaceHolder* NavigationWidgetPlaceHolder::current()
return m_current;
}
-NavigationWidgetPlaceHolder::NavigationWidgetPlaceHolder(IMode *mode, QWidget *parent)
+NavigationWidgetPlaceHolder::NavigationWidgetPlaceHolder(Id mode, QWidget *parent)
:QWidget(parent), m_mode(mode)
{
setLayout(new QVBoxLayout);
@@ -104,7 +104,7 @@ void NavigationWidgetPlaceHolder::applyStoredSize(int width)
// m_current points to the current PlaceHolder, or zero if there
// is no PlaceHolder in this mode
// And that the parent of the NavigationWidget gets the correct parent
-void NavigationWidgetPlaceHolder::currentModeAboutToChange(IMode *mode)
+void NavigationWidgetPlaceHolder::currentModeAboutToChange(Id mode)
{
NavigationWidget *navigationWidget = NavigationWidget::instance();
diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h
index a1909b120c..1aff5880bc 100644
--- a/src/plugins/coreplugin/navigationwidget.h
+++ b/src/plugins/coreplugin/navigationwidget.h
@@ -38,7 +38,6 @@ QT_END_NAMESPACE
namespace Core {
class INavigationWidgetFactory;
-class IMode;
class Command;
class NavigationWidget;
struct NavigationWidgetPrivate;
@@ -50,15 +49,15 @@ class CORE_EXPORT NavigationWidgetPlaceHolder : public QWidget
friend class Core::NavigationWidget;
public:
- explicit NavigationWidgetPlaceHolder(IMode *mode, QWidget *parent = 0);
+ explicit NavigationWidgetPlaceHolder(Id mode, QWidget *parent = 0);
virtual ~NavigationWidgetPlaceHolder();
static NavigationWidgetPlaceHolder* current();
void applyStoredSize(int width);
private:
- void currentModeAboutToChange(IMode *);
+ void currentModeAboutToChange(Id mode);
- IMode *m_mode;
+ Id m_mode;
static NavigationWidgetPlaceHolder* m_current;
};
diff --git a/src/plugins/coreplugin/outputpane.cpp b/src/plugins/coreplugin/outputpane.cpp
index fe90a73abe..eef0312aea 100644
--- a/src/plugins/coreplugin/outputpane.cpp
+++ b/src/plugins/coreplugin/outputpane.cpp
@@ -36,9 +36,9 @@ namespace Core {
class OutputPanePlaceHolderPrivate {
public:
- explicit OutputPanePlaceHolderPrivate(IMode *mode, QSplitter *parent);
+ explicit OutputPanePlaceHolderPrivate(Id mode, QSplitter *parent);
- IMode *m_mode;
+ Id m_mode;
QSplitter *m_splitter;
int m_nonMaximizedSize = 0;
bool m_isMaximized = false;
@@ -46,14 +46,14 @@ public:
static OutputPanePlaceHolder* m_current;
};
-OutputPanePlaceHolderPrivate::OutputPanePlaceHolderPrivate(IMode *mode, QSplitter *parent) :
+OutputPanePlaceHolderPrivate::OutputPanePlaceHolderPrivate(Id mode, QSplitter *parent) :
m_mode(mode), m_splitter(parent)
{
}
OutputPanePlaceHolder *OutputPanePlaceHolderPrivate::m_current = 0;
-OutputPanePlaceHolder::OutputPanePlaceHolder(IMode *mode, QSplitter* parent)
+OutputPanePlaceHolder::OutputPanePlaceHolder(Id mode, QSplitter *parent)
: QWidget(parent), d(new OutputPanePlaceHolderPrivate(mode, parent))
{
setVisible(false);
@@ -83,7 +83,7 @@ OutputPanePlaceHolder::~OutputPanePlaceHolder()
delete d;
}
-void OutputPanePlaceHolder::currentModeChanged(IMode *mode)
+void OutputPanePlaceHolder::currentModeChanged(Id mode)
{
if (d->m_current == this) {
d->m_current = 0;
diff --git a/src/plugins/coreplugin/outputpane.h b/src/plugins/coreplugin/outputpane.h
index 1b75131093..072cda75ab 100644
--- a/src/plugins/coreplugin/outputpane.h
+++ b/src/plugins/coreplugin/outputpane.h
@@ -25,7 +25,7 @@
#pragma once
-#include "core_global.h"
+#include "id.h"
#include <QWidget>
@@ -35,9 +35,6 @@ QT_END_NAMESPACE
namespace Core {
-class IMode;
-
-namespace Internal { class OutputPaneManager; }
class OutputPanePlaceHolderPrivate;
class CORE_EXPORT OutputPanePlaceHolder : public QWidget
@@ -45,7 +42,7 @@ class CORE_EXPORT OutputPanePlaceHolder : public QWidget
Q_OBJECT
public:
- explicit OutputPanePlaceHolder(IMode *mode, QSplitter *parent = 0);
+ explicit OutputPanePlaceHolder(Id mode, QSplitter *parent = 0);
~OutputPanePlaceHolder();
static OutputPanePlaceHolder *getCurrent();
@@ -62,7 +59,7 @@ protected:
private:
void setHeight(int height);
- void currentModeChanged(IMode *);
+ void currentModeChanged(Id mode);
OutputPanePlaceHolderPrivate *d;
};
diff --git a/src/plugins/coreplugin/rightpane.cpp b/src/plugins/coreplugin/rightpane.cpp
index 7b894b6b21..4c139cb284 100644
--- a/src/plugins/coreplugin/rightpane.cpp
+++ b/src/plugins/coreplugin/rightpane.cpp
@@ -45,7 +45,7 @@ RightPanePlaceHolder* RightPanePlaceHolder::current()
return m_current;
}
-RightPanePlaceHolder::RightPanePlaceHolder(IMode *mode, QWidget *parent)
+RightPanePlaceHolder::RightPanePlaceHolder(Id mode, QWidget *parent)
:QWidget(parent), m_mode(mode)
{
setLayout(new QVBoxLayout);
@@ -92,7 +92,7 @@ void RightPanePlaceHolder::applyStoredSize(int width)
// m_current points to the current PlaceHolder, or zero if there
// is no PlaceHolder in this mode
// And that the parent of the RightPaneWidget gets the correct parent
-void RightPanePlaceHolder::currentModeChanged(IMode *mode)
+void RightPanePlaceHolder::currentModeChanged(Id mode)
{
if (m_current == this) {
m_current = 0;
diff --git a/src/plugins/coreplugin/rightpane.h b/src/plugins/coreplugin/rightpane.h
index 4bcce788bb..4fb410f5eb 100644
--- a/src/plugins/coreplugin/rightpane.h
+++ b/src/plugins/coreplugin/rightpane.h
@@ -25,7 +25,7 @@
#pragma once
-#include "core_global.h"
+#include "id.h"
#include <QWidget>
#include <QPointer>
@@ -45,14 +45,14 @@ class CORE_EXPORT RightPanePlaceHolder : public QWidget
Q_OBJECT
public:
- explicit RightPanePlaceHolder(IMode *mode, QWidget *parent = 0);
+ explicit RightPanePlaceHolder(Id mode, QWidget *parent = 0);
~RightPanePlaceHolder();
static RightPanePlaceHolder *current();
private:
- void currentModeChanged(IMode *);
+ void currentModeChanged(Id mode);
void applyStoredSize(int width);
- IMode *m_mode;
+ Id m_mode;
static RightPanePlaceHolder* m_current;
};