From ace68297425d5298af9ebfa9f289b4bc69ea3853 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Fri, 5 Apr 2013 13:20:52 +0200 Subject: [PATCH] DebuggerRunConfigurationAspect: Suppress widgets as necessary Suppress widgets of the DebuggerRunConfigurationAspect widget as required. Change-Id: I4e384d4e725bd95bea51465e28e26ece3e2f5cc8 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- .../debuggerrunconfigurationaspect.cpp | 60 ++++++------------- .../debugger/debuggerrunconfigurationaspect.h | 10 ---- src/plugins/madde/maemorunconfiguration.cpp | 3 - .../qmlprojectrunconfiguration.cpp | 6 -- .../remotelinuxrunconfiguration.cpp | 1 - 5 files changed, 18 insertions(+), 62 deletions(-) diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index 1aee092d952..d228994fab8 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -34,6 +34,7 @@ #include <coreplugin/icontext.h> #include <coreplugin/icore.h> #include <coreplugin/helpmanager.h> +#include <projectexplorer/kitinformation.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/runconfiguration.h> @@ -125,9 +126,6 @@ DebuggerRunConfigWidget::DebuggerRunConfigWidget(DebuggerRunConfigurationAspect connect(m_useMultiProcess, SIGNAL(toggled(bool)), SLOT(useMultiProcessToggled(bool))); - if (m_aspect->isDisplaySuppressed()) - hide(); - if (m_aspect->areQmlDebuggingOptionsSuppressed()) { m_debugServerPortLabel->hide(); m_debugServerPort->hide(); @@ -199,11 +197,7 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect( 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) + m_useMultiProcess(false) { ctor(); } @@ -215,11 +209,7 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect( 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) + m_useMultiProcess(other->m_useMultiProcess) { ctor(); } @@ -274,44 +264,25 @@ 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; + return !m_runConfiguration->target()->project() + ->projectLanguages().contains(ProjectExplorer::Constants::LANG_QMLJS); } bool DebuggerRunConfigurationAspect::areCppDebuggingOptionsSuppressed() const { - return m_suppressCppDebuggingOptions; + return !m_runConfiguration->target()->project() + ->projectLanguages().contains(ProjectExplorer::Constants::LANG_CXX); } bool DebuggerRunConfigurationAspect::isQmlDebuggingSpinboxSuppressed() const { - return m_suppressQmlDebuggingSpinbox; + ProjectExplorer::Kit *k = m_runConfiguration->target()->kit(); + ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceKitInformation::device(k); + if (dev.isNull()) + return false; + return dev->portsGatheringMethod().isNull(); // We know the free ports... } QString DebuggerRunConfigurationAspect::displayName() const @@ -350,13 +321,18 @@ DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::clone( ProjectExplorer::RunConfigWidget *DebuggerRunConfigurationAspect::createConfigurationWidget() { - return new Internal::DebuggerRunConfigWidget(this); + if (areCppDebuggingOptionsSuppressed() && areQmlDebuggingOptionsSuppressed()) + return 0; + else + return new Internal::DebuggerRunConfigWidget(this); } void DebuggerRunConfigurationAspect::ctor() { connect(this, SIGNAL(debuggersChanged()), m_runConfiguration, SIGNAL(requestRunActionsUpdate())); + setUseCppDebugger(!areCppDebuggingOptionsSuppressed()); + setUseQmlDebugger(!areQmlDebuggingOptionsSuppressed()); } } // namespace Debugger diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.h b/src/plugins/debugger/debuggerrunconfigurationaspect.h index 1d3463efd5d..a90312de1f3 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.h +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.h @@ -70,11 +70,6 @@ public: void setQmllDebugServerPort(uint port); bool useMultiProcess() const; void setUseMultiProcess(bool on); - void suppressDisplay(); - void suppressQmlDebuggingOptions(); - void suppressCppDebuggingOptions(); - void suppressQmlDebuggingSpinbox(); - bool isDisplaySuppressed() const; bool areQmlDebuggingOptionsSuppressed() const; bool areCppDebuggingOptionsSuppressed() const; bool isQmlDebuggingSpinboxSuppressed() const; @@ -92,11 +87,6 @@ private: uint m_qmlDebugServerPort; bool m_useMultiProcess; - bool m_suppressDisplay; - bool m_suppressQmlDebuggingOptions; - bool m_suppressCppDebuggingOptions; - bool m_suppressQmlDebuggingSpinbox; - friend class Internal::DebuggerRunConfigWidget; }; diff --git a/src/plugins/madde/maemorunconfiguration.cpp b/src/plugins/madde/maemorunconfiguration.cpp index 0fb692914f0..11293a3a8cc 100644 --- a/src/plugins/madde/maemorunconfiguration.cpp +++ b/src/plugins/madde/maemorunconfiguration.cpp @@ -77,9 +77,6 @@ void MaemoRunConfiguration::init() connect(m_remoteMounts, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(handleRemoteMountsChanged())); connect(m_remoteMounts, SIGNAL(modelReset()), SLOT(handleRemoteMountsChanged())); - - if (DeviceTypeKitInformation::deviceTypeId(target()->kit()) != HarmattanOsType) - extraAspect<Debugger::DebuggerRunConfigurationAspect>()->suppressQmlDebuggingOptions(); } bool MaemoRunConfiguration::isEnabled() const diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 27a00f5d3ba..bbe019cac4e 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -92,12 +92,6 @@ QString QmlProjectRunConfiguration::disabledReason() const void QmlProjectRunConfiguration::ctor() { // reset default settings in constructor - Debugger::DebuggerRunConfigurationAspect *aspect - = extraAspect<Debugger::DebuggerRunConfigurationAspect>(); - aspect->setUseCppDebugger(false); - aspect->setUseQmlDebugger(true); - aspect->suppressQmlDebuggingSpinbox(); - EditorManager *em = Core::EditorManager::instance(); connect(em, SIGNAL(currentEditorChanged(Core::IEditor*)), this, SLOT(changeCurrentFile(Core::IEditor*))); diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp index 07354cb1325..e7a2e337336 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp +++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp @@ -118,7 +118,6 @@ RemoteLinuxRunConfiguration::~RemoteLinuxRunConfiguration() void RemoteLinuxRunConfiguration::init() { setDefaultDisplayName(defaultDisplayName()); - extraAspect<Debugger::DebuggerRunConfigurationAspect>()->suppressQmlDebuggingSpinbox(); connect(target(), SIGNAL(deploymentDataChanged()), SLOT(handleBuildSystemDataUpdated())); connect(target(), SIGNAL(applicationTargetsChanged()), SLOT(handleBuildSystemDataUpdated())); -- GitLab