From cec468d78a57b2858d3b5c03ccb5c5c1928d628c Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 18 Sep 2020 12:11:40 +0200 Subject: [PATCH] Utils/ProjectExplorer: Move re-usabled bits of aspects to Utils Classes involved are BaseAspect and some derived classes, LayoutBuilder and VariableChooser. This is mostly mechanical, with various include/using changes to make it compile. Change-Id: I624a457f3555f102e541c4c71e33a9423af32250 Reviewed-by: Eike Ziller --- src/libs/utils/CMakeLists.txt | 3 + .../utils/aspects.cpp} | 122 ++++++++---- .../utils/aspects.h} | 134 ++++++++++--- src/libs/utils/layoutbuilder.cpp | 160 ++++++++++++++++ src/libs/utils/layoutbuilder.h | 92 +++++++++ src/libs/utils/macroexpander.cpp | 2 +- src/libs/utils/utils-lib.pri | 10 +- src/libs/utils/utils.qbs | 6 + .../utils}/variablechooser.cpp | 23 +-- .../utils}/variablechooser.h | 10 +- .../android/androidrunconfiguration.cpp | 4 +- src/plugins/android/androidrunconfiguration.h | 4 +- .../autotoolsprojectmanager/autogenstep.cpp | 6 +- .../autoreconfstep.cpp | 7 +- .../autotoolsprojectmanager/configurestep.cpp | 8 +- ...aremetaldeviceconfigurationwizardpages.cpp | 2 +- .../gdb/eblinkgdbserverprovider.cpp | 5 +- .../gdb/jlinkgdbserverprovider.cpp | 7 +- .../gdb/openocdgdbserverprovider.cpp | 5 +- .../gdb/stlinkutilgdbserverprovider.cpp | 5 +- src/plugins/boot2qt/qdbmakedefaultappstep.cpp | 1 + .../builddirparameters.cpp | 1 + .../cmakebuildconfiguration.h | 2 +- .../cmakebuildsettingswidget.cpp | 4 +- .../cmakeprojectmanager/cmakebuildstep.cpp | 1 + .../cmakeprojectmanager/cmakebuildstep.h | 11 +- .../cmakekitinformation.cpp | 4 +- src/plugins/coreplugin/CMakeLists.txt | 1 - src/plugins/coreplugin/coreplugin.pro | 2 - src/plugins/coreplugin/coreplugin.qbs | 2 - .../coreplugin/dialogs/externaltoolconfig.cpp | 2 +- src/plugins/cppcheck/cppcheckoptions.cpp | 4 +- src/plugins/debugger/commonoptionspage.cpp | 2 +- .../debuggerrunconfigurationaspect.cpp | 7 +- .../debugger/debuggerrunconfigurationaspect.h | 4 +- .../debuggersourcepathmappingwidget.cpp | 7 +- src/plugins/debugger/gdb/gdboptionspage.cpp | 2 +- .../genericbuildconfiguration.cpp | 2 +- .../incredibuild/buildconsolebuildstep.cpp | 3 +- .../incredibuild/commandbuilderaspect.cpp | 1 + .../incredibuild/commandbuilderaspect.h | 7 +- .../incredibuild/ibconsolebuildstep.cpp | 4 +- src/plugins/ios/iosbuildconfiguration.cpp | 1 + src/plugins/ios/iosbuildconfiguration.h | 6 +- src/plugins/ios/iosrunconfiguration.cpp | 5 +- .../languageclient/languageclientsettings.cpp | 6 +- .../mcusupport/mcusupportrunconfiguration.cpp | 4 +- .../buildoptions/mesonbuildsettingswidget.cpp | 6 +- src/plugins/nim/project/nimbletaskstep.cpp | 3 +- .../nim/project/nimbuildconfiguration.cpp | 3 +- .../nim/project/nimcompilercleanstep.cpp | 3 +- src/plugins/projectexplorer/CMakeLists.txt | 1 - src/plugins/projectexplorer/buildaspects.cpp | 1 + src/plugins/projectexplorer/buildaspects.h | 9 +- .../projectexplorer/buildconfiguration.cpp | 5 +- .../projectexplorer/buildpropertiessettings.h | 10 +- .../buildpropertiessettingspage.cpp | 6 +- src/plugins/projectexplorer/buildstep.cpp | 10 +- .../customexecutablerunconfiguration.cpp | 2 +- src/plugins/projectexplorer/customparser.h | 2 +- .../projectexplorer/environmentaspect.h | 3 +- .../projectexplorer/kitinformation.cpp | 4 +- .../kitmanagerconfigwidget.cpp | 8 +- src/plugins/projectexplorer/makestep.cpp | 8 +- src/plugins/projectexplorer/makestep.h | 24 +-- src/plugins/projectexplorer/processstep.cpp | 2 +- .../projectexplorer/projectconfiguration.cpp | 177 +----------------- .../projectexplorer/projectconfiguration.h | 145 +------------- .../projectexplorer/projectexplorer.pro | 2 - .../projectexplorer/projectexplorer.qbs | 1 - .../projectexplorer/runconfiguration.cpp | 9 +- .../projectexplorer/runconfiguration.h | 5 +- .../runconfigurationaspects.cpp | 5 +- .../projectexplorer/runconfigurationaspects.h | 33 ++-- src/plugins/projectexplorer/runcontrol.cpp | 4 +- src/plugins/projectexplorer/runcontrol.h | 2 +- .../runsettingspropertiespage.cpp | 2 +- src/plugins/python/pythonrunconfiguration.cpp | 5 +- .../qbsprojectmanager/qbsbuildconfiguration.h | 8 +- .../qbsprojectmanager/qbsbuildstep.cpp | 4 +- .../qbsprojectmanager/qbscleanstep.cpp | 1 + src/plugins/qbsprojectmanager/qbscleanstep.h | 8 +- .../qbsprojectmanager/qbsinstallstep.cpp | 2 + .../qbsprojectmanager/qbsinstallstep.h | 10 +- .../qmakeprojectmanager/makefileparse.cpp | 10 +- .../qmakebuildconfiguration.h | 9 +- .../qmakeprojectmanager/qmakemakestep.cpp | 3 +- src/plugins/qmakeprojectmanager/qmakestep.cpp | 6 +- src/plugins/qmakeprojectmanager/qmakestep.h | 14 +- .../qmlprojectmanager/qmlmainfileaspect.cpp | 4 +- .../qmlprojectmanager/qmlmainfileaspect.h | 4 +- .../qmlmultilanguageaspect.h | 2 +- .../qmlprojectrunconfiguration.cpp | 2 +- src/plugins/qnx/qnxrunconfiguration.h | 2 +- src/plugins/qtsupport/qtbuildaspects.cpp | 5 +- src/plugins/qtsupport/qtbuildaspects.h | 14 +- src/plugins/qtsupport/qtoptionspage.cpp | 4 +- .../remotelinux/genericdirectuploadstep.cpp | 1 + src/plugins/remotelinux/makeinstallstep.h | 8 +- .../remotelinuxcheckforfreediskspacestep.cpp | 3 +- ...remotelinuxcustomcommanddeploymentstep.cpp | 1 + .../remotelinuxx11forwardingaspect.h | 6 +- .../remotelinux/tarpackagecreationstep.cpp | 1 + .../remotelinux/tarpackagecreationstep.h | 7 +- .../webassemblyrunconfigurationaspects.cpp | 7 +- .../webassemblyrunconfigurationaspects.h | 4 +- .../winrt/winrtpackagedeploymentstep.cpp | 5 +- src/plugins/winrt/winrtrunconfiguration.h | 6 +- 108 files changed, 751 insertions(+), 621 deletions(-) rename src/{plugins/projectexplorer/projectconfigurationaspects.cpp => libs/utils/aspects.cpp} (92%) rename src/{plugins/projectexplorer/projectconfigurationaspects.h => libs/utils/aspects.h} (71%) create mode 100644 src/libs/utils/layoutbuilder.cpp create mode 100644 src/libs/utils/layoutbuilder.h rename src/{plugins/coreplugin => libs/utils}/variablechooser.cpp (97%) rename src/{plugins/coreplugin => libs/utils}/variablechooser.h (92%) diff --git a/src/libs/utils/CMakeLists.txt b/src/libs/utils/CMakeLists.txt index 4bfb447cb9e..be1f49f88d6 100644 --- a/src/libs/utils/CMakeLists.txt +++ b/src/libs/utils/CMakeLists.txt @@ -14,6 +14,7 @@ add_qtc_library(Utils ansiescapecodehandler.cpp ansiescapecodehandler.h appmainwindow.cpp appmainwindow.h archive.cpp archive.h + aspects.cpp aspects.h basetreeview.cpp basetreeview.h benchmarker.cpp benchmarker.h buildablehelperlibrary.cpp buildablehelperlibrary.h @@ -73,6 +74,7 @@ add_qtc_library(Utils itemviews.cpp itemviews.h json.cpp json.h jsontreeitem.cpp jsontreeitem.h + layoutbuilder.cpp layoutbuilder.h linecolumn.h link.h listmodel.h @@ -169,6 +171,7 @@ add_qtc_library(Utils utils.qrc utils_global.h utilsicons.cpp utilsicons.h + variablechooser.cpp variablechooser.h variant.h winutils.cpp winutils.h wizard.cpp wizard.h diff --git a/src/plugins/projectexplorer/projectconfigurationaspects.cpp b/src/libs/utils/aspects.cpp similarity index 92% rename from src/plugins/projectexplorer/projectconfigurationaspects.cpp rename to src/libs/utils/aspects.cpp index d5d45e51dc2..712d92299c8 100644 --- a/src/plugins/projectexplorer/projectconfigurationaspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -23,35 +23,77 @@ ** ****************************************************************************/ -#include "projectconfigurationaspects.h" +#include "aspects.h" -#include "environmentaspect.h" -#include "project.h" -#include "projectexplorer.h" -#include "projectexplorersettings.h" -#include "runconfiguration.h" -#include "target.h" - -#include -#include -#include -#include -#include +#include "algorithm.h" +#include "fancylineedit.h" +#include "layoutbuilder.h" +#include "pathchooser.h" +#include "qtcassert.h" +#include "qtcprocess.h" +#include "utilsicons.h" +#include "variablechooser.h" +#include #include #include +#include #include #include -#include -#include -#include -#include +#include #include -#include +#include +#include +#include -using namespace Utils; +namespace Utils { + +// BaseAspect + +BaseAspect::BaseAspect() = default; + +BaseAspect::~BaseAspect() = default; + +void BaseAspect::setConfigWidgetCreator(const ConfigWidgetCreator &configWidgetCreator) +{ + m_configWidgetCreator = configWidgetCreator; +} + +QWidget *BaseAspect::createConfigWidget() const +{ + return m_configWidgetCreator ? m_configWidgetCreator() : nullptr; +} + +void BaseAspect::addToLayout(LayoutBuilder &) +{ +} + +// BaseAspects + +BaseAspects::BaseAspects() = default; + +BaseAspects::~BaseAspects() +{ + qDeleteAll(base()); +} + +BaseAspect *BaseAspects::aspect(Utils::Id id) const +{ + return Utils::findOrDefault(base(), Utils::equal(&BaseAspect::id, id)); +} + +void BaseAspects::fromMap(const QVariantMap &map) const +{ + for (BaseAspect *aspect : *this) + aspect->fromMap(map); +} + +void BaseAspects::toMap(QVariantMap &map) const +{ + for (BaseAspect *aspect : *this) + aspect->toMap(map); +} -namespace ProjectExplorer { namespace Internal { class BoolAspectPrivate @@ -108,9 +150,9 @@ public: QPointer m_lineEditDisplay; QPointer m_pathChooserDisplay; QPointer m_textEditDisplay; - Utils::MacroExpanderProvider m_expanderProvider; + MacroExpanderProvider m_expanderProvider; QPixmap m_labelPixmap; - Utils::FilePath m_baseFileName; + FilePath m_baseFileName; StringAspect::ValueAcceptor m_valueAcceptor; bool m_readOnly = false; bool m_showToolTipOnLabel = false; @@ -153,7 +195,7 @@ public: class AspectContainerPrivate { public: - QList m_items; + QList m_items; }; class TextDisplayPrivate @@ -168,7 +210,7 @@ public: } // Internal /*! - \class ProjectExplorer::StringAspect + \class Utils::StringAspect */ StringAspect::StringAspect() @@ -382,17 +424,19 @@ void StringAspect::addToLayout(LayoutBuilder &builder) d->m_label->setPixmap(d->m_labelPixmap); builder.addItem(d->m_label.data()); + QWidget *parentWidget = builder.layout()->parentWidget(); + const auto useMacroExpander = [this, &builder](QWidget *w) { if (!d->m_expanderProvider) return; - const auto chooser = new Core::VariableChooser(builder.layout()->parentWidget()); + const auto chooser = new VariableChooser(builder.layout()->parentWidget()); chooser->addSupportedWidget(w); chooser->addMacroExpanderProvider(d->m_expanderProvider); }; switch (d->m_displayStyle) { case PathChooserDisplay: - d->m_pathChooserDisplay = new PathChooser; + d->m_pathChooserDisplay = new PathChooser(parentWidget); d->m_pathChooserDisplay->setExpectedKind(d->m_expectedKind); if (!d->m_historyCompleterKey.isEmpty()) d->m_pathChooserDisplay->setHistoryCompleter(d->m_historyCompleterKey); @@ -501,7 +545,7 @@ void StringAspect::makeCheckable(CheckBoxPlacement checkBoxPlacement, } /*! - \class ProjectExplorer::BoolAspect + \class Utils::BoolAspect */ BoolAspect::BoolAspect(const QString &settingsKey) @@ -592,7 +636,7 @@ void BoolAspect::setEnabled(bool enabled) } /*! - \class ProjectExplorer::SelectionAspect + \class Utils::SelectionAspect */ SelectionAspect::SelectionAspect() @@ -706,7 +750,7 @@ void SelectionAspect::addOption(const QString &displayName, const QString &toolT } /*! - \class ProjectExplorer::IntegerAspect + \class Utils::IntegerAspect */ // IntegerAspect @@ -821,7 +865,7 @@ void IntegerAspect::setToolTip(const QString &tooltip) } /*! - \class ProjectExplorer::BaseTristateAspect + \class Utils::BaseTristateAspect */ TriStateAspect::TriStateAspect() @@ -856,7 +900,7 @@ TriState TriState::fromVariant(const QVariant &variant) /*! - \class ProjectExplorer::StringListAspect + \class Utils::StringListAspect */ StringListAspect::StringListAspect() @@ -892,7 +936,7 @@ void StringListAspect::setValue(const QStringList &value) } /*! - \class ProjectExplorer::TextDisplay + \class Utils::TextDisplay */ TextDisplay::TextDisplay(const QString &message, InfoLabel::InfoType type) @@ -919,7 +963,7 @@ void TextDisplay::addToLayout(LayoutBuilder &builder) void TextDisplay::setVisible(bool visible) { - ProjectConfigurationAspect::setVisible(visible); + BaseAspect::setVisible(visible); if (d->m_label) d->m_label->setVisible(visible); } @@ -939,7 +983,7 @@ void TextDisplay::setIconType(InfoLabel::InfoType t) } /*! - \class ProjectExplorer::AspectContainer + \class Utils::AspectContainer */ AspectContainer::AspectContainer() @@ -948,14 +992,14 @@ AspectContainer::AspectContainer() AspectContainer::~AspectContainer() = default; -void AspectContainer::addAspectHelper(ProjectConfigurationAspect *aspect) +void AspectContainer::addAspectHelper(BaseAspect *aspect) { d->m_items.append(aspect); } void AspectContainer::addToLayout(LayoutBuilder &builder) { - for (ProjectConfigurationAspect *aspect : d->m_items) { + for (BaseAspect *aspect : d->m_items) { if (aspect->isVisible()) aspect->addToLayout(builder); } @@ -963,14 +1007,14 @@ void AspectContainer::addToLayout(LayoutBuilder &builder) void AspectContainer::fromMap(const QVariantMap &map) { - for (ProjectConfigurationAspect *aspect : d->m_items) + for (BaseAspect *aspect : d->m_items) aspect->fromMap(map); } void AspectContainer::toMap(QVariantMap &map) const { - for (ProjectConfigurationAspect *aspect : d->m_items) + for (BaseAspect *aspect : d->m_items) aspect->toMap(map); } -} // namespace ProjectExplorer +} // namespace Utils diff --git a/src/plugins/projectexplorer/projectconfigurationaspects.h b/src/libs/utils/aspects.h similarity index 71% rename from src/plugins/projectexplorer/projectconfigurationaspects.h rename to src/libs/utils/aspects.h index df0dc94eaa0..0ba0a5ba43a 100644 --- a/src/plugins/projectexplorer/projectconfigurationaspects.h +++ b/src/libs/utils/aspects.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. @@ -25,17 +25,19 @@ #pragma once -#include "projectconfiguration.h" -#include "environmentaspect.h" - -#include -#include -#include -#include +#include "fileutils.h" +#include "id.h" +#include "infolabel.h" +#include "macroexpander.h" +#include "optional.h" +#include "pathchooser.h" #include -namespace ProjectExplorer { +namespace Utils { + +class BaseAspects; +class LayoutBuilder; namespace Internal { class AspectContainerPrivate; @@ -47,7 +49,91 @@ class StringListAspectPrivate; class TextDisplayPrivate; } // Internal -class PROJECTEXPLORER_EXPORT BoolAspect : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT BaseAspect : public QObject +{ + Q_OBJECT + +public: + BaseAspect(); + ~BaseAspect() override; + + void setId(Utils::Id id) { m_id = id; } + void setDisplayName(const QString &displayName) { m_displayName = displayName; } + void setSettingsKey(const QString &settingsKey) { m_settingsKey = settingsKey; } + + Utils::Id id() const { return m_id; } + QString displayName() const { return m_displayName; } + QString settingsKey() const { return m_settingsKey; } + + bool isVisible() const { return m_visible; } + void setVisible(bool visible) { m_visible = visible; } + + using ConfigWidgetCreator = std::function; + void setConfigWidgetCreator(const ConfigWidgetCreator &configWidgetCreator); + QWidget *createConfigWidget() const; + + virtual void fromMap(const QVariantMap &) {} + virtual void toMap(QVariantMap &) const {} + virtual void acquaintSiblings(const BaseAspects &) {} + + virtual void addToLayout(LayoutBuilder &builder); + +signals: + void changed(); + +protected: + virtual void setVisibleDynamic(bool visible) { Q_UNUSED(visible) } // TODO: Better name? Merge with setVisible() somehow? + + Utils::Id m_id; + QString m_displayName; + QString m_settingsKey; // Name of data in settings. + bool m_visible = true; + ConfigWidgetCreator m_configWidgetCreator; +}; + +class QTCREATOR_UTILS_EXPORT BaseAspects + : private QList +{ + using Base = QList; + + BaseAspects(const BaseAspects &) = delete; + BaseAspects &operator=(const BaseAspects &) = delete; + +public: + BaseAspects(); + ~BaseAspects(); + + template + Aspect *addAspect(Args && ...args) + { + auto aspect = new Aspect(args...); + append(aspect); + return aspect; + } + + BaseAspect *aspect(Utils::Id id) const; + + template T *aspect() const + { + for (BaseAspect *aspect : *this) + if (T *result = qobject_cast(aspect)) + return result; + return nullptr; + } + + void fromMap(const QVariantMap &map) const; + void toMap(QVariantMap &map) const; + + using Base::append; + using Base::begin; + using Base::end; + +private: + Base &base() { return *this; } + const Base &base() const { return *this; } +}; + +class QTCREATOR_UTILS_EXPORT BoolAspect : public BaseAspect { Q_OBJECT @@ -76,7 +162,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT SelectionAspect : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT SelectionAspect : public BaseAspect { Q_OBJECT @@ -111,7 +197,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT StringAspect : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT StringAspect : public BaseAspect { Q_OBJECT @@ -176,7 +262,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT IntegerAspect : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT IntegerAspect : public BaseAspect { Q_OBJECT @@ -206,7 +292,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT TriState +class QTCREATOR_UTILS_EXPORT TriState { enum Value { EnabledValue, DisabledValue, DefaultValue }; explicit TriState(Value v) : m_value(v) {} @@ -228,7 +314,7 @@ private: Value m_value = DefaultValue; }; -class PROJECTEXPLORER_EXPORT TriStateAspect : public SelectionAspect +class QTCREATOR_UTILS_EXPORT TriStateAspect : public SelectionAspect { Q_OBJECT public: @@ -238,7 +324,7 @@ public: void setSetting(TriState setting); }; -class PROJECTEXPLORER_EXPORT StringListAspect : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT StringListAspect : public BaseAspect { Q_OBJECT @@ -258,7 +344,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT TextDisplay : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT TextDisplay : public BaseAspect { Q_OBJECT @@ -277,7 +363,7 @@ private: std::unique_ptr d; }; -class PROJECTEXPLORER_EXPORT AspectContainer : public ProjectConfigurationAspect +class QTCREATOR_UTILS_EXPORT AspectContainer : public BaseAspect { Q_OBJECT @@ -299,17 +385,9 @@ public: void toMap(QVariantMap &map) const override; private: - void addAspectHelper(ProjectConfigurationAspect *aspect); + void addAspectHelper(BaseAspect *aspect); std::unique_ptr d; }; -// FIXME: For migration. Remove after 4.15 -using BaseBoolAspect = BoolAspect; -using BaseIntegerAspect = IntegerAspect; -using BaseSelectionAspect = SelectionAspect; -using BaseStringAspect = StringAspect; -using BaseStringListAspect = StringListAspect; -using BaseStringListAspect = StringListAspect; - -} // namespace ProjectExplorer +} // namespace Utils diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp new file mode 100644 index 00000000000..3171ae210fa --- /dev/null +++ b/src/libs/utils/layoutbuilder.cpp @@ -0,0 +1,160 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** 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 "layoutbuilder.h" + +#include +#include +#include + +#include +#include +#include + +namespace Utils { + +LayoutBuilder::LayoutBuilder(QWidget *parent, LayoutType layoutType) +{ + if (layoutType == FormLayout) { + m_formLayout = new QFormLayout(parent); + m_formLayout->setContentsMargins(0, 0, 0, 0); + m_formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + } else { + m_gridLayout = new QGridLayout(parent); + m_gridLayout->setContentsMargins(0, 0, 0, 0); + } +} + +LayoutBuilder::LayoutBuilder(QLayout *layout) +{ + if (auto fl = qobject_cast(layout)) { + m_formLayout = fl; + } else if (auto grid = qobject_cast(layout)) { + m_gridLayout = grid; + m_currentGridRow = grid->rowCount(); + m_currentGridColumn = 0; + } +} + +LayoutBuilder::~LayoutBuilder() +{ + flushPendingFormItems(); +} + +LayoutBuilder &LayoutBuilder::startNewRow() +{ + if (m_formLayout) + flushPendingFormItems(); + if (m_gridLayout) { + if (m_currentGridColumn != 0) { + ++m_currentGridRow; + m_currentGridColumn = 0; + } + } + return *this; +} + +LayoutBuilder &LayoutBuilder::addRow(const LayoutItem &item) +{ + startNewRow(); + addItem(item); + return *this; +} + +void LayoutBuilder::flushPendingFormItems() +{ + QTC_ASSERT(m_formLayout, return); + + if (m_pendingFormItems.isEmpty()) + return; + + // If there are more than two items, we cram the last ones in one hbox. + if (m_pendingFormItems.size() > 2) { + auto hbox = new QHBoxLayout; + hbox->setContentsMargins(0, 0, 0, 0); + for (int i = 1; i < m_pendingFormItems.size(); ++i) { + if (QWidget *w = m_pendingFormItems.at(i).widget) + hbox->addWidget(w); + else if (QLayout *l = m_pendingFormItems.at(i).layout) + hbox->addItem(l); + else + QTC_CHECK(false); + } + while (m_pendingFormItems.size() >= 2) + m_pendingFormItems.takeLast(); + m_pendingFormItems.append(LayoutItem(hbox)); + } + + if (m_pendingFormItems.size() == 1) { // One one item given, so this spans both columns. + if (auto layout = m_pendingFormItems.at(0).layout) + m_formLayout->addRow(layout); + else if (auto widget = m_pendingFormItems.at(0).widget) + m_formLayout->addRow(widget); + } else if (m_pendingFormItems.size() == 2) { // Normal case, both columns used. + if (auto label = m_pendingFormItems.at(0).widget) { + if (auto layout = m_pendingFormItems.at(1).layout) + m_formLayout->addRow(label, layout); + else if (auto widget = m_pendingFormItems.at(1).widget) + m_formLayout->addRow(label, widget); + } else { + if (auto layout = m_pendingFormItems.at(1).layout) + m_formLayout->addRow(m_pendingFormItems.at(0).text, layout); + else if (auto widget = m_pendingFormItems.at(1).widget) + m_formLayout->addRow(m_pendingFormItems.at(0).text, widget); + } + } else { + QTC_CHECK(false); + } + + m_pendingFormItems.clear(); +} + +QLayout *LayoutBuilder::layout() const +{ + if (m_formLayout) + return m_formLayout; + return m_gridLayout; +} + +LayoutBuilder &LayoutBuilder::addItem(LayoutItem item) +{ + if (item.widget && !item.widget->parent()) + item.widget->setParent(layout()->parentWidget()); + + if (item.aspect) { + item.aspect->addToLayout(*this); + } else { + if (m_gridLayout) { + if (auto widget = item.widget) + m_gridLayout->addWidget(widget, m_currentGridRow, m_currentGridColumn, 1, item.span, item.align); + m_currentGridColumn += item.span; + } else { + m_pendingFormItems.append(item); + } + } + return *this; +} + +} // Utils diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h new file mode 100644 index 00000000000..35db5975be1 --- /dev/null +++ b/src/libs/utils/layoutbuilder.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** 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 "utils_global.h" + +#include +#include + +QT_BEGIN_NAMESPACE +class QFormLayout; +class QGridLayout; +class QLayout; +class QWidget; +QT_END_NAMESPACE + +namespace Utils { + +class BaseAspect; + +class QTCREATOR_UTILS_EXPORT LayoutBuilder +{ +public: + enum LayoutType { GridLayout, FormLayout }; + explicit LayoutBuilder(QWidget *parent, LayoutType layoutType = FormLayout); + explicit LayoutBuilder(QLayout *layout); // Adds to existing layout. + + ~LayoutBuilder(); + + class LayoutItem + { + public: + LayoutItem(QLayout *layout, int span = 1) : layout(layout), span(span) {} + LayoutItem(QWidget *widget, int span = 1, Qt::Alignment align = {}) + : widget(widget), span(span), align(align) {} + LayoutItem(BaseAspect *aspect) : aspect(aspect) {} + LayoutItem(const QString &text) : text(text) {} + + QLayout *layout = nullptr; + QWidget *widget = nullptr; + BaseAspect *aspect = nullptr; + QString text; + int span = 1; + Qt::Alignment align; + }; + + template + LayoutBuilder &addItems(LayoutItem first, Items... rest) { + return addItem(first).addItems(rest...); + } + LayoutBuilder &addItems() { return *this; } + LayoutBuilder &addItem(LayoutItem item); + + LayoutBuilder &startNewRow(); + LayoutBuilder &addRow(const LayoutItem &item); + + QLayout *layout() const; + +private: + void flushPendingFormItems(); + + QFormLayout *m_formLayout = nullptr; + QGridLayout *m_gridLayout = nullptr; + QList m_pendingFormItems; + int m_currentGridRow = 0; + int m_currentGridColumn = 0; +}; + +} // namespace Utils diff --git a/src/libs/utils/macroexpander.cpp b/src/libs/utils/macroexpander.cpp index 6a64398e5b4..d624d7cf2d0 100644 --- a/src/libs/utils/macroexpander.cpp +++ b/src/libs/utils/macroexpander.cpp @@ -195,7 +195,7 @@ using namespace Internal; If the string that you want to parametrize is settable by the user, through a QLineEdit or QTextEdit derived class, you should add a variable chooser to your UI, which allows adding - variables to the string by browsing through a list. See Core::VariableChooser for more + variables to the string by browsing through a list. See Utils::VariableChooser for more details. \section2 Expanding Strings diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index 1699855dcc4..4eeb496c8f3 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -138,7 +138,10 @@ SOURCES += \ $$PWD/overlaywidget.cpp \ $$PWD/archive.cpp \ $$PWD/id.cpp \ - $$PWD/infobar.cpp + $$PWD/infobar.cpp \ + $$PWD/aspects.cpp \ + $$PWD/layoutbuilder.cpp \ + $$PWD/variablechooser.cpp HEADERS += \ $$PWD/environmentfwd.h \ @@ -292,7 +295,10 @@ HEADERS += \ $$PWD/archive.h \ $$PWD/id.h \ $$PWD/infobar.h \ - $$PWD/porting.h + $$PWD/porting.h \ + $$PWD/aspects.h \ + $$PWD/layoutbuilder.h \ + $$PWD/variablechooser.h FORMS += $$PWD/filewizardpage.ui \ $$PWD/projectintropage.ui \ diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index de630888885..0436fe51a6a 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -46,6 +46,8 @@ Project { "appmainwindow.h", "archive.cpp", "archive.h", + "aspects.cpp", + "aspects.h", "basetreeview.cpp", "basetreeview.h", "benchmarker.cpp", @@ -155,6 +157,8 @@ Project { "json.h", "jsontreeitem.cpp", "jsontreeitem.h", + "layoutbuilder.cpp", + "layoutbuilder.h", "linecolumn.h", "link.h", "listmodel.h", @@ -292,6 +296,8 @@ Project { "utils_global.h", "utilsicons.h", "utilsicons.cpp", + "variablechooser.cpp", + "variablechooser.h", "variant.h", "../3rdparty/variant/variant.hpp", "winutils.cpp", diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/libs/utils/variablechooser.cpp similarity index 97% rename from src/plugins/coreplugin/variablechooser.cpp rename to src/libs/utils/variablechooser.cpp index d9c06e9d6f9..d558ffd5fa1 100644 --- a/src/plugins/coreplugin/variablechooser.cpp +++ b/src/libs/utils/variablechooser.cpp @@ -24,14 +24,13 @@ ****************************************************************************/ #include "variablechooser.h" -#include "coreconstants.h" -#include -#include // IconButton -#include -#include -#include -#include +#include "fancylineedit.h" +#include "headerviewstretcher.h" // IconButton +#include "macroexpander.h" +#include "treemodel.h" +#include "qtcassert.h" +#include "utilsicons.h" #include #include @@ -50,9 +49,7 @@ #include #include -using namespace Utils; - -namespace Core { +namespace Utils { namespace Internal { enum { @@ -339,7 +336,7 @@ void VariableGroupItem::populateGroup(MacroExpander *expander) using namespace Internal; /*! - \class Core::VariableChooser + \class Utils::VariableChooser \inheaderfile coreplugin/variablechooser.h \inmodule QtCreator @@ -366,10 +363,10 @@ using namespace Internal; Example: \code QWidget *myOptionsContainerWidget = new QWidget; - new Core::VariableChooser(myOptionsContainerWidget) + new Utils::VariableChooser(myOptionsContainerWidget) QLineEdit *myLineEditOption = new QLineEdit(myOptionsContainerWidget); myOptionsContainerWidget->layout()->addWidget(myLineEditOption); - Core::VariableChooser::addVariableSupport(myLineEditOption); + Utils::VariableChooser::addVariableSupport(myLineEditOption); \endcode */ diff --git a/src/plugins/coreplugin/variablechooser.h b/src/libs/utils/variablechooser.h similarity index 92% rename from src/plugins/coreplugin/variablechooser.h rename to src/libs/utils/variablechooser.h index 4144f3ea18c..69b95141f6c 100644 --- a/src/plugins/coreplugin/variablechooser.h +++ b/src/libs/utils/variablechooser.h @@ -25,18 +25,18 @@ #pragma once -#include "core_global.h" +#include "utils_global.h" +#include "macroexpander.h" #include -#include #include -namespace Core { +namespace Utils { namespace Internal { class VariableChooserPrivate; } -class CORE_EXPORT VariableChooser : public QWidget +class QTCREATOR_UTILS_EXPORT VariableChooser : public QWidget { Q_OBJECT @@ -57,4 +57,4 @@ private: Internal::VariableChooserPrivate *d; }; -} // namespace Core +} // namespace Utils diff --git a/src/plugins/android/androidrunconfiguration.cpp b/src/plugins/android/androidrunconfiguration.cpp index bc937221f72..ebf20530cb4 100644 --- a/src/plugins/android/androidrunconfiguration.cpp +++ b/src/plugins/android/androidrunconfiguration.cpp @@ -41,11 +41,11 @@ #include #include +#include #include #include #include -#include #include #include #include @@ -114,7 +114,7 @@ AndroidRunConfiguration::AndroidRunConfiguration(Target *target, Utils::Id id) auto extraAppArgsAspect = addAspect(); - connect(extraAppArgsAspect, &ProjectConfigurationAspect::changed, + connect(extraAppArgsAspect, &BaseAspect::changed, this, [target, extraAppArgsAspect]() { if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) { const QString buildKey = target->activeBuildKey(); diff --git a/src/plugins/android/androidrunconfiguration.h b/src/plugins/android/androidrunconfiguration.h index 1dd6daf02e5..1ac44f60b67 100644 --- a/src/plugins/android/androidrunconfiguration.h +++ b/src/plugins/android/androidrunconfiguration.h @@ -34,7 +34,7 @@ namespace Android { -class BaseStringListAspect : public ProjectExplorer::ProjectConfigurationAspect +class BaseStringListAspect : public Utils::BaseAspect { Q_OBJECT @@ -43,7 +43,7 @@ public: Utils::Id id = Utils::Id()); ~BaseStringListAspect() override; - void addToLayout(ProjectExplorer::LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; QStringList value() const; void setValue(const QStringList &val); diff --git a/src/plugins/autotoolsprojectmanager/autogenstep.cpp b/src/plugins/autotoolsprojectmanager/autogenstep.cpp index 269cd9b1aed..bd003864c25 100644 --- a/src/plugins/autotoolsprojectmanager/autogenstep.cpp +++ b/src/plugins/autotoolsprojectmanager/autogenstep.cpp @@ -32,10 +32,12 @@ #include #include #include -#include #include +#include #include +#include + #include using namespace ProjectExplorer; @@ -80,7 +82,7 @@ AutogenStep::AutogenStep(BuildStepList *bsl, Utils::Id id) : AbstractProcessStep m_additionalArgumentsAspect->setDisplayStyle(StringAspect::LineEditDisplay); m_additionalArgumentsAspect->setHistoryCompleter("AutotoolsPM.History.AutogenStepArgs"); - connect(m_additionalArgumentsAspect, &ProjectConfigurationAspect::changed, this, [this] { + connect(m_additionalArgumentsAspect, &BaseAspect::changed, this, [this] { m_runAutogen = true; }); diff --git a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp index 3e0612fa1aa..d68faaf9176 100644 --- a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp +++ b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp @@ -33,10 +33,13 @@ #include #include #include -#include +#include #include +#include + using namespace ProjectExplorer; +using namespace Utils; namespace AutotoolsProjectManager { namespace Internal { @@ -78,7 +81,7 @@ AutoreconfStep::AutoreconfStep(BuildStepList *bsl, Utils::Id id) m_additionalArgumentsAspect->setDisplayStyle(StringAspect::LineEditDisplay); m_additionalArgumentsAspect->setHistoryCompleter("AutotoolsPM.History.AutoreconfStepArgs"); - connect(m_additionalArgumentsAspect, &ProjectConfigurationAspect::changed, this, [this] { + connect(m_additionalArgumentsAspect, &BaseAspect::changed, this, [this] { m_runAutoreconf = true; }); diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp index 0f94cebc3a0..ecdd08df58e 100644 --- a/src/plugins/autotoolsprojectmanager/configurestep.cpp +++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp @@ -32,10 +32,12 @@ #include #include -#include #include +#include #include +#include + #include #include @@ -84,7 +86,7 @@ public: private: void doRun() override; - ProjectExplorer::StringAspect *m_additionalArgumentsAspect = nullptr; + StringAspect *m_additionalArgumentsAspect = nullptr; bool m_runConfigure = false; }; @@ -100,7 +102,7 @@ ConfigureStep::ConfigureStep(BuildStepList *bsl, Utils::Id id) m_additionalArgumentsAspect->setLabelText(tr("Arguments:")); m_additionalArgumentsAspect->setHistoryCompleter("AutotoolsPM.History.ConfigureArgs"); - connect(m_additionalArgumentsAspect, &ProjectConfigurationAspect::changed, this, [this] { + connect(m_additionalArgumentsAspect, &BaseAspect::changed, this, [this] { m_runConfigure = true; }); diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp b/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp index d3216e0bb64..7b5a58ff49d 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp @@ -29,7 +29,7 @@ #include "debugserverproviderchooser.h" -#include +#include #include #include diff --git a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp index d54b701460f..bd6e3422852 100644 --- a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp @@ -28,11 +28,10 @@ #include #include -#include - #include #include #include +#include #include #include @@ -297,7 +296,7 @@ EBlinkGdbServerProviderConfigWidget::EBlinkGdbServerProviderConfigWidget( addErrorLabel(); setFromProvider(); - const auto chooser = new Core::VariableChooser(this); + const auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_initCommandsTextEdit); chooser->addSupportedWidget(m_resetCommandsTextEdit); diff --git a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp index 047c1feba23..052ada87347 100644 --- a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp @@ -28,12 +28,11 @@ #include #include -#include - #include #include #include #include +#include #include #include @@ -271,12 +270,10 @@ JLinkGdbServerProviderConfigWidget::JLinkGdbServerProviderConfigWidget( m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip()); m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit); - - addErrorLabel(); setFromProvider(); - const auto chooser = new Core::VariableChooser(this); + const auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_initCommandsTextEdit); chooser->addSupportedWidget(m_resetCommandsTextEdit); diff --git a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp index 093f1cbc940..74361dc2d4d 100644 --- a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp @@ -28,12 +28,11 @@ #include #include -#include - #include #include #include #include +#include #include #include @@ -230,7 +229,7 @@ OpenOcdGdbServerProviderConfigWidget::OpenOcdGdbServerProviderConfigWidget( addErrorLabel(); setFromProvider(); - const auto chooser = new Core::VariableChooser(this); + const auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_initCommandsTextEdit); chooser->addSupportedWidget(m_resetCommandsTextEdit); diff --git a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp index c9379e72a1d..0c280f2f429 100644 --- a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp @@ -28,11 +28,10 @@ #include #include -#include - #include #include #include +#include #include #include @@ -222,7 +221,7 @@ StLinkUtilGdbServerProviderConfigWidget::StLinkUtilGdbServerProviderConfigWidget addErrorLabel(); setFromProvider(); - const auto chooser = new Core::VariableChooser(this); + const auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_initCommandsTextEdit); chooser->addSupportedWidget(m_resetCommandsTextEdit); diff --git a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp index c371704b8d1..8d0c222c7c9 100644 --- a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp +++ b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp @@ -33,6 +33,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace Qdb { namespace Internal { diff --git a/src/plugins/cmakeprojectmanager/builddirparameters.cpp b/src/plugins/cmakeprojectmanager/builddirparameters.cpp index 5424ef8b9ad..e240f7ec239 100644 --- a/src/plugins/cmakeprojectmanager/builddirparameters.cpp +++ b/src/plugins/cmakeprojectmanager/builddirparameters.cpp @@ -36,6 +36,7 @@ #include #include +#include #include using namespace ProjectExplorer; diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h index 74a76251f41..b5ff7145ab2 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h @@ -126,7 +126,7 @@ private: friend class CMakeProjectImporter; }; -class InitialCMakeArgumentsAspect final : public ProjectExplorer::StringAspect +class InitialCMakeArgumentsAspect final : public Utils::StringAspect { Q_OBJECT diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index ead1fa34819..26316b02ea6 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -54,6 +55,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace CMakeProjectManager { namespace Internal { @@ -100,7 +102,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) int row = 0; auto buildDirAspect = bc->buildDirectoryAspect(); - connect(buildDirAspect, &ProjectConfigurationAspect::changed, this, [this]() { + connect(buildDirAspect, &BaseAspect::changed, this, [this]() { m_configModel->flush(); // clear out config cache...; }); auto initialCMakeAspect = bc->aspect(); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 294d88163f0..b8056a65228 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -42,6 +42,7 @@ #include #include +#include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.h b/src/plugins/cmakeprojectmanager/cmakebuildstep.h index f2a5e7871a0..f203914c088 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.h @@ -28,9 +28,10 @@ #include #include -namespace Utils { class CommandLine; } - -namespace ProjectExplorer { class StringAspect; } +namespace Utils { +class CommandLine; +class StringAspect; +} // Utils namespace CMakeProjectManager { namespace Internal { @@ -103,8 +104,8 @@ private: friend class CMakeBuildStepConfigWidget; QStringList m_buildTargets; // Convention: Empty string member signifies "Current executable" - ProjectExplorer::StringAspect *m_cmakeArguments = nullptr; - ProjectExplorer::StringAspect *m_toolArguments = nullptr; + Utils::StringAspect *m_cmakeArguments = nullptr; + Utils::StringAspect *m_toolArguments = nullptr; bool m_waiting = false; Utils::TreeModel m_buildTargetModel; diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index eeae05f9217..bfafbd42ac0 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -32,7 +32,6 @@ #include "cmaketoolmanager.h" #include -#include #include #include #include @@ -49,6 +48,7 @@ #include #include #include +#include #include #include @@ -877,7 +877,7 @@ private: "You may provide a type hint by adding \":TYPE\" before the \"=\".")); m_editor->setMinimumSize(800, 200); - auto chooser = new Core::VariableChooser(m_dialog); + auto chooser = new Utils::VariableChooser(m_dialog); chooser->addSupportedWidget(m_editor); chooser->addMacroExpanderProvider([this]() { return kit()->macroExpander(); }); diff --git a/src/plugins/coreplugin/CMakeLists.txt b/src/plugins/coreplugin/CMakeLists.txt index 237a9d54dfd..6705478bfbc 100644 --- a/src/plugins/coreplugin/CMakeLists.txt +++ b/src/plugins/coreplugin/CMakeLists.txt @@ -146,7 +146,6 @@ add_qtc_plugin(Core systemsettings.cpp systemsettings.h systemsettings.ui textdocument.cpp textdocument.h themechooser.cpp themechooser.h - variablechooser.cpp variablechooser.h vcsmanager.cpp vcsmanager.h versiondialog.cpp versiondialog.h welcomepagehelper.cpp welcomepagehelper.h diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index fd472ed566e..5aeec3f716f 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -86,7 +86,6 @@ SOURCES += corejsextensions.cpp \ externaltool.cpp \ dialogs/externaltoolconfig.cpp \ dialogs/filepropertiesdialog.cpp \ - variablechooser.cpp \ mimetypemagicdialog.cpp \ mimetypesettings.cpp \ dialogs/promptoverwritedialog.cpp \ @@ -201,7 +200,6 @@ HEADERS += corejsextensions.h \ externaltool.h \ dialogs/externaltoolconfig.h \ dialogs/filepropertiesdialog.h \ - variablechooser.h \ mimetypemagicdialog.h \ mimetypesettings.h \ dialogs/promptoverwritedialog.h \ diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index d77e6015139..aaa05fd5b94 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -175,8 +175,6 @@ Project { "textdocument.h", "themechooser.cpp", "themechooser.h", - "variablechooser.cpp", - "variablechooser.h", "vcsmanager.cpp", "vcsmanager.h", "versiondialog.cpp", diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index ec9eccbbbe6..6dd1f788081 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -36,12 +36,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include diff --git a/src/plugins/cppcheck/cppcheckoptions.cpp b/src/plugins/cppcheck/cppcheckoptions.cpp index bb963c06e74..735557daf23 100644 --- a/src/plugins/cppcheck/cppcheckoptions.cpp +++ b/src/plugins/cppcheck/cppcheckoptions.cpp @@ -32,9 +32,9 @@ #include #include #include +#include #include -#include #include @@ -66,7 +66,7 @@ OptionsWidget::OptionsWidget(QWidget *parent) m_binary->setExpectedKind(Utils::PathChooser::ExistingCommand); m_binary->setCommandVersionArguments({"--version"}); - auto variableChooser = new Core::VariableChooser(this); + auto variableChooser = new Utils::VariableChooser(this); variableChooser->addSupportedWidget (m_customArguments); m_unusedFunction->setToolTip(tr("Disables multithreaded check.")); diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp index 8bd42ed612f..600cf432fbe 100644 --- a/src/plugins/debugger/commonoptionspage.cpp +++ b/src/plugins/debugger/commonoptionspage.cpp @@ -31,7 +31,6 @@ #include "debuggersourcepathmappingwidget.h" #include -#include #include @@ -39,6 +38,7 @@ #include #include #include +#include #include #include diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index 4f8820a27d6..2111dd5d6ab 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -40,14 +40,17 @@ #include #include +#include + #include #include #include #include #include -using namespace ProjectExplorer; using namespace Debugger::Internal; +using namespace ProjectExplorer; +using namespace Utils; namespace Debugger { namespace Internal { @@ -58,7 +61,7 @@ enum DebuggerLanguageStatus { AutoEnabledLanguage }; -class DebuggerLanguageAspect : public ProjectConfigurationAspect +class DebuggerLanguageAspect : public BaseAspect { public: DebuggerLanguageAspect() = default; diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.h b/src/plugins/debugger/debuggerrunconfigurationaspect.h index 63d5dc3b3f7..bd2a0a0e00e 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.h +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.h @@ -59,8 +59,8 @@ public: private: Internal::DebuggerLanguageAspect *m_cppAspect; Internal::DebuggerLanguageAspect *m_qmlAspect; - ProjectExplorer::BoolAspect *m_multiProcessAspect; - ProjectExplorer::StringAspect *m_overrideStartupAspect; + Utils::BoolAspect *m_multiProcessAspect; + Utils::StringAspect *m_overrideStartupAspect; ProjectExplorer::Target *m_target; }; diff --git a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp index 8652ff10f80..826b440467e 100644 --- a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp +++ b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp @@ -26,14 +26,13 @@ #include "debuggersourcepathmappingwidget.h" #include "debuggerengine.h" -#include - #include #include +#include #include #include #include -#include +#include #include #include @@ -276,7 +275,7 @@ DebuggerSourcePathMappingWidget::DebuggerSourcePathMappingWidget(QWidget *parent editLayout->addRow(editTargetLabel, m_targetChooser); editLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); - auto chooser = new Core::VariableChooser(this); + auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_targetChooser->lineEdit()); // Main layout diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp index ff4b503e2fb..a3c68a563a2 100644 --- a/src/plugins/debugger/gdb/gdboptionspage.cpp +++ b/src/plugins/debugger/gdb/gdboptionspage.cpp @@ -31,11 +31,11 @@ #include #include -#include #include #include #include +#include #include #include diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index 6d1918f1aa0..540d8754c5d 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -32,13 +32,13 @@ #include #include #include -#include #include #include #include #include +#include #include #include diff --git a/src/plugins/incredibuild/buildconsolebuildstep.cpp b/src/plugins/incredibuild/buildconsolebuildstep.cpp index c8f7b3409ec..65cc943de4c 100644 --- a/src/plugins/incredibuild/buildconsolebuildstep.cpp +++ b/src/plugins/incredibuild/buildconsolebuildstep.cpp @@ -33,9 +33,10 @@ #include #include #include -#include +#include #include +#include #include using namespace ProjectExplorer; diff --git a/src/plugins/incredibuild/commandbuilderaspect.cpp b/src/plugins/incredibuild/commandbuilderaspect.cpp index be5272ed75f..724e38d2ce7 100644 --- a/src/plugins/incredibuild/commandbuilderaspect.cpp +++ b/src/plugins/incredibuild/commandbuilderaspect.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include diff --git a/src/plugins/incredibuild/commandbuilderaspect.h b/src/plugins/incredibuild/commandbuilderaspect.h index f2fccd340ca..b2f507bc0bb 100644 --- a/src/plugins/incredibuild/commandbuilderaspect.h +++ b/src/plugins/incredibuild/commandbuilderaspect.h @@ -26,7 +26,8 @@ #pragma once #include -#include + +#include #include #include @@ -34,7 +35,7 @@ namespace IncrediBuild { namespace Internal { -class CommandBuilderAspect final : public ProjectExplorer::ProjectConfigurationAspect +class CommandBuilderAspect final : public Utils::BaseAspect { public: explicit CommandBuilderAspect(ProjectExplorer::BuildStep *step); @@ -43,7 +44,7 @@ public: QString fullCommandFlag(bool keepJobNum) const; private: - void addToLayout(ProjectExplorer::LayoutBuilder &builder) final; + void addToLayout(Utils::LayoutBuilder &builder) final; void fromMap(const QVariantMap &map) final; void toMap(QVariantMap &map) const final; diff --git a/src/plugins/incredibuild/ibconsolebuildstep.cpp b/src/plugins/incredibuild/ibconsolebuildstep.cpp index 4d118af097f..a0e4b8bb972 100644 --- a/src/plugins/incredibuild/ibconsolebuildstep.cpp +++ b/src/plugins/incredibuild/ibconsolebuildstep.cpp @@ -33,9 +33,11 @@ #include #include #include -#include +#include #include +#include + using namespace ProjectExplorer; using namespace Utils; diff --git a/src/plugins/ios/iosbuildconfiguration.cpp b/src/plugins/ios/iosbuildconfiguration.cpp index d6ae73dc7c0..b82c9ca9844 100644 --- a/src/plugins/ios/iosbuildconfiguration.cpp +++ b/src/plugins/ios/iosbuildconfiguration.cpp @@ -47,6 +47,7 @@ using namespace QmakeProjectManager; using namespace ProjectExplorer; +using namespace Utils; namespace Ios { namespace Internal { diff --git a/src/plugins/ios/iosbuildconfiguration.h b/src/plugins/ios/iosbuildconfiguration.h index 51565c0ecdf..2f82187f01e 100644 --- a/src/plugins/ios/iosbuildconfiguration.h +++ b/src/plugins/ios/iosbuildconfiguration.h @@ -26,7 +26,7 @@ #include "qmakeprojectmanager/qmakebuildconfiguration.h" -#include +#include namespace Ios { namespace Internal { @@ -46,8 +46,8 @@ private: void updateQmakeCommand(); - ProjectExplorer::StringAspect *m_signingIdentifier = nullptr; - ProjectExplorer::BoolAspect *m_autoManagedSigning = nullptr; + Utils::StringAspect *m_signingIdentifier = nullptr; + Utils::BoolAspect *m_autoManagedSigning = nullptr; }; class IosBuildConfigurationFactory : public QmakeProjectManager::QmakeBuildConfigurationFactory diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp index dce03d37a52..36543ca2e9c 100644 --- a/src/plugins/ios/iosrunconfiguration.cpp +++ b/src/plugins/ios/iosrunconfiguration.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -77,14 +78,14 @@ static IosDeviceType toIosDeviceType(const SimulatorInfo &device) return iosDeviceType; } -class IosDeviceTypeAspect : public ProjectConfigurationAspect +class IosDeviceTypeAspect : public BaseAspect { public: IosDeviceTypeAspect(IosRunConfiguration *runConfiguration); void fromMap(const QVariantMap &map) override; void toMap(QVariantMap &map) const override; - void addToLayout(ProjectExplorer::LayoutBuilder &builder) override; + void addToLayout(LayoutBuilder &builder) override; IosDeviceType deviceType() const; void setDeviceType(const IosDeviceType &deviceType); diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 2c5293d1285..7ccfaa842b6 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -45,6 +44,7 @@ #include #include #include +#include #include #include @@ -728,7 +728,7 @@ BaseSettingsWidget::BaseSettingsWidget(const BaseSettings *settings, QWidget *pa mainLayout->addWidget(new QLabel(tr("Name:")), row, 0); mainLayout->addWidget(m_name, row, 1); - auto chooser = new Core::VariableChooser(this); + auto chooser = new Utils::VariableChooser(this); chooser->addSupportedWidget(m_name); mainLayout->addWidget(new QLabel(tr("Language:")), ++row, 0); @@ -935,7 +935,7 @@ StdIOSettingsWidget::StdIOSettingsWidget(const StdIOSettings *settings, QWidget m_executable->setPath(QDir::toNativeSeparators(settings->m_executable)); mainLayout->addWidget(m_arguments, baseRows + 1, 1); - auto chooser = new Core::VariableChooser(this); + auto chooser = new Utils::VariableChooser(this); chooser->addSupportedWidget(m_arguments); } diff --git a/src/plugins/mcusupport/mcusupportrunconfiguration.cpp b/src/plugins/mcusupport/mcusupportrunconfiguration.cpp index ee325a2d78c..f1e9de0daf5 100644 --- a/src/plugins/mcusupport/mcusupportrunconfiguration.cpp +++ b/src/plugins/mcusupport/mcusupportrunconfiguration.cpp @@ -26,16 +26,18 @@ #include "mcusupportrunconfiguration.h" #include "mcusupportconstants.h" -#include #include #include #include #include #include #include + #include #include +#include + using namespace ProjectExplorer; using namespace Utils; diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp index b8b35373b60..85cb089f232 100644 --- a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp +++ b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp @@ -27,14 +27,18 @@ #include #include #include +#include #include "../mesonbuildconfiguration.h" #include "../mesonbuildsystem.h" #include "mesonbuildsettingswidget.h" #include "ui_mesonbuildsettingswidget.h" +using namespace Utils; + namespace MesonProjectManager { namespace Internal { + MesonBuildSettingsWidget::MesonBuildSettingsWidget(MesonBuildConfiguration *buildCfg) : ProjectExplorer::NamedWidget{tr("Meson")} , ui{new Ui::MesonBuildSettingsWidget} @@ -43,7 +47,7 @@ MesonBuildSettingsWidget::MesonBuildSettingsWidget(MesonBuildConfiguration *buil ui->setupUi(this); ui->container->setState(Utils::DetailsWidget::NoSummary); ui->container->setWidget(ui->details); - ProjectExplorer::LayoutBuilder buildDirWBuilder{ui->buildDirWidget}; + LayoutBuilder buildDirWBuilder{ui->buildDirWidget}; auto buildDirAspect = buildCfg->buildDirectoryAspect(); buildDirAspect->addToLayout(buildDirWBuilder); diff --git a/src/plugins/nim/project/nimbletaskstep.cpp b/src/plugins/nim/project/nimbletaskstep.cpp index dc9dacf160d..ca119e891d3 100644 --- a/src/plugins/nim/project/nimbletaskstep.cpp +++ b/src/plugins/nim/project/nimbletaskstep.cpp @@ -34,11 +34,12 @@ #include #include #include -#include #include +#include #include #include +#include #include #include diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp index 3e1f05a7b84..ae421b738da 100644 --- a/src/plugins/nim/project/nimbuildconfiguration.cpp +++ b/src/plugins/nim/project/nimbuildconfiguration.cpp @@ -38,7 +38,8 @@ #include #include #include -#include + +#include #include #include diff --git a/src/plugins/nim/project/nimcompilercleanstep.cpp b/src/plugins/nim/project/nimcompilercleanstep.cpp index 4d37fddc2b8..f9d6102b8f1 100644 --- a/src/plugins/nim/project/nimcompilercleanstep.cpp +++ b/src/plugins/nim/project/nimcompilercleanstep.cpp @@ -28,8 +28,9 @@ #include "../nimconstants.h" -#include #include + +#include #include #include diff --git a/src/plugins/projectexplorer/CMakeLists.txt b/src/plugins/projectexplorer/CMakeLists.txt index c44faf7f0d9..13ede53da94 100644 --- a/src/plugins/projectexplorer/CMakeLists.txt +++ b/src/plugins/projectexplorer/CMakeLists.txt @@ -127,7 +127,6 @@ add_qtc_plugin(ProjectExplorer processstep.cpp processstep.h project.cpp project.h projectconfiguration.cpp projectconfiguration.h - projectconfigurationaspects.cpp projectconfigurationaspects.h projectconfigurationmodel.cpp projectconfigurationmodel.h projectexplorer.cpp projectexplorer.h projectexplorer.qrc diff --git a/src/plugins/projectexplorer/buildaspects.cpp b/src/plugins/projectexplorer/buildaspects.cpp index 04f71e132e1..00dea18e870 100644 --- a/src/plugins/projectexplorer/buildaspects.cpp +++ b/src/plugins/projectexplorer/buildaspects.cpp @@ -30,6 +30,7 @@ #include #include +#include #include diff --git a/src/plugins/projectexplorer/buildaspects.h b/src/plugins/projectexplorer/buildaspects.h index f34e3d732a3..a40e27009b7 100644 --- a/src/plugins/projectexplorer/buildaspects.h +++ b/src/plugins/projectexplorer/buildaspects.h @@ -26,13 +26,14 @@ #pragma once #include "projectexplorer_export.h" -#include "projectconfigurationaspects.h" + +#include namespace Utils { class FilePath; } namespace ProjectExplorer { -class PROJECTEXPLORER_EXPORT BuildDirectoryAspect : public StringAspect +class PROJECTEXPLORER_EXPORT BuildDirectoryAspect : public Utils::StringAspect { Q_OBJECT public: @@ -43,7 +44,7 @@ public: bool isShadowBuild() const; void setProblem(const QString &description); - void addToLayout(LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; private: void toMap(QVariantMap &map) const override; @@ -55,7 +56,7 @@ private: Private * const d; }; -class PROJECTEXPLORER_EXPORT SeparateDebugInfoAspect : public TriStateAspect +class PROJECTEXPLORER_EXPORT SeparateDebugInfoAspect : public Utils::TriStateAspect { Q_OBJECT public: diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index b685e26773e..260f05f1c81 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -46,14 +46,15 @@ #include "toolchain.h" #include -#include #include #include #include #include #include +#include #include +#include #include #include @@ -306,7 +307,7 @@ NamedWidget *BuildConfiguration::createConfigWidget() } LayoutBuilder builder(widget); - for (ProjectConfigurationAspect *aspect : aspects()) { + for (BaseAspect *aspect : aspects()) { if (aspect->isVisible()) aspect->addToLayout(builder.startNewRow()); } diff --git a/src/plugins/projectexplorer/buildpropertiessettings.h b/src/plugins/projectexplorer/buildpropertiessettings.h index 13eeebb6bcb..17432b45e0d 100644 --- a/src/plugins/projectexplorer/buildpropertiessettings.h +++ b/src/plugins/projectexplorer/buildpropertiessettings.h @@ -25,7 +25,9 @@ #pragma once -#include "projectconfigurationaspects.h" +#include "projectexplorer_export.h" + +#include namespace ProjectExplorer { @@ -33,9 +35,9 @@ class PROJECTEXPLORER_EXPORT BuildPropertiesSettings { public: QString buildDirectoryTemplate; - TriState separateDebugInfo; - TriState qmlDebugging; - TriState qtQuickCompiler; + Utils::TriState separateDebugInfo; + Utils::TriState qmlDebugging; + Utils::TriState qtQuickCompiler; bool showQtSettings = false; }; diff --git a/src/plugins/projectexplorer/buildpropertiessettingspage.cpp b/src/plugins/projectexplorer/buildpropertiessettingspage.cpp index 7cd3766e50e..a3294fd83ff 100644 --- a/src/plugins/projectexplorer/buildpropertiessettingspage.cpp +++ b/src/plugins/projectexplorer/buildpropertiessettingspage.cpp @@ -28,7 +28,7 @@ #include "buildpropertiessettings.h" #include "projectexplorer.h" -#include +#include #include #include @@ -36,6 +36,8 @@ #include #include +using namespace Utils; + namespace ProjectExplorer { namespace Internal { @@ -71,7 +73,7 @@ public: resetButton->setEnabled(m_buildDirTemplateLineEdit.text() != ProjectExplorerPlugin::defaultBuildDirectoryTemplate()); }); - const auto chooser = new Core::VariableChooser(this); + const auto chooser = new VariableChooser(this); chooser->addSupportedWidget(&m_buildDirTemplateLineEdit); m_buildDirTemplateLineEdit.setText(settings.buildDirectoryTemplate); buildDirLayout->addWidget(&m_buildDirTemplateLineEdit); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 94299bc5dfd..905667411ee 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -35,13 +35,13 @@ #include "projectexplorerconstants.h" #include "target.h" -#include - #include #include +#include #include #include #include +#include #include #include @@ -159,7 +159,7 @@ BuildStepConfigWidget *BuildStep::createConfigWidget() { LayoutBuilder builder(widget); - for (ProjectConfigurationAspect *aspect : m_aspects) { + for (BaseAspect *aspect : qAsConst(m_aspects)) { if (aspect->isVisible()) aspect->addToLayout(builder.startNewRow()); } @@ -171,7 +171,7 @@ BuildStepConfigWidget *BuildStep::createConfigWidget() widget->setSummaryUpdater(m_summaryUpdater); if (m_addMacroExpander) - Core::VariableChooser::addSupportForChildWidgets(widget, macroExpander()); + VariableChooser::addSupportForChildWidgets(widget, macroExpander()); return widget; } @@ -493,7 +493,7 @@ BuildStepConfigWidget::BuildStepConfigWidget(BuildStep *step) connect(m_step, &ProjectConfiguration::displayNameChanged, this, &BuildStepConfigWidget::updateSummary); for (auto aspect : step->aspects()) { - connect(aspect, &ProjectConfigurationAspect::changed, + connect(aspect, &BaseAspect::changed, this, &BuildStepConfigWidget::recreateSummary); } } diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp index 5b502feb8c8..d2f1d932c46 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp @@ -35,11 +35,11 @@ #include "target.h" #include -#include #include #include #include +#include #include #include diff --git a/src/plugins/projectexplorer/customparser.h b/src/plugins/projectexplorer/customparser.h index c1e01780225..b0df82c3f92 100644 --- a/src/plugins/projectexplorer/customparser.h +++ b/src/plugins/projectexplorer/customparser.h @@ -93,7 +93,7 @@ public: CustomParserExpression warning; }; -class PROJECTEXPLORER_EXPORT CustomParsersAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT CustomParsersAspect : public Utils::BaseAspect { Q_OBJECT public: diff --git a/src/plugins/projectexplorer/environmentaspect.h b/src/plugins/projectexplorer/environmentaspect.h index f79f9e29738..79c1d622e85 100644 --- a/src/plugins/projectexplorer/environmentaspect.h +++ b/src/plugins/projectexplorer/environmentaspect.h @@ -29,6 +29,7 @@ #include "runconfiguration.h" +#include #include #include @@ -36,7 +37,7 @@ namespace ProjectExplorer { -class PROJECTEXPLORER_EXPORT EnvironmentAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT EnvironmentAspect : public Utils::BaseAspect { Q_OBJECT diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 729e1594f55..df9fcfbebc9 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -36,7 +36,6 @@ #include "toolchainmanager.h" #include -#include #include #include #include @@ -45,6 +44,7 @@ #include #include #include +#include #include #include @@ -1162,7 +1162,7 @@ private: { Utils::MacroExpander *expander = m_kit->macroExpander(); Utils::EnvironmentDialog::Polisher polisher = [expander](QWidget *w) { - Core::VariableChooser::addSupportForChildWidgets(w, expander); + Utils::VariableChooser::addSupportForChildWidgets(w, expander); }; auto changes = Utils::EnvironmentDialog::getEnvironmentItems(m_summaryLabel, currentEnvironment(), diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index e3d061cfa4d..dda505e7692 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -33,14 +33,14 @@ #include "projectexplorerconstants.h" #include "task.h" -#include - #include #include +#include #include #include #include #include +#include #include #include @@ -59,6 +59,8 @@ static const char WORKING_COPY_KIT_ID[] = "modified kit"; +using namespace Utils; + namespace ProjectExplorer { namespace Internal { @@ -116,7 +118,7 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) : connect(km, &KitManager::kitUpdated, this, &KitManagerConfigWidget::kitWasUpdated); - auto chooser = new Core::VariableChooser(this); + auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_nameEdit); chooser->addMacroExpanderProvider([this]() { return m_modifiedKit->macroExpander(); }); diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index d446eae20ee..885af473177 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -34,15 +34,16 @@ #include "projectexplorerconstants.h" #include "target.h" #include "toolchain.h" -#include "projectconfigurationaspects.h" -#include +#include #include #include +#include #include #include #include #include +#include #include #include @@ -381,8 +382,7 @@ BuildStepConfigWidget *MakeStep::createConfigWidget() targetsList->hide(); } - Core::VariableChooser::addSupportForChildWidgets(widget, macroExpander()); - + VariableChooser::addSupportForChildWidgets(widget, macroExpander()); widget->setSummaryUpdater([this] { const CommandLine make = effectiveMakeCommand(MakeStep::Display); diff --git a/src/plugins/projectexplorer/makestep.h b/src/plugins/projectexplorer/makestep.h index e66b82ee36c..9db7b571175 100644 --- a/src/plugins/projectexplorer/makestep.h +++ b/src/plugins/projectexplorer/makestep.h @@ -27,6 +27,7 @@ #include "abstractprocessstep.h" +#include #include namespace Utils { class Environment; } @@ -35,13 +36,6 @@ namespace ProjectExplorer { namespace Internal { class MakeStepConfigWidget; } -class AspectContainer; -class BoolAspect; -class IntegerAspect; -class StringAspect; -class StringListAspect; -class TextDisplay; - class PROJECTEXPLORER_EXPORT MakeStep : public ProjectExplorer::AbstractProcessStep { Q_OBJECT @@ -97,15 +91,15 @@ private: static int defaultJobCount(); QStringList jobArguments() const; - StringListAspect *m_buildTargetsAspect = nullptr; + Utils::StringListAspect *m_buildTargetsAspect = nullptr; QStringList m_availableTargets; - StringAspect *m_makeCommandAspect = nullptr; - StringAspect *m_userArgumentsAspect = nullptr; - AspectContainer *m_jobCountContainer = nullptr; - IntegerAspect *m_userJobCountAspect = nullptr; - BoolAspect *m_overrideMakeflagsAspect = nullptr; - TextDisplay *m_nonOverrideWarning = nullptr; - BoolAspect *m_cleanAspect = nullptr; + Utils::StringAspect *m_makeCommandAspect = nullptr; + Utils::StringAspect *m_userArgumentsAspect = nullptr; + Utils::AspectContainer *m_jobCountContainer = nullptr; + Utils::IntegerAspect *m_userJobCountAspect = nullptr; + Utils::BoolAspect *m_overrideMakeflagsAspect = nullptr; + Utils::TextDisplay *m_nonOverrideWarning = nullptr; + Utils::BoolAspect *m_cleanAspect = nullptr; bool m_disablingForSubDirsSupported = false; bool m_enabledForSubDirs = true; }; diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp index 919987e7274..ee7b72bad95 100644 --- a/src/plugins/projectexplorer/processstep.cpp +++ b/src/plugins/projectexplorer/processstep.cpp @@ -29,11 +29,11 @@ #include "buildconfiguration.h" #include "kit.h" #include "processparameters.h" -#include "projectconfigurationaspects.h" #include "projectexplorerconstants.h" #include "projectexplorer_export.h" #include "target.h" +#include #include #include diff --git a/src/plugins/projectexplorer/projectconfiguration.cpp b/src/plugins/projectexplorer/projectconfiguration.cpp index d3c98a06136..e74a1c8ccab 100644 --- a/src/plugins/projectexplorer/projectconfiguration.cpp +++ b/src/plugins/projectexplorer/projectconfiguration.cpp @@ -37,179 +37,6 @@ using namespace ProjectExplorer; const char CONFIGURATION_ID_KEY[] = "ProjectExplorer.ProjectConfiguration.Id"; const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ProjectConfiguration.DisplayName"; -// ProjectConfigurationAspect - -ProjectConfigurationAspect::ProjectConfigurationAspect() = default; - -ProjectConfigurationAspect::~ProjectConfigurationAspect() = default; - -void ProjectConfigurationAspect::setConfigWidgetCreator - (const ConfigWidgetCreator &configWidgetCreator) -{ - m_configWidgetCreator = configWidgetCreator; -} - -QWidget *ProjectConfigurationAspect::createConfigWidget() const -{ - return m_configWidgetCreator ? m_configWidgetCreator() : nullptr; -} - -void ProjectConfigurationAspect::addToLayout(LayoutBuilder &) -{ -} - -// LayoutBuilder - -LayoutBuilder::LayoutBuilder(QWidget *parent, LayoutType layoutType) -{ - if (layoutType == FormLayout) { - m_formLayout = new QFormLayout(parent); - m_formLayout->setContentsMargins(0, 0, 0, 0); - m_formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); - } else { - m_gridLayout = new QGridLayout(parent); - m_gridLayout->setContentsMargins(0, 0, 0, 0); - } -} - -LayoutBuilder::LayoutBuilder(QLayout *layout) -{ - if (auto fl = qobject_cast(layout)) { - m_formLayout = fl; - } else if (auto grid = qobject_cast(layout)) { - m_gridLayout = grid; - m_currentGridRow = grid->rowCount(); - m_currentGridColumn = 0; - } -} - -LayoutBuilder::~LayoutBuilder() -{ - flushPendingFormItems(); -} - -LayoutBuilder &LayoutBuilder::startNewRow() -{ - if (m_formLayout) - flushPendingFormItems(); - if (m_gridLayout) { - if (m_currentGridColumn != 0) { - ++m_currentGridRow; - m_currentGridColumn = 0; - } - } - return *this; -} - -LayoutBuilder &LayoutBuilder::addRow(const LayoutItem &item) -{ - startNewRow(); - addItem(item); - return *this; -} - -void LayoutBuilder::flushPendingFormItems() -{ - QTC_ASSERT(m_formLayout, return); - - if (m_pendingFormItems.isEmpty()) - return; - - // If there are more than two items, we cram the last ones in one hbox. - if (m_pendingFormItems.size() > 2) { - auto hbox = new QHBoxLayout; - hbox->setContentsMargins(0, 0, 0, 0); - for (int i = 1; i < m_pendingFormItems.size(); ++i) { - if (QWidget *w = m_pendingFormItems.at(i).widget) - hbox->addWidget(w); - else if (QLayout *l = m_pendingFormItems.at(i).layout) - hbox->addItem(l); - else - QTC_CHECK(false); - } - while (m_pendingFormItems.size() >= 2) - m_pendingFormItems.takeLast(); - m_pendingFormItems.append(LayoutItem(hbox)); - } - - if (m_pendingFormItems.size() == 1) { // One one item given, so this spans both columns. - if (auto layout = m_pendingFormItems.at(0).layout) - m_formLayout->addRow(layout); - else if (auto widget = m_pendingFormItems.at(0).widget) - m_formLayout->addRow(widget); - } else if (m_pendingFormItems.size() == 2) { // Normal case, both columns used. - if (auto label = m_pendingFormItems.at(0).widget) { - if (auto layout = m_pendingFormItems.at(1).layout) - m_formLayout->addRow(label, layout); - else if (auto widget = m_pendingFormItems.at(1).widget) - m_formLayout->addRow(label, widget); - } else { - if (auto layout = m_pendingFormItems.at(1).layout) - m_formLayout->addRow(m_pendingFormItems.at(0).text, layout); - else if (auto widget = m_pendingFormItems.at(1).widget) - m_formLayout->addRow(m_pendingFormItems.at(0).text, widget); - } - } else { - QTC_CHECK(false); - } - - m_pendingFormItems.clear(); -} - -QLayout *LayoutBuilder::layout() const -{ - if (m_formLayout) - return m_formLayout; - return m_gridLayout; -} - -LayoutBuilder &LayoutBuilder::addItem(LayoutItem item) -{ - if (item.widget && !item.widget->parent()) - item.widget->setParent(layout()->parentWidget()); - - if (item.aspect) { - item.aspect->addToLayout(*this); - } else { - if (m_gridLayout) { - if (auto widget = item.widget) - m_gridLayout->addWidget(widget, m_currentGridRow, m_currentGridColumn, 1, item.span, item.align); - m_currentGridColumn += item.span; - } else { - m_pendingFormItems.append(item); - } - } - return *this; -} - - -// ProjectConfigurationAspects - -ProjectConfigurationAspects::ProjectConfigurationAspects() = default; - -ProjectConfigurationAspects::~ProjectConfigurationAspects() -{ - qDeleteAll(base()); -} - -ProjectConfigurationAspect *ProjectConfigurationAspects::aspect(Utils::Id id) const -{ - return Utils::findOrDefault(base(), Utils::equal(&ProjectConfigurationAspect::id, id)); -} - -void ProjectConfigurationAspects::fromMap(const QVariantMap &map) const -{ - for (ProjectConfigurationAspect *aspect : *this) - aspect->fromMap(map); -} - -void ProjectConfigurationAspects::toMap(QVariantMap &map) const -{ - for (ProjectConfigurationAspect *aspect : *this) - aspect->toMap(map); -} - - // ProjectConfiguration ProjectConfiguration::ProjectConfiguration(QObject *parent, Utils::Id id) @@ -302,14 +129,14 @@ bool ProjectConfiguration::fromMap(const QVariantMap &map) return true; } -ProjectConfigurationAspect *ProjectConfiguration::aspect(Utils::Id id) const +Utils::BaseAspect *ProjectConfiguration::aspect(Utils::Id id) const { return m_aspects.aspect(id); } void ProjectConfiguration::acquaintAspects() { - for (ProjectConfigurationAspect *aspect : m_aspects) + for (Utils::BaseAspect *aspect : m_aspects) aspect->acquaintSiblings(m_aspects); } diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h index 1008930d076..b2161e7f1c3 100644 --- a/src/plugins/projectexplorer/projectconfiguration.h +++ b/src/plugins/projectexplorer/projectconfiguration.h @@ -27,6 +27,7 @@ #include "projectexplorer_export.h" +#include #include #include @@ -36,150 +37,12 @@ #include #include -QT_BEGIN_NAMESPACE -class QFormLayout; -class QGridLayout; -QT_END_NAMESPACE - namespace ProjectExplorer { class Kit; class Project; -class ProjectConfigurationAspect; -class ProjectConfigurationAspects; class Target; -class PROJECTEXPLORER_EXPORT LayoutBuilder -{ -public: - enum LayoutType { GridLayout, FormLayout }; - explicit LayoutBuilder(QWidget *parent, LayoutType layoutType = FormLayout); - explicit LayoutBuilder(QLayout *layout); // Adds to existing layout. - - ~LayoutBuilder(); - - class LayoutItem - { - public: - LayoutItem(QLayout *layout, int span = 1) : layout(layout), span(span) {} - LayoutItem(QWidget *widget, int span = 1, Qt::Alignment align = {}) - : widget(widget), span(span), align(align) {} - LayoutItem(ProjectConfigurationAspect *aspect) : aspect(aspect) {} - LayoutItem(const QString &text) : text(text) {} - - QLayout *layout = nullptr; - QWidget *widget = nullptr; - ProjectConfigurationAspect *aspect = nullptr; - QString text; - int span = 1; - Qt::Alignment align; - }; - - template - LayoutBuilder &addItems(LayoutItem first, Items... rest) { - return addItem(first).addItems(rest...); - } - LayoutBuilder &addItems() { return *this; } - LayoutBuilder &addItem(LayoutItem item); - - LayoutBuilder &startNewRow(); - LayoutBuilder &addRow(const LayoutItem &item); - - QLayout *layout() const; - -private: - void flushPendingFormItems(); - - QFormLayout *m_formLayout = nullptr; - QGridLayout *m_gridLayout = nullptr; - QList m_pendingFormItems; - int m_currentGridRow = 0; - int m_currentGridColumn = 0; -}; - -class PROJECTEXPLORER_EXPORT ProjectConfigurationAspect : public QObject -{ - Q_OBJECT - -public: - ProjectConfigurationAspect(); - ~ProjectConfigurationAspect() override; - - void setId(Utils::Id id) { m_id = id; } - void setDisplayName(const QString &displayName) { m_displayName = displayName; } - void setSettingsKey(const QString &settingsKey) { m_settingsKey = settingsKey; } - - Utils::Id id() const { return m_id; } - QString displayName() const { return m_displayName; } - QString settingsKey() const { return m_settingsKey; } - - bool isVisible() const { return m_visible; } - void setVisible(bool visible) { m_visible = visible; } - - using ConfigWidgetCreator = std::function; - void setConfigWidgetCreator(const ConfigWidgetCreator &configWidgetCreator); - QWidget *createConfigWidget() const; - - virtual void fromMap(const QVariantMap &) {} - virtual void toMap(QVariantMap &) const {} - virtual void acquaintSiblings(const ProjectConfigurationAspects &) {} - - virtual void addToLayout(LayoutBuilder &builder); - -signals: - void changed(); - -protected: - virtual void setVisibleDynamic(bool visible) { Q_UNUSED(visible) } // TODO: Better name? Merge with setVisible() somehow? - - Utils::Id m_id; - QString m_displayName; - QString m_settingsKey; // Name of data in settings. - bool m_visible = true; - ConfigWidgetCreator m_configWidgetCreator; -}; - -class PROJECTEXPLORER_EXPORT ProjectConfigurationAspects - : private QList -{ - using Base = QList; - -public: - ProjectConfigurationAspects(); - ProjectConfigurationAspects(const ProjectConfigurationAspects &) = delete; - ProjectConfigurationAspects &operator=(const ProjectConfigurationAspects &) = delete; - ~ProjectConfigurationAspects(); - - template - Aspect *addAspect(Args && ...args) - { - auto aspect = new Aspect(args...); - append(aspect); - return aspect; - } - - ProjectConfigurationAspect *aspect(Utils::Id id) const; - - template T *aspect() const - { - for (ProjectConfigurationAspect *aspect : *this) - if (T *result = qobject_cast(aspect)) - return result; - return nullptr; - } - - void fromMap(const QVariantMap &map) const; - void toMap(QVariantMap &map) const; - - using Base::append; - using Base::begin; - using Base::end; - -private: - Base &base() { return *this; } - const Base &base() const { return *this; } -}; - class PROJECTEXPLORER_EXPORT ProjectConfiguration : public QObject { Q_OBJECT @@ -218,9 +81,9 @@ public: return m_aspects.addAspect(std::forward(args)...); } - const ProjectConfigurationAspects &aspects() const { return m_aspects; } + const Utils::BaseAspects &aspects() const { return m_aspects; } - ProjectConfigurationAspect *aspect(Utils::Id id) const; + Utils::BaseAspect *aspect(Utils::Id id) const; template T *aspect() const { return m_aspects.aspect(); } void acquaintAspects(); @@ -230,7 +93,7 @@ signals: void toolTipChanged(); protected: - ProjectConfigurationAspects m_aspects; + Utils::BaseAspects m_aspects; private: QPointer m_target; diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index 1e6a4274304..520f63d2275 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -163,7 +163,6 @@ HEADERS += projectexplorer.h \ projectmacro.h \ makestep.h \ parseissuesdialog.h \ - projectconfigurationaspects.h \ treescanner.h \ rawprojectpart.h \ simpleprojectwizard.h @@ -310,7 +309,6 @@ SOURCES += projectexplorer.cpp \ projectmacro.cpp \ makestep.cpp \ parseissuesdialog.cpp \ - projectconfigurationaspects.cpp \ treescanner.cpp \ rawprojectpart.cpp \ simpleprojectwizard.cpp diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 2befdbabfa3..002a620f010 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -107,7 +107,6 @@ Project { "processstep.cpp", "processstep.h", "project.cpp", "project.h", "projectconfiguration.cpp", "projectconfiguration.h", - "projectconfigurationaspects.cpp", "projectconfigurationaspects.h", "projectconfigurationmodel.cpp", "projectconfigurationmodel.h", "projectexplorer.cpp", "projectexplorer.h", "projectexplorer.qrc", diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 596852d4bdf..8f8c8346d80 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -43,13 +43,14 @@ #include #include #include +#include #include #include #include +#include #include #include -#include #include #include @@ -223,13 +224,13 @@ QWidget *RunConfiguration::createConfigurationWidget() auto widget = new QWidget; { LayoutBuilder builder(widget); - for (ProjectConfigurationAspect *aspect : m_aspects) { + for (BaseAspect *aspect : qAsConst(m_aspects)) { if (aspect->isVisible()) aspect->addToLayout(builder.startNewRow()); } } - Core::VariableChooser::addSupportForChildWidgets(widget, &m_expander); + VariableChooser::addSupportForChildWidgets(widget, &m_expander); auto detailsWidget = new Utils::DetailsWidget; detailsWidget->setState(DetailsWidget::NoSummary); @@ -245,7 +246,7 @@ void RunConfiguration::addAspectFactory(const AspectFactory &aspectFactory) QMap RunConfiguration::aspectData() const { QMap data; - for (ProjectConfigurationAspect *aspect : m_aspects) + for (BaseAspect *aspect : qAsConst(m_aspects)) aspect->toMap(data[aspect->id()]); return data; } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 8e906e1d02c..170028aee96 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -32,6 +32,7 @@ #include "projectexplorerconstants.h" #include "task.h" +#include #include #include #include @@ -90,7 +91,7 @@ protected: * */ -class PROJECTEXPLORER_EXPORT GlobalOrProjectAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT GlobalOrProjectAspect : public Utils::BaseAspect { Q_OBJECT @@ -157,7 +158,7 @@ public: return nullptr; } - using AspectFactory = std::function; + using AspectFactory = std::function; template static void registerAspect() { addAspectFactory([](Target *target) { return new T(target); }); diff --git a/src/plugins/projectexplorer/runconfigurationaspects.cpp b/src/plugins/projectexplorer/runconfigurationaspects.cpp index ae2f1fb1e5b..3f44fd016d2 100644 --- a/src/plugins/projectexplorer/runconfigurationaspects.cpp +++ b/src/plugins/projectexplorer/runconfigurationaspects.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -171,7 +172,7 @@ void WorkingDirectoryAspect::addToLayout(LayoutBuilder &builder) builder.addItems(tr("Working directory:"), m_chooser.data(), m_resetButton.data()); } -void WorkingDirectoryAspect::acquaintSiblings(const ProjectConfigurationAspects &siblings) +void WorkingDirectoryAspect::acquaintSiblings(const BaseAspects &siblings) { m_envAspect = siblings.aspect(); } @@ -498,7 +499,7 @@ void ExecutableAspect::setExecutable(const FilePath &executable) void ExecutableAspect::setSettingsKey(const QString &key) { - ProjectConfigurationAspect::setSettingsKey(key); + BaseAspect::setSettingsKey(key); m_executable.setSettingsKey(key); } diff --git a/src/plugins/projectexplorer/runconfigurationaspects.h b/src/plugins/projectexplorer/runconfigurationaspects.h index 59d2d141b35..038341c4f6f 100644 --- a/src/plugins/projectexplorer/runconfigurationaspects.h +++ b/src/plugins/projectexplorer/runconfigurationaspects.h @@ -25,10 +25,11 @@ #pragma once -#include "projectconfigurationaspects.h" #include "applicationlauncher.h" #include "environmentaspect.h" +#include + #include QT_BEGIN_NAMESPACE @@ -41,14 +42,14 @@ namespace Utils { class ExpandButton; } namespace ProjectExplorer { -class PROJECTEXPLORER_EXPORT TerminalAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT TerminalAspect : public Utils::BaseAspect { Q_OBJECT public: TerminalAspect(); - void addToLayout(LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; bool useTerminal() const; void setUseTerminalHint(bool useTerminal); @@ -67,15 +68,15 @@ private: QPointer m_checkBox; // Owned by RunConfigWidget }; -class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public Utils::BaseAspect { Q_OBJECT public: WorkingDirectoryAspect(); - void addToLayout(LayoutBuilder &builder) override; - void acquaintSiblings(const ProjectConfigurationAspects &) override; + void addToLayout(Utils::LayoutBuilder &builder) override; + void acquaintSiblings(const Utils::BaseAspects &) override; Utils::FilePath workingDirectory(const Utils::MacroExpander *expander) const; Utils::FilePath defaultWorkingDirectory() const; @@ -97,14 +98,14 @@ private: QPointer m_resetButton; }; -class PROJECTEXPLORER_EXPORT ArgumentsAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect { Q_OBJECT public: ArgumentsAspect(); - void addToLayout(LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; QString arguments(const Utils::MacroExpander *expander) const; QString unexpandedArguments() const; @@ -129,7 +130,7 @@ private: std::function m_resetter; }; -class PROJECTEXPLORER_EXPORT UseLibraryPathsAspect : public BoolAspect +class PROJECTEXPLORER_EXPORT UseLibraryPathsAspect : public Utils::BoolAspect { Q_OBJECT @@ -137,7 +138,7 @@ public: UseLibraryPathsAspect(); }; -class PROJECTEXPLORER_EXPORT UseDyldSuffixAspect : public BoolAspect +class PROJECTEXPLORER_EXPORT UseDyldSuffixAspect : public Utils::BoolAspect { Q_OBJECT @@ -145,7 +146,7 @@ public: UseDyldSuffixAspect(); }; -class PROJECTEXPLORER_EXPORT ExecutableAspect : public ProjectConfigurationAspect +class PROJECTEXPLORER_EXPORT ExecutableAspect : public Utils::BaseAspect { Q_OBJECT @@ -158,14 +159,14 @@ public: void setSettingsKey(const QString &key); void makeOverridable(const QString &overridingKey, const QString &useOverridableKey); - void addToLayout(LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; void setLabelText(const QString &labelText); void setPlaceHolderText(const QString &placeHolderText); void setExecutablePathStyle(Utils::OsType osType); void setHistoryCompleter(const QString &historyCompleterKey); void setExpectedKind(const Utils::PathChooser::Kind expectedKind); void setEnvironment(const Utils::Environment &env); - void setDisplayStyle(StringAspect::DisplayStyle style); + void setDisplayStyle(Utils::StringAspect::DisplayStyle style); protected: void fromMap(const QVariantMap &map) override; @@ -174,11 +175,11 @@ protected: private: QString executableText() const; - StringAspect m_executable; - StringAspect *m_alternativeExecutable = nullptr; + Utils::StringAspect m_executable; + Utils::StringAspect *m_alternativeExecutable = nullptr; }; -class PROJECTEXPLORER_EXPORT SymbolFileAspect : public StringAspect +class PROJECTEXPLORER_EXPORT SymbolFileAspect : public Utils::StringAspect { Q_OBJECT diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index 7f0a0676ca1..12ab39a8c74 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -45,10 +45,10 @@ #include #include #include +#include #include #include -#include #include #include @@ -909,7 +909,7 @@ const MacroExpander *RunControl::macroExpander() const return d->macroExpander; } -ProjectConfigurationAspect *RunControl::aspect(Utils::Id id) const +BaseAspect *RunControl::aspect(Utils::Id id) const { return d->runConfiguration ? d->runConfiguration->aspect(id) : nullptr; } diff --git a/src/plugins/projectexplorer/runcontrol.h b/src/plugins/projectexplorer/runcontrol.h index b609815363c..0dfd35edf8c 100644 --- a/src/plugins/projectexplorer/runcontrol.h +++ b/src/plugins/projectexplorer/runcontrol.h @@ -224,7 +224,7 @@ public: Project *project() const; Kit *kit() const; const Utils::MacroExpander *macroExpander() const; - ProjectConfigurationAspect *aspect(Utils::Id id) const; + Utils::BaseAspect *aspect(Utils::Id id) const; template T *aspect() const { return runConfiguration() ? runConfiguration()->aspect() : nullptr; } diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 002652c779d..577d5a5be10 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -474,7 +474,7 @@ QString RunSettingsWidget::uniqueRCName(const QString &name) void RunSettingsWidget::addRunControlWidgets() { - for (ProjectConfigurationAspect *aspect : m_runConfiguration->aspects()) { + for (Utils::BaseAspect *aspect : m_runConfiguration->aspects()) { if (QWidget *rcw = aspect->createConfigWidget()) { auto label = new QLabel(this); label->setText(aspect->displayName()); diff --git a/src/plugins/python/pythonrunconfiguration.cpp b/src/plugins/python/pythonrunconfiguration.cpp index 209d0906b2e..059dfb31068 100644 --- a/src/plugins/python/pythonrunconfiguration.cpp +++ b/src/plugins/python/pythonrunconfiguration.cpp @@ -37,14 +37,15 @@ #include #include -#include #include #include #include #include +#include #include +#include #include #include @@ -133,7 +134,7 @@ private: //////////////////////////////////////////////////////////////// -class InterpreterAspect : public ProjectConfigurationAspect +class InterpreterAspect : public BaseAspect { Q_OBJECT diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h index e2b38132b58..3d20c91df20 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h @@ -85,9 +85,9 @@ public: QString configurationName() const; QString equivalentCommandLine(const QbsBuildStepData &stepData) const; - ProjectExplorer::TriState qmlDebuggingSetting() const; - ProjectExplorer::TriState qtQuickCompilerSetting() const; - ProjectExplorer::TriState separateDebugInfoSetting() const; + Utils::TriState qmlDebuggingSetting() const; + Utils::TriState qtQuickCompilerSetting() const; + Utils::TriState separateDebugInfoSetting() const; signals: void qbsConfigurationChanged(); @@ -100,7 +100,7 @@ private: QStringList m_changedFiles; QStringList m_activeFileTags; QStringList m_products; - ProjectExplorer::StringAspect *m_configurationName = nullptr; + Utils::StringAspect *m_configurationName = nullptr; QbsBuildSystem *m_buildSystem = nullptr; }; diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 49f46ae7d11..3f1f8983f98 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -32,7 +32,6 @@ #include "qbssettings.h" #include -#include #include #include #include @@ -43,6 +42,7 @@ #include #include #include +#include #include #include @@ -637,7 +637,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : cleanInstallRootCheckBox->setText(tr("Clean install root")); defaultInstallDirCheckBox->setText(tr("Use default location")); - auto chooser = new Core::VariableChooser(this); + auto chooser = new VariableChooser(this); chooser->addSupportedWidget(propertyEdit); chooser->addSupportedWidget(installDirChooser->lineEdit()); chooser->addMacroExpanderProvider([step] { return step->macroExpander(); }); diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp index 209ec759c18..7146e659fdc 100644 --- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp +++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp @@ -41,6 +41,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace QbsProjectManager { namespace Internal { diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.h b/src/plugins/qbsprojectmanager/qbscleanstep.h index d9fd6c489df..3e2f87e6021 100644 --- a/src/plugins/qbsprojectmanager/qbscleanstep.h +++ b/src/plugins/qbsprojectmanager/qbscleanstep.h @@ -28,11 +28,13 @@ #include "qbsbuildconfiguration.h" #include -#include #include +#include + namespace QbsProjectManager { namespace Internal { + class ErrorInfo; class QbsSession; @@ -60,8 +62,8 @@ private: void createTaskAndOutput(ProjectExplorer::Task::TaskType type, const QString &message, const QString &file, int line); - ProjectExplorer::BoolAspect *m_dryRunAspect = nullptr; - ProjectExplorer::BoolAspect *m_keepGoingAspect = nullptr; + Utils::BoolAspect *m_dryRunAspect = nullptr; + Utils::BoolAspect *m_keepGoingAspect = nullptr; QStringList m_products; QbsSession *m_session = nullptr; diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp index 085caa8a7b7..93a15a58e50 100644 --- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -45,6 +46,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace QbsProjectManager { namespace Internal { diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.h b/src/plugins/qbsprojectmanager/qbsinstallstep.h index f414c105aa3..5ef48876e3a 100644 --- a/src/plugins/qbsprojectmanager/qbsinstallstep.h +++ b/src/plugins/qbsprojectmanager/qbsinstallstep.h @@ -29,11 +29,13 @@ #include "qbssession.h" #include -#include #include +#include + namespace QbsProjectManager { namespace Internal { + class ErrorInfo; class QbsSession; @@ -62,9 +64,9 @@ private: void createTaskAndOutput(ProjectExplorer::Task::TaskType type, const QString &message, const Utils::FilePath &file, int line); - ProjectExplorer::BoolAspect *m_cleanInstallRoot = nullptr; - ProjectExplorer::BoolAspect *m_dryRun = nullptr; - ProjectExplorer::BoolAspect *m_keepGoing = nullptr; + Utils::BoolAspect *m_cleanInstallRoot = nullptr; + Utils::BoolAspect *m_dryRun = nullptr; + Utils::BoolAspect *m_keepGoing = nullptr; QbsSession *m_session = nullptr; QString m_description; diff --git a/src/plugins/qmakeprojectmanager/makefileparse.cpp b/src/plugins/qmakeprojectmanager/makefileparse.cpp index 17e140f82e4..0a066633719 100644 --- a/src/plugins/qmakeprojectmanager/makefileparse.cpp +++ b/src/plugins/qmakeprojectmanager/makefileparse.cpp @@ -36,15 +36,15 @@ #include #include -using namespace QmakeProjectManager; -using namespace Internal; using namespace ProjectExplorer; +using namespace Utils;; -using Utils::FilePath; -using Utils::QtcProcess; using QtSupport::QtVersionManager; using QtSupport::BaseQtVersion; +namespace QmakeProjectManager { +namespace Internal { + static QString findQMakeLine(const QString &makefile, const QString &key) { QFile fi(makefile); @@ -396,6 +396,8 @@ void MakeFileParse::parseCommandLine(const QString &command, const QString &proj } } +} // Internal +} // QmakeProjectManager // Unit tests: diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h index d9b4e0fc20e..71f88256a9c 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h @@ -27,10 +27,11 @@ #include "qmakeprojectmanager_global.h" -#include #include #include +#include + namespace ProjectExplorer { class FileNode; } namespace QmakeProjectManager { @@ -96,13 +97,13 @@ public: static bool isBuildDirAtSafeLocation(const QString &sourceDir, const QString &buildDir); bool isBuildDirAtSafeLocation() const; - ProjectExplorer::TriState separateDebugInfo() const; + Utils::TriState separateDebugInfo() const; void forceSeparateDebugInfo(bool sepDebugInfo); - ProjectExplorer::TriState qmlDebugging() const; + Utils::TriState qmlDebugging() const; void forceQmlDebugging(bool enable); - ProjectExplorer::TriState useQtQuickCompiler() const; + Utils::TriState useQtQuickCompiler() const; void forceQtQuickCompiler(bool enable); signals: diff --git a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp index ea883569b0c..274e9632ea8 100644 --- a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp @@ -33,7 +33,6 @@ #include "qmakesettings.h" #include "qmakestep.h" -#include #include #include #include @@ -43,7 +42,9 @@ #include #include #include + #include +#include #include #include diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 28201926987..0662f48c614 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -46,14 +46,15 @@ #include #include -#include #include #include #include + #include #include #include #include +#include #include #include @@ -580,7 +581,8 @@ BuildStepConfigWidget *QMakeStep::createConfigWidget() if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration()) BuildManager::buildLists({bc->cleanSteps()}); }); - auto chooser = new Core::VariableChooser(qmakeAdditonalArgumentsLineEdit); + + auto chooser = new VariableChooser(qmakeAdditonalArgumentsLineEdit); chooser->addMacroExpanderProvider([this] { return macroExpander(); }); chooser->addSupportedWidget(qmakeAdditonalArgumentsLineEdit); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.h b/src/plugins/qmakeprojectmanager/qmakestep.h index 647d876a106..711cde4309b 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.h +++ b/src/plugins/qmakeprojectmanager/qmakestep.h @@ -28,8 +28,8 @@ #include "qmakeprojectmanager_global.h" #include -#include +#include #include #include @@ -83,9 +83,9 @@ public: QString targetTriple; TargetArchConfig archConfig = NoArch; OsType osType = NoOsType; - ProjectExplorer::TriState separateDebugInfo; - ProjectExplorer::TriState linkQmlDebuggingQQ2; - ProjectExplorer::TriState useQtQuickCompiler; + Utils::TriState separateDebugInfo; + Utils::TriState linkQmlDebuggingQQ2; + Utils::TriState useQtQuickCompiler; }; @@ -103,9 +103,9 @@ inline bool operator !=(const QMakeStepConfig &a, const QMakeStepConfig &b) { inline QDebug operator<<(QDebug dbg, const QMakeStepConfig &c) { dbg << c.archConfig << c.osType - << (c.linkQmlDebuggingQQ2 == ProjectExplorer::TriState::Enabled) - << (c.useQtQuickCompiler == ProjectExplorer::TriState::Enabled) - << (c.separateDebugInfo == ProjectExplorer::TriState::Enabled); + << (c.linkQmlDebuggingQQ2 == Utils::TriState::Enabled) + << (c.useQtQuickCompiler == Utils::TriState::Enabled) + << (c.separateDebugInfo == Utils::TriState::Enabled); return dbg; } diff --git a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp index 7e2efa3844c..cfb11e05778 100644 --- a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp +++ b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp @@ -41,6 +41,8 @@ #include +#include + using namespace Core; using namespace ProjectExplorer; @@ -69,7 +71,7 @@ QmlMainFileAspect::~QmlMainFileAspect() delete m_fileListCombo; } -void QmlMainFileAspect::addToLayout(LayoutBuilder &builder) +void QmlMainFileAspect::addToLayout(Utils::LayoutBuilder &builder) { QTC_ASSERT(!m_fileListCombo, delete m_fileListCombo); m_fileListCombo = new QComboBox; diff --git a/src/plugins/qmlprojectmanager/qmlmainfileaspect.h b/src/plugins/qmlprojectmanager/qmlmainfileaspect.h index 61a7b337b7f..7eacb128b22 100644 --- a/src/plugins/qmlprojectmanager/qmlmainfileaspect.h +++ b/src/plugins/qmlprojectmanager/qmlmainfileaspect.h @@ -44,7 +44,7 @@ namespace QmlProjectManager { class QmlProject; class QmlBuildSystem; -class QMLPROJECTMANAGER_EXPORT QmlMainFileAspect : public ProjectExplorer::ProjectConfigurationAspect +class QMLPROJECTMANAGER_EXPORT QmlMainFileAspect : public Utils::BaseAspect { Q_OBJECT public: @@ -57,7 +57,7 @@ public: FileInSettings }; - void addToLayout(ProjectExplorer::LayoutBuilder &builder) final; + void addToLayout(Utils::LayoutBuilder &builder) final; void toMap(QVariantMap &map) const final; void fromMap(const QVariantMap &map) final; diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h index 47cbda9bf9c..5eae6c78948 100644 --- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h +++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h @@ -33,7 +33,7 @@ namespace QmlProjectManager { -class QMLPROJECTMANAGER_EXPORT QmlMultiLanguageAspect : public ProjectExplorer::BoolAspect +class QMLPROJECTMANAGER_EXPORT QmlMultiLanguageAspect : public Utils::BoolAspect { Q_OBJECT public: diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index a5a01d058ff..f5d144875e1 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -40,11 +40,11 @@ #include #include #include -#include #include #include +#include #include #include #include diff --git a/src/plugins/qnx/qnxrunconfiguration.h b/src/plugins/qnx/qnxrunconfiguration.h index f49892f3277..e56d00fe343 100644 --- a/src/plugins/qnx/qnxrunconfiguration.h +++ b/src/plugins/qnx/qnxrunconfiguration.h @@ -31,7 +31,7 @@ namespace Qnx { namespace Internal { -class QtLibPathAspect : public ProjectExplorer::StringAspect +class QtLibPathAspect : public Utils::StringAspect { Q_OBJECT diff --git a/src/plugins/qtsupport/qtbuildaspects.cpp b/src/plugins/qtsupport/qtbuildaspects.cpp index 06855e65a3e..1874156f62c 100644 --- a/src/plugins/qtsupport/qtbuildaspects.cpp +++ b/src/plugins/qtsupport/qtbuildaspects.cpp @@ -30,12 +30,15 @@ #include #include #include + #include +#include #include #include using namespace ProjectExplorer; +using namespace Utils; namespace QtSupport { @@ -109,7 +112,7 @@ void QtQuickCompilerAspect::addToLayout(LayoutBuilder &builder) changeHandler(); } -void QtQuickCompilerAspect::acquaintSiblings(const ProjectConfigurationAspects &siblings) +void QtQuickCompilerAspect::acquaintSiblings(const BaseAspects &siblings) { m_qmlDebuggingAspect = siblings.aspect(); } diff --git a/src/plugins/qtsupport/qtbuildaspects.h b/src/plugins/qtsupport/qtbuildaspects.h index 8dd45f8c016..c9f8a12c1d6 100644 --- a/src/plugins/qtsupport/qtbuildaspects.h +++ b/src/plugins/qtsupport/qtbuildaspects.h @@ -27,24 +27,26 @@ #include "qtsupport_global.h" -#include +#include + +namespace ProjectExplorer { class Kit; } namespace QtSupport { -class QTSUPPORT_EXPORT QmlDebuggingAspect : public ProjectExplorer::TriStateAspect +class QTSUPPORT_EXPORT QmlDebuggingAspect : public Utils::TriStateAspect { Q_OBJECT public: QmlDebuggingAspect(); void setKit(const ProjectExplorer::Kit *kit) { m_kit = kit; } - void addToLayout(ProjectExplorer::LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; private: const ProjectExplorer::Kit *m_kit = nullptr; }; -class QTSUPPORT_EXPORT QtQuickCompilerAspect : public ProjectExplorer::TriStateAspect +class QTSUPPORT_EXPORT QtQuickCompilerAspect : public Utils::TriStateAspect { Q_OBJECT public: @@ -53,8 +55,8 @@ public: void setKit(const ProjectExplorer::Kit *kit) { m_kit = kit; } private: - void addToLayout(ProjectExplorer::LayoutBuilder &builder) override; - void acquaintSiblings(const ProjectExplorer::ProjectConfigurationAspects &siblings) override; + void addToLayout(Utils::LayoutBuilder &builder) override; + void acquaintSiblings(const Utils::BaseAspects &siblings) override; const ProjectExplorer::Kit *m_kit = nullptr; const QmlDebuggingAspect *m_qmlDebuggingAspect = nullptr; diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index 9ce6769c37a..cd0001e946a 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #include #include @@ -55,6 +54,7 @@ #include #include #include +#include #include #include @@ -326,7 +326,7 @@ QtOptionsPageWidget::QtOptionsPageWidget() connect(ProjectExplorer::ToolChainManager::instance(), &ToolChainManager::toolChainsChanged, this, &QtOptionsPageWidget::toolChainsUpdated); - auto chooser = new Core::VariableChooser(this); + auto chooser = new VariableChooser(this); chooser->addSupportedWidget(m_versionUi.nameEdit, "Qt:Name"); chooser->addMacroExpanderProvider([this] { BaseQtVersion *version = currentVersion(); diff --git a/src/plugins/remotelinux/genericdirectuploadstep.cpp b/src/plugins/remotelinux/genericdirectuploadstep.cpp index c649ba809c8..0b47e94624a 100644 --- a/src/plugins/remotelinux/genericdirectuploadstep.cpp +++ b/src/plugins/remotelinux/genericdirectuploadstep.cpp @@ -33,6 +33,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace RemoteLinux { diff --git a/src/plugins/remotelinux/makeinstallstep.h b/src/plugins/remotelinux/makeinstallstep.h index f50c1d784df..e0685b8dca8 100644 --- a/src/plugins/remotelinux/makeinstallstep.h +++ b/src/plugins/remotelinux/makeinstallstep.h @@ -30,8 +30,10 @@ #include #include -namespace ProjectExplorer { class StringAspect; } -namespace Utils { class FilePath; } +namespace Utils { +class FilePath; +class StringAspect; +} // Utils namespace RemoteLinux { @@ -60,7 +62,7 @@ private: void updateFullCommandLine(); void updateFromCustomCommandLineAspect(); - ProjectExplorer::StringAspect *customCommandLineAspect() const; + Utils::StringAspect *customCommandLineAspect() const; ProjectExplorer::DeploymentData m_deploymentData; bool m_noInstallTarget = false; diff --git a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp index 1fe8ba0da3a..2dabebbbbdb 100644 --- a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp +++ b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp @@ -27,11 +27,12 @@ #include "remotelinuxcheckforfreediskspaceservice.h" -#include +#include #include using namespace ProjectExplorer; +using namespace Utils; namespace RemoteLinux { diff --git a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp index 9accd3d4bc5..dce17f58f54 100644 --- a/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp +++ b/src/plugins/remotelinux/remotelinuxcustomcommanddeploymentstep.cpp @@ -31,6 +31,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace RemoteLinux { diff --git a/src/plugins/remotelinux/remotelinuxx11forwardingaspect.h b/src/plugins/remotelinux/remotelinuxx11forwardingaspect.h index 597569ea636..b518782fbc8 100644 --- a/src/plugins/remotelinux/remotelinuxx11forwardingaspect.h +++ b/src/plugins/remotelinux/remotelinuxx11forwardingaspect.h @@ -27,15 +27,13 @@ #include "remotelinux_export.h" -#include - -#include +#include namespace Utils { class MacroExpander; } namespace RemoteLinux { -class REMOTELINUX_EXPORT X11ForwardingAspect : public ProjectExplorer::StringAspect +class REMOTELINUX_EXPORT X11ForwardingAspect : public Utils::StringAspect { Q_OBJECT diff --git a/src/plugins/remotelinux/tarpackagecreationstep.cpp b/src/plugins/remotelinux/tarpackagecreationstep.cpp index 5ffb2e461b4..deecaa1360a 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.cpp +++ b/src/plugins/remotelinux/tarpackagecreationstep.cpp @@ -43,6 +43,7 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace RemoteLinux { namespace { diff --git a/src/plugins/remotelinux/tarpackagecreationstep.h b/src/plugins/remotelinux/tarpackagecreationstep.h index 7d61d270928..33a7b4358e6 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.h +++ b/src/plugins/remotelinux/tarpackagecreationstep.h @@ -30,7 +30,8 @@ #include "remotelinux_export.h" #include -#include + +#include QT_BEGIN_NAMESPACE class QFile; @@ -77,8 +78,8 @@ private: DeploymentTimeInfo m_deployTimes; - ProjectExplorer::BoolAspect *m_incrementalDeploymentAspect = nullptr; - ProjectExplorer::BoolAspect *m_ignoreMissingFilesAspect = nullptr; + Utils::BoolAspect *m_incrementalDeploymentAspect = nullptr; + Utils::BoolAspect *m_ignoreMissingFilesAspect = nullptr; bool m_packagingNeeded = false; QList m_files; }; diff --git a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp index 10c6c06d45c..a12f95c10c9 100644 --- a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp +++ b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp @@ -29,8 +29,11 @@ #include #include +#include + #include -#include + +using namespace Utils; namespace WebAssembly { namespace Internal { @@ -77,7 +80,7 @@ WebBrowserSelectionAspect::WebBrowserSelectionAspect(ProjectExplorer::Target *ta setSettingsKey("RunConfiguration.WebBrowser"); } -void WebBrowserSelectionAspect::addToLayout(ProjectExplorer::LayoutBuilder &builder) +void WebBrowserSelectionAspect::addToLayout(LayoutBuilder &builder) { QTC_CHECK(!m_webBrowserComboBox); m_webBrowserComboBox = new QComboBox; diff --git a/src/plugins/webassembly/webassemblyrunconfigurationaspects.h b/src/plugins/webassembly/webassemblyrunconfigurationaspects.h index 1f640f35a37..00cd2ac877d 100644 --- a/src/plugins/webassembly/webassemblyrunconfigurationaspects.h +++ b/src/plugins/webassembly/webassemblyrunconfigurationaspects.h @@ -32,14 +32,14 @@ QT_FORWARD_DECLARE_CLASS(QComboBox) namespace WebAssembly { namespace Internal { -class WebBrowserSelectionAspect : public ProjectExplorer::ProjectConfigurationAspect +class WebBrowserSelectionAspect : public Utils::BaseAspect { Q_OBJECT public: WebBrowserSelectionAspect(ProjectExplorer::Target *target); - void addToLayout(ProjectExplorer::LayoutBuilder &builder) override; + void addToLayout(Utils::LayoutBuilder &builder) override; void fromMap(const QVariantMap &map) override; void toMap(QVariantMap &map) const override; diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.cpp b/src/plugins/winrt/winrtpackagedeploymentstep.cpp index c77d19911a5..3cfd60f86b9 100644 --- a/src/plugins/winrt/winrtpackagedeploymentstep.cpp +++ b/src/plugins/winrt/winrtpackagedeploymentstep.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include @@ -41,9 +40,11 @@ #include +#include #include #include #include +#include #include #include @@ -59,7 +60,7 @@ namespace Internal { const char ARGUMENTS_KEY[] = "WinRt.BuildStep.Deploy.Arguments"; const char DEFAULTARGUMENTS_KEY[] = "WinRt.BuildStep.Deploy.DefaultArguments"; -class WinRtArgumentsAspect final : public ProjectConfigurationAspect +class WinRtArgumentsAspect final : public BaseAspect { Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtArgumentsAspect) diff --git a/src/plugins/winrt/winrtrunconfiguration.h b/src/plugins/winrt/winrtrunconfiguration.h index 15282a62742..8e9cf4f0c1e 100644 --- a/src/plugins/winrt/winrtrunconfiguration.h +++ b/src/plugins/winrt/winrtrunconfiguration.h @@ -30,7 +30,7 @@ namespace WinRt { namespace Internal { -class UninstallAfterStopAspect : public ProjectExplorer::BoolAspect +class UninstallAfterStopAspect : public Utils::BoolAspect { Q_OBJECT @@ -38,7 +38,7 @@ public: UninstallAfterStopAspect(); }; -class LoopbackExemptClientAspect : public ProjectExplorer::BoolAspect +class LoopbackExemptClientAspect : public Utils::BoolAspect { Q_OBJECT @@ -46,7 +46,7 @@ public: LoopbackExemptClientAspect(); }; -class LoopbackExemptServerAspect : public ProjectExplorer::BoolAspect +class LoopbackExemptServerAspect : public Utils::BoolAspect { Q_OBJECT