forked from qt-creator/qt-creator
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:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user