Debugger languages are now runconfiguration dependent

There's a UI in qml/customexec/cmake/qmake run configs for choosing the
debugger languages (C++ and QML). The default for all except .qmlproject
is only C++, so default debugging behavior is the same. However, if the
user wants to do simultaneous debugging with two languages, or only
debug QML, they can select the languages from Run Settings and it will
be remembered.

Reviewed-by: hunger
This commit is contained in:
Lasse Holmstedt
2010-09-01 11:34:34 +02:00
parent 3db7e51484
commit 8c39471081
15 changed files with 289 additions and 26 deletions

View File

@@ -38,6 +38,7 @@
#include <projectexplorer/environment.h>
#include <projectexplorer/debugginghelper.h>
#include <utils/qtcassert.h>
#include <utils/debuggerlanguagechooser.h>
#include <QtGui/QFormLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QGroupBox>
@@ -346,6 +347,13 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
fl->addRow(tr("Working Directory:"), boxlayout);
QLabel *debuggerLabel = new QLabel(tr("Debugger:"), this);
m_debuggerLanguageChooser = new Utils::DebuggerLanguageChooser(this);
fl->addRow(debuggerLabel, m_debuggerLanguageChooser);
m_debuggerLanguageChooser->setCppChecked(m_cmakeRunConfiguration->useCppDebugger());
m_debuggerLanguageChooser->setQmlChecked(m_cmakeRunConfiguration->useQmlDebugger());
m_detailsContainer = new Utils::DetailsWidget(this);
m_detailsContainer->setState(Utils::DetailsWidget::NoSummary);
@@ -394,6 +402,11 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
connect(resetButton, SIGNAL(clicked()),
this, SLOT(resetWorkingDirectory()));
connect(m_debuggerLanguageChooser, SIGNAL(cppLanguageToggled(bool)),
this, SLOT(useCppDebuggerToggled(bool)));
connect(m_debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)),
this, SLOT(useQmlDebuggerToggled(bool)));
connect(m_environmentWidget, SIGNAL(userChangesChanged()),
this, SLOT(userChangesChanged()));
@@ -428,6 +441,16 @@ void CMakeRunConfigurationWidget::resetWorkingDirectory()
m_cmakeRunConfiguration->setUserWorkingDirectory("");
}
void CMakeRunConfigurationWidget::useCppDebuggerToggled(bool toggled)
{
m_cmakeRunConfiguration->setUseCppDebugger(toggled);
}
void CMakeRunConfigurationWidget::useQmlDebuggerToggled(bool toggled)
{
m_cmakeRunConfiguration->setUseQmlDebugger(toggled);
}
void CMakeRunConfigurationWidget::userChangesChanged()
{
m_cmakeRunConfiguration->setUserEnvironmentChanges(m_environmentWidget->userChanges());

View File

@@ -41,6 +41,10 @@ QT_BEGIN_NAMESPACE
class QComboBox;
QT_END_NAMESPACE
namespace Utils {
class DebuggerLanguageChooser;
}
namespace CMakeProjectManager {
namespace Internal {
@@ -93,6 +97,8 @@ signals:
private slots:
void setArguments(const QString &newText);
void useCppDebuggerToggled(bool toggled);
void useQmlDebuggerToggled(bool toggled);
protected:
CMakeRunConfiguration(CMakeTarget *parent, CMakeRunConfiguration *source);
@@ -137,6 +143,8 @@ private slots:
void userChangesChanged();
void setWorkingDirectory();
void resetWorkingDirectory();
void useCppDebuggerToggled(bool toggled);
void useQmlDebuggerToggled(bool toggled);
private slots:
void baseEnvironmentComboBoxChanged(int index);
@@ -148,6 +156,7 @@ private:
CMakeRunConfiguration *m_cmakeRunConfiguration;
Utils::PathChooser *m_workingDirectoryEdit;
QComboBox *m_baseEnvironmentComboBox;
Utils::DebuggerLanguageChooser *m_debuggerLanguageChooser;
ProjectExplorer::EnvironmentWidget *m_environmentWidget;
Utils::DetailsWidget *m_detailsContainer;
};