summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2011-05-17 12:40:57 +0200
committerKai Koehne <kai.koehne@nokia.com>2011-05-18 11:47:21 +0200
commit6a55021285649aa4bdb43f6eaaff59fbd41dca15 (patch)
tree9656bdde3154356a74c69cbc2dd87d7996e73141 /src
parentbec4f02495b97b17e0b0f8cb67d0909634c16228 (diff)
downloadqt-creator-6a55021285649aa4bdb43f6eaaff59fbd41dca15.tar.gz
QmlDebugging: Enable QML Debugger language for Qt Quick Applications
Enable the QML debugger by default for run configurations generated for a Qt Quick Application based project. This is done by checking the file list for a 'qmlapplicationviewer/qmlapplicationviewer.pri'. Change-Id: Ia19d2022808b068c2e525aa28e938b7f7125c35d Reviewed-by: dt
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp45
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h8
2 files changed, 44 insertions, 9 deletions
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 2194106498..41580a619d 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -61,6 +61,7 @@ namespace {
const char * const USE_CPP_DEBUGGER_KEY("RunConfiguration.UseCppDebugger");
const char * const USE_QML_DEBUGGER_KEY("RunConfiguration.UseQmlDebugger");
+const char * const USE_QML_DEBUGGER_AUTO_KEY("RunConfiguration.UseQmlDebuggerAuto");
const char * const QML_DEBUG_SERVER_PORT_KEY("RunConfiguration.QmlDebugServerPort");
class RunConfigurationFactoryMatcher
@@ -166,7 +167,7 @@ IRunConfigurationFactory *findRunConfigurationFactory(RunConfigurationFactoryMat
RunConfiguration::RunConfiguration(Target *target, const QString &id) :
ProjectConfiguration(target, id),
m_useCppDebugger(true),
- m_useQmlDebugger(false),
+ m_useQmlDebugger(AutoEnableQmlDebugger),
m_qmlDebugServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT)
{
Q_ASSERT(target);
@@ -175,8 +176,9 @@ RunConfiguration::RunConfiguration(Target *target, const QString &id) :
RunConfiguration::RunConfiguration(Target *target, RunConfiguration *source) :
ProjectConfiguration(target, source),
- m_useCppDebugger(source->useCppDebugger()),
- m_useQmlDebugger(source->useQmlDebugger())
+ m_useCppDebugger(source->m_useCppDebugger),
+ m_useQmlDebugger(source->m_useQmlDebugger),
+ m_qmlDebugServerPort(source->m_qmlDebugServerPort)
{
Q_ASSERT(target);
addExtraAspects();
@@ -238,7 +240,11 @@ Target *RunConfiguration::target() const
void RunConfiguration::setUseQmlDebugger(bool value)
{
- m_useQmlDebugger = value;
+ if (value) {
+ m_useQmlDebugger = EnableQmlDebugger;
+ } else {
+ m_useQmlDebugger = DisableQmlDebugger;
+ }
emit debuggersChanged();
}
@@ -253,9 +259,24 @@ bool RunConfiguration::useCppDebugger() const
return m_useCppDebugger;
}
+static bool isQtQuickAppProject(Project *project)
+{
+ const QString &filePath = project->projectDirectory()
+ +QLatin1String("/qmlapplicationviewer/qmlapplicationviewer.pri");
+ return project->files(Project::ExcludeGeneratedFiles).contains(filePath);
+}
+
bool RunConfiguration::useQmlDebugger() const
{
- return m_useQmlDebugger;
+ if (m_useQmlDebugger == AutoEnableQmlDebugger) {
+ if (isQtQuickAppProject(target()->project())) {
+ m_useQmlDebugger = EnableQmlDebugger;
+ } else {
+ m_useQmlDebugger = DisableQmlDebugger;
+ }
+ }
+
+ return (m_useQmlDebugger == EnableQmlDebugger);
}
uint RunConfiguration::qmlDebugServerPort() const
@@ -273,7 +294,8 @@ QVariantMap RunConfiguration::toMap() const
{
QVariantMap map = ProjectConfiguration::toMap();
map.insert(QLatin1String(USE_CPP_DEBUGGER_KEY), m_useCppDebugger);
- map.insert(QLatin1String(USE_QML_DEBUGGER_KEY), m_useQmlDebugger);
+ map.insert(QLatin1String(USE_QML_DEBUGGER_KEY), m_useQmlDebugger == EnableQmlDebugger);
+ map.insert(QLatin1String(USE_QML_DEBUGGER_AUTO_KEY), m_useQmlDebugger == AutoEnableQmlDebugger);
map.insert(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), m_qmlDebugServerPort);
foreach (IRunConfigurationAspect *aspect, m_aspects)
map.unite(aspect->toMap());
@@ -295,8 +317,15 @@ ProjectExplorer::Abi RunConfiguration::abi() const
bool RunConfiguration::fromMap(const QVariantMap &map)
{
m_useCppDebugger = map.value(QLatin1String(USE_CPP_DEBUGGER_KEY), true).toBool();
- m_useQmlDebugger = map.value(QLatin1String(USE_QML_DEBUGGER_KEY), false).toBool();
- m_qmlDebugServerPort = map.value(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), Constants::QML_DEFAULT_DEBUG_SERVER_PORT).toUInt();
+ if (map.value(QLatin1String(USE_QML_DEBUGGER_AUTO_KEY), false).toBool()) {
+ m_useQmlDebugger = AutoEnableQmlDebugger;
+ } else {
+ if (map.value(QLatin1String(USE_QML_DEBUGGER_KEY), false).toBool()) {
+ m_useQmlDebugger = EnableQmlDebugger;
+ } else {
+ m_useQmlDebugger = DisableQmlDebugger;
+ }
+ }
foreach (IRunConfigurationAspect *aspect, m_aspects)
if (!aspect->fromMap(map))
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index a2d165aa76..5fa5c95a40 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -109,8 +109,14 @@ protected:
private:
void addExtraAspects();
+ enum QmlDebuggerStatus {
+ DisableQmlDebugger = 0,
+ EnableQmlDebugger,
+ AutoEnableQmlDebugger
+ };
+
bool m_useCppDebugger;
- bool m_useQmlDebugger;
+ mutable QmlDebuggerStatus m_useQmlDebugger;
uint m_qmlDebugServerPort;
QList<IRunConfigurationAspect *> m_aspects;
};