aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/enginemanager.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-11-06 09:20:00 +0100
committerEike Ziller <eike.ziller@qt.io>2018-11-06 09:20:00 +0100
commit1473bc5891cc06ff7f0a431fe0212b4321e266de (patch)
tree188c5862ef56c1ee7b06439b5423ea650dfc125a /src/plugins/debugger/enginemanager.cpp
parent9d296cf1f12e95f55f25a8ca11608df29b11dfce (diff)
parente18cbad28592eb911b8c82b7f71b8ee0382a19f9 (diff)
Merge remote-tracking branch 'origin/4.8'
Conflicts: src/plugins/debugger/debuggermainwindow.cpp src/plugins/qbsprojectmanager/qbsbuildstep.cpp src/plugins/winrt/winrtdevicefactory.cpp tests/unit/unittest/gtest-creator-printing.cpp tests/unit/unittest/gtest-creator-printing.h tests/unit/unittest/unittest.pro Change-Id: Ie9b80b87a8a4fa81baf72a2daa7919b21371c15e
Diffstat (limited to 'src/plugins/debugger/enginemanager.cpp')
-rw-r--r--src/plugins/debugger/enginemanager.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/plugins/debugger/enginemanager.cpp b/src/plugins/debugger/enginemanager.cpp
index 4ea21bf99a0..8e829c7cfb0 100644
--- a/src/plugins/debugger/enginemanager.cpp
+++ b/src/plugins/debugger/enginemanager.cpp
@@ -278,11 +278,11 @@ bool EngineItem::setData(int row, const QVariant &value, int role)
auto menu = new QMenu(ev.view());
- QAction *actCreate = menu->addAction(tr("Create Snapshot"));
+ QAction *actCreate = menu->addAction(EngineManager::tr("Create Snapshot"));
actCreate->setEnabled(m_engine->hasCapability(SnapshotCapabilityRole));
menu->addSeparator();
- QAction *actRemove = menu->addAction(tr("Abort Debugger"));
+ QAction *actRemove = menu->addAction(EngineManager::tr("Abort Debugger"));
actRemove->setEnabled(true);
QAction *act = menu->exec(cmev->globalPos());
@@ -315,23 +315,30 @@ void EngineManagerPrivate::activateEngineByIndex(int index)
void EngineManagerPrivate::activateEngineItem(EngineItem *engineItem)
{
+ Context previousContext;
if (m_currentItem) {
if (DebuggerEngine *engine = m_currentItem->m_engine) {
- const Context context = engine->languageContext();
- ICore::removeAdditionalContext(context);
+ previousContext.add(engine->languageContext());
+ previousContext.add(engine->debuggerContext());
+ } else {
+ previousContext.add(Context(Constants::C_DEBUGGER_NOTRUNNING));
}
}
m_currentItem = engineItem;
+ Context newContext;
if (m_currentItem) {
if (DebuggerEngine *engine = m_currentItem->m_engine) {
- const Context context = engine->languageContext();
- ICore::addAdditionalContext(context);
+ newContext.add(engine->languageContext());
+ newContext.add(engine->debuggerContext());
engine->gotoCurrentLocation();
+ } else {
+ newContext.add(Context(Constants::C_DEBUGGER_NOTRUNNING));
}
}
+ ICore::updateAdditionalContexts(previousContext, newContext);
selectUiForCurrentEngine();
}
@@ -344,13 +351,8 @@ void EngineManagerPrivate::selectUiForCurrentEngine()
int row = 0;
if (m_currentItem && m_currentItem->m_engine) {
- ICore::updateAdditionalContexts(Context(Debugger::Constants::C_DEBUGGER_NOTRUNNING),
- Context(Debugger::Constants::C_DEBUGGER_RUNNING));
perspective = m_currentItem->m_engine->perspective();
m_currentItem->m_engine->updateState(false);
- } else {
- ICore::updateAdditionalContexts(Context(Debugger::Constants::C_DEBUGGER_RUNNING),
- Context(Debugger::Constants::C_DEBUGGER_NOTRUNNING));
}
if (m_currentItem)