summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-03-27 13:03:15 +0100
committerTobias Hunger <tobias.hunger@digia.com>2013-04-05 14:56:25 +0200
commit533644290fb5c0f511085eb9a9648f38c8497635 (patch)
tree14891878a62ca34c4f960702561aa22541f4dde5 /src/plugins/debugger/debuggerrunconfigurationaspect.cpp
parente474b6ed8f52d8416af250072434d3a11c184172 (diff)
downloadqt-creator-533644290fb5c0f511085eb9a9648f38c8497635.tar.gz
Move DebuggerRunConfigurationAspect into Debugger
Change-Id: I03cab5d963a6d7c77171efe360a552d8109f6a8b Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/debugger/debuggerrunconfigurationaspect.cpp')
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.cpp212
1 files changed, 212 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
new file mode 100644
index 0000000000..cba05009f3
--- /dev/null
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
@@ -0,0 +1,212 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#include "debuggerrunconfigurationaspect.h"
+
+#include "debuggerconstants.h"
+
+#include <coreplugin/icontext.h>
+#include <projectexplorer/project.h>
+#include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/target.h>
+
+static const char USE_CPP_DEBUGGER_KEY[] = "RunConfiguration.UseCppDebugger";
+static const char USE_QML_DEBUGGER_KEY[] = "RunConfiguration.UseQmlDebugger";
+static const char USE_QML_DEBUGGER_AUTO_KEY[] = "RunConfiguration.UseQmlDebuggerAuto";
+static const char QML_DEBUG_SERVER_PORT_KEY[] = "RunConfiguration.QmlDebugServerPort";
+static const char USE_MULTIPROCESS_KEY[] = "RunConfiguration.UseMultiProcess";
+
+namespace Debugger {
+
+/*!
+ \class Debugger::DebuggerRunConfigurationAspect
+*/
+
+DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(
+ ProjectExplorer::RunConfiguration *rc) :
+ m_runConfiguration(rc),
+ m_useCppDebugger(true),
+ m_useQmlDebugger(AutoEnableQmlDebugger),
+ m_qmlDebugServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT),
+ m_useMultiProcess(false),
+ m_suppressDisplay(false),
+ m_suppressQmlDebuggingOptions(false),
+ m_suppressCppDebuggingOptions(false),
+ m_suppressQmlDebuggingSpinbox(false)
+{
+ ctor();
+}
+
+DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(
+ ProjectExplorer::RunConfiguration *runConfiguration,
+ const DebuggerRunConfigurationAspect *other)
+ : m_runConfiguration(runConfiguration),
+ m_useCppDebugger(other->m_useCppDebugger),
+ m_useQmlDebugger(other->m_useQmlDebugger),
+ m_qmlDebugServerPort(other->m_qmlDebugServerPort),
+ m_useMultiProcess(other->m_useMultiProcess),
+ m_suppressDisplay(other->m_suppressDisplay),
+ m_suppressQmlDebuggingOptions(other->m_suppressQmlDebuggingOptions),
+ m_suppressCppDebuggingOptions(other->m_suppressCppDebuggingOptions),
+ m_suppressQmlDebuggingSpinbox(other->m_suppressQmlDebuggingSpinbox)
+{
+ ctor();
+}
+
+ProjectExplorer::RunConfiguration *DebuggerRunConfigurationAspect::runConfiguration()
+{
+ return m_runConfiguration;
+}
+
+void DebuggerRunConfigurationAspect::setUseQmlDebugger(bool value)
+{
+ m_useQmlDebugger = value ? EnableQmlDebugger : DisableQmlDebugger;
+ emit debuggersChanged();
+}
+
+void DebuggerRunConfigurationAspect::setUseCppDebugger(bool value)
+{
+ m_useCppDebugger = value;
+ emit debuggersChanged();
+}
+
+bool DebuggerRunConfigurationAspect::useCppDebugger() const
+{
+ return m_useCppDebugger;
+}
+
+bool DebuggerRunConfigurationAspect::useQmlDebugger() const
+{
+ if (m_useQmlDebugger == DebuggerRunConfigurationAspect::AutoEnableQmlDebugger)
+ return m_runConfiguration->target()->project()->projectLanguages().contains(
+ ProjectExplorer::Constants::LANG_QMLJS);
+ return m_useQmlDebugger == DebuggerRunConfigurationAspect::EnableQmlDebugger;
+}
+
+uint DebuggerRunConfigurationAspect::qmlDebugServerPort() const
+{
+ return m_qmlDebugServerPort;
+}
+
+void DebuggerRunConfigurationAspect::setQmllDebugServerPort(uint port)
+{
+ m_qmlDebugServerPort = port;
+}
+
+bool DebuggerRunConfigurationAspect::useMultiProcess() const
+{
+ return m_useMultiProcess;
+}
+
+void DebuggerRunConfigurationAspect::setUseMultiProcess(bool value)
+{
+ m_useMultiProcess = value;
+}
+
+void DebuggerRunConfigurationAspect::suppressDisplay()
+{
+ m_suppressDisplay = true;
+}
+
+void DebuggerRunConfigurationAspect::suppressQmlDebuggingOptions()
+{
+ m_suppressQmlDebuggingOptions = true;
+}
+
+void DebuggerRunConfigurationAspect::suppressCppDebuggingOptions()
+{
+ m_suppressCppDebuggingOptions = true;
+}
+
+void DebuggerRunConfigurationAspect::suppressQmlDebuggingSpinbox()
+{
+ m_suppressQmlDebuggingSpinbox = true;
+}
+
+bool DebuggerRunConfigurationAspect::isDisplaySuppressed() const
+{
+ return m_suppressDisplay;
+}
+
+bool DebuggerRunConfigurationAspect::areQmlDebuggingOptionsSuppressed() const
+{
+ return m_suppressQmlDebuggingOptions;
+}
+
+bool DebuggerRunConfigurationAspect::areCppDebuggingOptionsSuppressed() const
+{
+ return m_suppressCppDebuggingOptions;
+}
+
+bool DebuggerRunConfigurationAspect::isQmlDebuggingSpinboxSuppressed() const
+{
+ return m_suppressQmlDebuggingSpinbox;
+}
+
+QString DebuggerRunConfigurationAspect::displayName() const
+{
+ return tr("Debugger settings");
+}
+
+QVariantMap DebuggerRunConfigurationAspect::toMap() const
+{
+ QVariantMap map;
+ map.insert(QLatin1String(USE_CPP_DEBUGGER_KEY), m_useCppDebugger);
+ 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);
+ map.insert(QLatin1String(USE_MULTIPROCESS_KEY), m_useMultiProcess);
+ return map;
+}
+
+void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map)
+{
+ m_useCppDebugger = map.value(QLatin1String(USE_CPP_DEBUGGER_KEY), true).toBool();
+ if (map.value(QLatin1String(USE_QML_DEBUGGER_AUTO_KEY), false).toBool()) {
+ m_useQmlDebugger = AutoEnableQmlDebugger;
+ } else {
+ bool useQml = map.value(QLatin1String(USE_QML_DEBUGGER_KEY), false).toBool();
+ m_useQmlDebugger = useQml ? EnableQmlDebugger : DisableQmlDebugger;
+ }
+ m_useMultiProcess = map.value(QLatin1String(USE_MULTIPROCESS_KEY), false).toBool();
+}
+
+DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::clone(
+ ProjectExplorer::RunConfiguration *parent) const
+{
+ return new DebuggerRunConfigurationAspect(parent, this);
+}
+
+void DebuggerRunConfigurationAspect::ctor()
+{
+ connect(this, SIGNAL(debuggersChanged()),
+ m_runConfiguration, SIGNAL(requestRunActionsUpdate()));
+}
+
+} // namespace Debugger