From 71501a3bf7982de2ed831efe037830b9664fe1ce Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 20 Mar 2018 17:00:19 +0100 Subject: [PATCH] BareMetal: Some consolidation of RunConfiguration related classes Purely mechanical, no visible/functional changes intended or expected. - have one file pair for each set of config/factory/widget - de-pimpl BareMetalRunConfigWidget, it's very local now - use new wrapWidget convenience function for run config widget setup Change-Id: Icd0df2bc7e206d6bf15d722f7eaa3b9fbee0b0fa Reviewed-by: Alexander Drozdov Reviewed-by: hjk --- src/plugins/baremetal/baremetal.pro | 4 - src/plugins/baremetal/baremetal.qbs | 2 - .../baremetalcustomrunconfiguration.cpp | 42 +++----- .../baremetalcustomrunconfiguration.h | 8 +- src/plugins/baremetal/baremetalplugin.cpp | 2 +- .../baremetal/baremetalrunconfiguration.cpp | 61 ++++++++++- .../baremetal/baremetalrunconfiguration.h | 10 +- .../baremetalrunconfigurationfactory.cpp | 61 ----------- .../baremetalrunconfigurationfactory.h | 50 --------- .../baremetalrunconfigurationwidget.cpp | 101 ------------------ .../baremetalrunconfigurationwidget.h | 51 --------- 11 files changed, 87 insertions(+), 305 deletions(-) delete mode 100644 src/plugins/baremetal/baremetalrunconfigurationfactory.cpp delete mode 100644 src/plugins/baremetal/baremetalrunconfigurationfactory.h delete mode 100644 src/plugins/baremetal/baremetalrunconfigurationwidget.cpp delete mode 100644 src/plugins/baremetal/baremetalrunconfigurationwidget.h diff --git a/src/plugins/baremetal/baremetal.pro b/src/plugins/baremetal/baremetal.pro index d6294b5ab79..886cc982841 100644 --- a/src/plugins/baremetal/baremetal.pro +++ b/src/plugins/baremetal/baremetal.pro @@ -6,9 +6,7 @@ include(../../qtcreatorplugin.pri) SOURCES += baremetalplugin.cpp \ baremetalcustomrunconfiguration.cpp\ baremetaldevice.cpp \ - baremetalrunconfigurationfactory.cpp \ baremetalrunconfiguration.cpp \ - baremetalrunconfigurationwidget.cpp \ baremetalgdbcommandsdeploystep.cpp \ baremetaldeviceconfigurationwizardpages.cpp \ baremetaldeviceconfigurationwizard.cpp \ @@ -28,9 +26,7 @@ HEADERS += baremetalplugin.h \ baremetalconstants.h \ baremetalcustomrunconfiguration.h \ baremetaldevice.h \ - baremetalrunconfigurationfactory.h \ baremetalrunconfiguration.h \ - baremetalrunconfigurationwidget.h \ baremetalgdbcommandsdeploystep.h \ baremetaldeviceconfigurationfactory.h \ baremetaldeviceconfigurationwidget.h \ diff --git a/src/plugins/baremetal/baremetal.qbs b/src/plugins/baremetal/baremetal.qbs index 74b56d611d3..a3164425105 100644 --- a/src/plugins/baremetal/baremetal.qbs +++ b/src/plugins/baremetal/baremetal.qbs @@ -24,8 +24,6 @@ QtcPlugin { "baremetalgdbcommandsdeploystep.cpp", "baremetalgdbcommandsdeploystep.h", "baremetalplugin.cpp", "baremetalplugin.h", "baremetalrunconfiguration.cpp", "baremetalrunconfiguration.h", - "baremetalrunconfigurationfactory.cpp", "baremetalrunconfigurationfactory.h", - "baremetalrunconfigurationwidget.cpp", "baremetalrunconfigurationwidget.h", "baremetaldebugsupport.cpp", "baremetaldebugsupport.h", "gdbserverproviderprocess.cpp", "gdbserverproviderprocess.h", "gdbserverproviderssettingspage.cpp", "gdbserverproviderssettingspage.h", diff --git a/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp b/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp index 3b5869bfc09..cb599fad2e2 100644 --- a/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp +++ b/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp @@ -25,20 +25,14 @@ #include "baremetalcustomrunconfiguration.h" +#include "baremetalconstants.h" + #include #include #include -#include -#include #include -#include -#include #include -#include -#include -#include -#include using namespace Utils; using namespace ProjectExplorer; @@ -48,29 +42,17 @@ namespace Internal { class BareMetalCustomRunConfigWidget : public RunConfigWidget { - Q_OBJECT - public: BareMetalCustomRunConfigWidget(BareMetalCustomRunConfiguration *runConfig) : m_runConfig(runConfig) { - auto const mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(0); - auto const detailsContainer = new DetailsWidget(this); - mainLayout->addWidget(detailsContainer); - detailsContainer->setState(DetailsWidget::NoSummary); - auto const detailsWidget = new QWidget(this); - detailsContainer->setWidget(detailsWidget); - - auto exeLabel = new QLabel(tr("Executable:")); auto executableChooser = new PathChooser; executableChooser->setExpectedKind(PathChooser::File); executableChooser->setPath(m_runConfig->localExecutableFilePath()); auto clayout = new QFormLayout(this); - detailsWidget->setLayout(clayout); + clayout->addRow(BareMetalCustomRunConfiguration::tr("Executable:"), executableChooser); - clayout->addRow(exeLabel, executableChooser); runConfig->extraAspect()->addToMainConfigurationWidget(this, clayout); runConfig->extraAspect()->addToMainConfigurationWidget(this, clayout); @@ -89,7 +71,7 @@ private: BareMetalCustomRunConfiguration * const m_runConfig; }; -BareMetalCustomRunConfiguration::BareMetalCustomRunConfiguration(ProjectExplorer::Target *parent) +BareMetalCustomRunConfiguration::BareMetalCustomRunConfiguration(Target *parent) : BareMetalRunConfiguration(parent) { } @@ -99,7 +81,7 @@ bool BareMetalCustomRunConfiguration::isConfigured() const return !m_localExecutable.isEmpty(); } -ProjectExplorer::RunConfiguration::ConfigurationState +RunConfiguration::ConfigurationState BareMetalCustomRunConfiguration::ensureConfigured(QString *errorMessage) { if (!isConfigured()) { @@ -114,7 +96,7 @@ BareMetalCustomRunConfiguration::ensureConfigured(QString *errorMessage) QWidget *BareMetalCustomRunConfiguration::createConfigurationWidget() { - return new BareMetalCustomRunConfigWidget(this); + return wrapWidget(new BareMetalCustomRunConfigWidget(this)); } Utils::OutputFormatter *BareMetalCustomRunConfiguration::createOutputFormatter() const @@ -142,7 +124,15 @@ QVariantMap BareMetalCustomRunConfiguration::toMap() const return map; } +// BareMetalCustomRunConfigurationFactory + +BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory() : + FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable"), true) +{ + registerRunConfiguration("BareMetal.CustomRunConfig"); + setDecorateDisplayNames(true); + addSupportedTargetDeviceType(BareMetal::Constants::BareMetalOsType); +} + } // namespace Internal } // namespace BareMetal - -#include "baremetalcustomrunconfiguration.moc" diff --git a/src/plugins/baremetal/baremetalcustomrunconfiguration.h b/src/plugins/baremetal/baremetalcustomrunconfiguration.h index 59c6ed7e449..aa6411619ca 100644 --- a/src/plugins/baremetal/baremetalcustomrunconfiguration.h +++ b/src/plugins/baremetal/baremetalcustomrunconfiguration.h @@ -27,8 +27,6 @@ #include "baremetalrunconfiguration.h" -namespace Utils { class Environment; } - namespace BareMetal { namespace Internal { @@ -54,5 +52,11 @@ private: QString m_localExecutable; }; +class BareMetalCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory +{ +public: + BareMetalCustomRunConfigurationFactory(); +}; + } // namespace Internal } // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalplugin.cpp b/src/plugins/baremetal/baremetalplugin.cpp index 2ee3afb458b..7452896ef2f 100644 --- a/src/plugins/baremetal/baremetalplugin.cpp +++ b/src/plugins/baremetal/baremetalplugin.cpp @@ -26,10 +26,10 @@ #include "baremetalplugin.h" #include "baremetalconstants.h" +#include "baremetalcustomrunconfiguration.h" #include "baremetaldeviceconfigurationfactory.h" #include "baremetaldebugsupport.h" #include "baremetalrunconfiguration.h" -#include "baremetalrunconfigurationfactory.h" #include "gdbserverproviderssettingspage.h" #include "gdbserverprovidermanager.h" diff --git a/src/plugins/baremetal/baremetalrunconfiguration.cpp b/src/plugins/baremetal/baremetalrunconfiguration.cpp index 02c6d8c32a5..7d1e4b5568e 100644 --- a/src/plugins/baremetal/baremetalrunconfiguration.cpp +++ b/src/plugins/baremetal/baremetalrunconfiguration.cpp @@ -25,8 +25,7 @@ #include "baremetalrunconfiguration.h" -#include "baremetalcustomrunconfiguration.h" -#include "baremetalrunconfigurationwidget.h" +#include "baremetalconstants.h" #include #include @@ -34,12 +33,58 @@ #include #include +#include +#include +#include + using namespace ProjectExplorer; using namespace Utils; namespace BareMetal { namespace Internal { +// BareMetalRunConfigurationWidget + +class BareMetalRunConfigurationWidget : public QWidget +{ +public: + explicit BareMetalRunConfigurationWidget(BareMetalRunConfiguration *runConfiguration); + +private: + void updateTargetInformation(); + + BareMetalRunConfiguration * const m_runConfiguration; + QLabel m_localExecutableLabel; +}; + +BareMetalRunConfigurationWidget::BareMetalRunConfigurationWidget(BareMetalRunConfiguration *runConfiguration) + : m_runConfiguration(runConfiguration) +{ + auto formLayout = new QFormLayout(this); + formLayout->setFormAlignment(Qt::AlignLeft | Qt::AlignVCenter); + + m_localExecutableLabel.setText(m_runConfiguration->localExecutableFilePath()); + formLayout->addRow(BareMetalRunConfiguration::tr("Executable:"), &m_localExecutableLabel); + + //d->genericWidgetsLayout.addRow(tr("Debugger host:"),d->runConfiguration); + //d->genericWidgetsLayout.addRow(tr("Debugger port:"),d->runConfiguration); + runConfiguration->extraAspect()->addToMainConfigurationWidget(this, formLayout); + runConfiguration->extraAspect()->addToMainConfigurationWidget(this, formLayout); + + connect(m_runConfiguration, &BareMetalRunConfiguration::targetInformationChanged, + this, &BareMetalRunConfigurationWidget::updateTargetInformation); +} + +void BareMetalRunConfigurationWidget::updateTargetInformation() +{ + const QString regularText = QDir::toNativeSeparators(m_runConfiguration->localExecutableFilePath()); + const QString errorMessage = "" + tr("Unknown") + ""; + m_localExecutableLabel.setText(regularText.isEmpty() ? errorMessage : regularText); +} + + +// BareMetalRunConfiguration + BareMetalRunConfiguration::BareMetalRunConfiguration(Target *target) : RunConfiguration(target, IdPrefix) { @@ -67,7 +112,7 @@ void BareMetalRunConfiguration::doAdditionalSetup(const RunConfigurationCreation QWidget *BareMetalRunConfiguration::createConfigurationWidget() { - return new BareMetalRunConfigurationWidget(this); + return wrapWidget(new BareMetalRunConfigurationWidget(this)); } OutputFormatter *BareMetalRunConfiguration::createOutputFormatter() const @@ -110,6 +155,16 @@ void BareMetalRunConfiguration::handleBuildSystemDataUpdated() const char *BareMetalRunConfiguration::IdPrefix = "BareMetal"; + +// BareMetalRunConfigurationFactory + +BareMetalRunConfigurationFactory::BareMetalRunConfigurationFactory() +{ + registerRunConfiguration(BareMetalRunConfiguration::IdPrefix); + setDecorateDisplayNames(true); + addSupportedTargetDeviceType(BareMetal::Constants::BareMetalOsType); +} + } // namespace Internal } // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalrunconfiguration.h b/src/plugins/baremetal/baremetalrunconfiguration.h index 6d9ed930d33..c95ab3a9236 100644 --- a/src/plugins/baremetal/baremetalrunconfiguration.h +++ b/src/plugins/baremetal/baremetalrunconfiguration.h @@ -35,10 +35,6 @@ class BareMetalRunConfigurationWidget; class BareMetalRunConfiguration : public ProjectExplorer::RunConfiguration { Q_OBJECT - Q_DISABLE_COPY(BareMetalRunConfiguration) - - friend class ProjectExplorer::RunConfigurationFactory; - friend class BareMetalRunConfigurationWidget; public: explicit BareMetalRunConfiguration(ProjectExplorer::Target *target); @@ -66,5 +62,11 @@ private: QString m_buildKey; }; +class BareMetalRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory +{ +public: + BareMetalRunConfigurationFactory(); +}; + } // namespace Internal } // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp deleted file mode 100644 index cb054c02e40..00000000000 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "baremetalrunconfigurationfactory.h" -#include "baremetalconstants.h" -#include "baremetalcustomrunconfiguration.h" -#include "baremetalrunconfiguration.h" - -#include -#include -#include -#include - -using namespace ProjectExplorer; - -namespace BareMetal { -namespace Internal { - -// BareMetalRunConfigurationFactory - -BareMetalRunConfigurationFactory::BareMetalRunConfigurationFactory() -{ - registerRunConfiguration(BareMetalRunConfiguration::IdPrefix); - setDecorateDisplayNames(true); - addSupportedTargetDeviceType(BareMetal::Constants::BareMetalOsType); -} - -// BareMetalCustomRunConfigurationFactory - -BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory() : - FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable"), true) -{ - registerRunConfiguration("BareMetal.CustomRunConfig"); - setDecorateDisplayNames(true); - addSupportedTargetDeviceType(BareMetal::Constants::BareMetalOsType); -} - -} // namespace Internal -} // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.h b/src/plugins/baremetal/baremetalrunconfigurationfactory.h deleted file mode 100644 index abdd4e438cb..00000000000 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include - -namespace BareMetal { -namespace Internal { - -class BareMetalRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory -{ - Q_OBJECT - -public: - BareMetalRunConfigurationFactory(); -}; - -class BareMetalCustomRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory -{ - Q_OBJECT - -public: - BareMetalCustomRunConfigurationFactory(); -}; - -} // namespace Internal -} // namespace RemoteLinux diff --git a/src/plugins/baremetal/baremetalrunconfigurationwidget.cpp b/src/plugins/baremetal/baremetalrunconfigurationwidget.cpp deleted file mode 100644 index 9f93bceb0e0..00000000000 --- a/src/plugins/baremetal/baremetalrunconfigurationwidget.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "baremetalrunconfigurationwidget.h" -#include "baremetalrunconfiguration.h" - -#include -#include -#include - -#include -#include -#include -#include -#include - -using namespace ProjectExplorer; - -namespace BareMetal { -namespace Internal { - -class BareMetalRunConfigurationWidgetPrivate -{ -public: - BareMetalRunConfigurationWidgetPrivate(BareMetalRunConfiguration *runConfig) - : runConfiguration(runConfig) - { } - - BareMetalRunConfiguration * const runConfiguration; - QLabel localExecutableLabel; - QFormLayout genericWidgetsLayout; -}; - -} // namespace Internal - -using namespace Internal; - -BareMetalRunConfigurationWidget::BareMetalRunConfigurationWidget(BareMetalRunConfiguration *runConfiguration) - : d(new BareMetalRunConfigurationWidgetPrivate(runConfiguration)) -{ - QVBoxLayout *mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(0); - - Utils::DetailsWidget *detailsContainer = new Utils::DetailsWidget(this); - detailsContainer->setState(Utils::DetailsWidget::NoSummary); - - QWidget *details = new QWidget(this); - details->setLayout(&d->genericWidgetsLayout); - detailsContainer->setWidget(details); - - mainLayout->addWidget(detailsContainer); - - d->genericWidgetsLayout.setFormAlignment(Qt::AlignLeft | Qt::AlignVCenter); - - d->localExecutableLabel.setText(d->runConfiguration->localExecutableFilePath()); - d->genericWidgetsLayout.addRow(tr("Executable:"),&d->localExecutableLabel); - - //d->genericWidgetsLayout.addRow(tr("Debugger host:"),d->runConfiguration); - //d->genericWidgetsLayout.addRow(tr("Debugger port:"),d->runConfiguration); - runConfiguration->extraAspect()->addToMainConfigurationWidget(this, &d->genericWidgetsLayout); - runConfiguration->extraAspect()->addToMainConfigurationWidget(this, &d->genericWidgetsLayout); - - connect(d->runConfiguration, &BareMetalRunConfiguration::targetInformationChanged, - this, &BareMetalRunConfigurationWidget::updateTargetInformation); -} - -BareMetalRunConfigurationWidget::~BareMetalRunConfigurationWidget() -{ - delete d; -} - -void BareMetalRunConfigurationWidget::updateTargetInformation() -{ - const QString regularText = QDir::toNativeSeparators(d->runConfiguration->localExecutableFilePath()); - const QString errorMessage = "" + tr("Unknown") + ""; - d->localExecutableLabel.setText(regularText.isEmpty() ? errorMessage : regularText); -} - -} // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalrunconfigurationwidget.h b/src/plugins/baremetal/baremetalrunconfigurationwidget.h deleted file mode 100644 index bbfe1b50766..00000000000 --- a/src/plugins/baremetal/baremetalrunconfigurationwidget.h +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include - -namespace BareMetal { -namespace Internal { - -class BareMetalRunConfiguration; -class BareMetalRunConfigurationWidgetPrivate; - -class BareMetalRunConfigurationWidget : public QWidget -{ - Q_OBJECT - -public: - explicit BareMetalRunConfigurationWidget(BareMetalRunConfiguration *runConfiguration); - ~BareMetalRunConfigurationWidget(); - -private: - void updateTargetInformation(); - - BareMetalRunConfigurationWidgetPrivate * const d; -}; - -} // namespace Internal -} // namespace BareMetal