forked from qt-creator/qt-creator
Debugger: Automatically adapt to the languages the running engine supports
We used to get the layout only from the current/last run configuration. However, this fails for engines started by other means (Debug->Start Debugging submenu). Change-Id: I87e12457c7cd68a326ac1827298a3542e149199b Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -134,6 +134,7 @@ public:
|
||||
|
||||
DebuggerLanguages m_previousDebugLanguages;
|
||||
DebuggerLanguages m_activeDebugLanguages;
|
||||
DebuggerLanguages m_engineDebugLanguages;
|
||||
|
||||
ActionContainer *m_viewsMenu;
|
||||
|
||||
@@ -151,6 +152,7 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw)
|
||||
, m_changingUI(false)
|
||||
, m_previousDebugLanguages(AnyLanguage)
|
||||
, m_activeDebugLanguages(AnyLanguage)
|
||||
, m_engineDebugLanguages(AnyLanguage)
|
||||
, m_viewsMenu(0)
|
||||
{
|
||||
createViewsMenuItems();
|
||||
@@ -222,11 +224,15 @@ void DebuggerMainWindowPrivate::updateActiveLanguages()
|
||||
{
|
||||
DebuggerLanguages newLanguages = AnyLanguage;
|
||||
|
||||
if (m_previousRunConfiguration) {
|
||||
if (m_previousRunConfiguration.data()->useCppDebugger())
|
||||
newLanguages = CppLanguage;
|
||||
if (m_previousRunConfiguration.data()->useQmlDebugger())
|
||||
newLanguages |= QmlLanguage;
|
||||
if (m_engineDebugLanguages != AnyLanguage)
|
||||
newLanguages = m_engineDebugLanguages;
|
||||
else {
|
||||
if (m_previousRunConfiguration) {
|
||||
if (m_previousRunConfiguration.data()->useCppDebugger())
|
||||
newLanguages |= CppLanguage;
|
||||
if (m_previousRunConfiguration.data()->useQmlDebugger())
|
||||
newLanguages |= QmlLanguage;
|
||||
}
|
||||
}
|
||||
|
||||
if (newLanguages != m_activeDebugLanguages) {
|
||||
@@ -269,6 +275,15 @@ DebuggerLanguages DebuggerMainWindow::activeDebugLanguages() const
|
||||
return d->m_activeDebugLanguages;
|
||||
}
|
||||
|
||||
void DebuggerMainWindow::setEngineDebugLanguages(DebuggerLanguages languages)
|
||||
{
|
||||
if (d->m_engineDebugLanguages == languages)
|
||||
return;
|
||||
|
||||
d->m_engineDebugLanguages = languages;
|
||||
d->updateActiveLanguages();
|
||||
}
|
||||
|
||||
void DebuggerMainWindow::onModeChanged(IMode *mode)
|
||||
{
|
||||
d->m_inDebugMode = (mode && mode->id() == Constants::MODE_DEBUG);
|
||||
|
||||
Reference in New Issue
Block a user