diff options
author | hjk <hjk@qt.io> | 2019-04-26 19:26:50 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-04-30 09:06:30 +0000 |
commit | 02ab64f2394e69ffbf3092c45a6928667d37fe5d (patch) | |
tree | 5c9b79f67b059f9944849cab863553ae2296cc46 /src/plugins/nim | |
parent | 80be7adcdb36d495fb117c8a384c4e398ea8434b (diff) |
Nim: Aspectify NimBuildConfiguration
Change-Id: Iccf81e3a089a6b6d756aace99c5051dc7349b6b9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/nim')
-rw-r--r-- | src/plugins/nim/nim.pro | 2 | ||||
-rw-r--r-- | src/plugins/nim/nim.qbs | 1 | ||||
-rw-r--r-- | src/plugins/nim/nimconstants.h | 8 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbuildconfiguration.cpp | 33 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbuildconfiguration.h | 4 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbuildconfigurationwidget.cpp | 85 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbuildconfigurationwidget.h | 58 |
7 files changed, 4 insertions, 187 deletions
diff --git a/src/plugins/nim/nim.pro b/src/plugins/nim/nim.pro index e2e4fb18c1b..2cb7bb2de35 100644 --- a/src/plugins/nim/nim.pro +++ b/src/plugins/nim/nim.pro @@ -24,7 +24,6 @@ HEADERS += \ project/nimcompilercleanstep.h \ project/nimcompilercleanstepconfigwidget.h \ project/nimrunconfiguration.h \ - project/nimbuildconfigurationwidget.h \ editor/nimeditorfactory.h \ settings/nimcodestylesettingspage.h \ settings/nimcodestylepreferencesfactory.h \ @@ -55,7 +54,6 @@ SOURCES += \ project/nimcompilercleanstep.cpp \ project/nimcompilercleanstepconfigwidget.cpp \ project/nimrunconfiguration.cpp \ - project/nimbuildconfigurationwidget.cpp \ editor/nimeditorfactory.cpp \ settings/nimcodestylesettingspage.cpp \ settings/nimcodestylepreferencesfactory.cpp \ diff --git a/src/plugins/nim/nim.qbs b/src/plugins/nim/nim.qbs index b009e4d88ff..cf5dc409303 100644 --- a/src/plugins/nim/nim.qbs +++ b/src/plugins/nim/nim.qbs @@ -37,7 +37,6 @@ QtcPlugin { prefix: "project/" files: [ "nimbuildconfiguration.h", "nimbuildconfiguration.cpp", - "nimbuildconfigurationwidget.h", "nimbuildconfigurationwidget.cpp", "nimcompilerbuildstep.h", "nimcompilerbuildstep.cpp", "nimcompilerbuildstepconfigwidget.h", "nimcompilerbuildstepconfigwidget.cpp", "nimcompilerbuildstepconfigwidget.ui", "nimcompilercleanstep.h", "nimcompilercleanstep.cpp", diff --git a/src/plugins/nim/nimconstants.h b/src/plugins/nim/nimconstants.h index d37cdcedb73..552e01d4b31 100644 --- a/src/plugins/nim/nimconstants.h +++ b/src/plugins/nim/nimconstants.h @@ -39,19 +39,11 @@ const char C_EDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "Nim const char C_NIMTOOLCHAIN_TYPEID[] = "Nim.NimToolChain"; const char C_NIMTOOLCHAIN_COMPILER_COMMAND_KEY[] = "Nim.NimToolChain.CompilerCommand"; -// NimRunConfiguration -const QString C_NIMRUNCONFIGURATION_EXECUTABLE_KEY = QStringLiteral("Nim.NimRunConfiguration.Executable"); - // NimProject const char C_NIMPROJECT_EXCLUDEDFILES[] = "Nim.NimProjectExcludedFiles"; // NimBuildConfiguration const char C_NIMBUILDCONFIGURATION_ID[] = "Nim.NimBuildConfiguration"; -const QString C_NIMBUILDCONFIGURATION_DISPLAY_KEY = QStringLiteral("Nim.NimBuildConfiguration.Display"); -const QString C_NIMBUILDCONFIGURATION_BUILDDIRECTORY_KEY = QStringLiteral("Nim.NimBuildConfiguration.BuildDirectory"); - -// NimBuildConfigurationWidget -const char C_NIMBUILDCONFIGURATIONWIDGET_DISPLAY[] = QT_TRANSLATE_NOOP("NimBuildConfigurationWidget","General"); // NimCompilerBuildStep const char C_NIMCOMPILERBUILDSTEP_ID[] = "Nim.NimCompilerBuildStep"; diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp index 46acf4881b3..4db5db8aa8a 100644 --- a/src/plugins/nim/project/nimbuildconfiguration.cpp +++ b/src/plugins/nim/project/nimbuildconfiguration.cpp @@ -24,7 +24,6 @@ ****************************************************************************/ #include "nimbuildconfiguration.h" -#include "nimbuildconfigurationwidget.h" #include "nimcompilerbuildstep.h" #include "nimproject.h" #include "nimbuildconfiguration.h" @@ -43,6 +42,7 @@ #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectmacroexpander.h> #include <projectexplorer/target.h> +#include <projectexplorer/projectconfigurationaspects.h> #include <utils/mimetypes/mimedatabase.h> #include <utils/qtcassert.h> @@ -73,6 +73,9 @@ static FileName defaultBuildDirectory(const Kit *k, NimBuildConfiguration::NimBuildConfiguration(Target *target, Core::Id id) : BuildConfiguration(target, id) { + setConfigWidgetDisplayName(tr("General")); + setConfigWidgetHasFrame(true); + setBuildDirectorySettingsKey("Nim.NimBuildConfiguration.BuildDirectory"); } void NimBuildConfiguration::initialize(const BuildInfo &info) @@ -118,39 +121,11 @@ void NimBuildConfiguration::initialize(const BuildInfo &info) } } - -NamedWidget *NimBuildConfiguration::createConfigWidget() -{ - return new NimBuildConfigurationWidget(this); -} - BuildConfiguration::BuildType NimBuildConfiguration::buildType() const { return BuildConfiguration::Unknown; } -bool NimBuildConfiguration::fromMap(const QVariantMap &map) -{ - if (!BuildConfiguration::fromMap(map)) - return false; - - const QString displayName = map[Constants::C_NIMBUILDCONFIGURATION_DISPLAY_KEY].toString(); - const QString buildDirectory = map[Constants::C_NIMBUILDCONFIGURATION_BUILDDIRECTORY_KEY].toString(); - - setDisplayName(displayName); - setBuildDirectory(FileName::fromString(buildDirectory)); - - return true; -} - -QVariantMap NimBuildConfiguration::toMap() const -{ - QVariantMap result = BuildConfiguration::toMap(); - result[Constants::C_NIMBUILDCONFIGURATION_DISPLAY_KEY] = displayName(); - result[Constants::C_NIMBUILDCONFIGURATION_BUILDDIRECTORY_KEY] = buildDirectory().toString(); - return result; -} - FileName NimBuildConfiguration::cacheDirectory() const { return buildDirectory().appendPath(QStringLiteral("nimcache")); diff --git a/src/plugins/nim/project/nimbuildconfiguration.h b/src/plugins/nim/project/nimbuildconfiguration.h index 90175647ead..5a8fcf86b13 100644 --- a/src/plugins/nim/project/nimbuildconfiguration.h +++ b/src/plugins/nim/project/nimbuildconfiguration.h @@ -40,12 +40,8 @@ class NimBuildConfiguration : public ProjectExplorer::BuildConfiguration NimBuildConfiguration(ProjectExplorer::Target *target, Core::Id id); void initialize(const ProjectExplorer::BuildInfo &info) override; - ProjectExplorer::NamedWidget *createConfigWidget() override; ProjectExplorer::BuildConfiguration::BuildType buildType() const override; - bool fromMap(const QVariantMap &map) override; - QVariantMap toMap() const override; - public: Utils::FileName cacheDirectory() const; Utils::FileName outFilePath() const; diff --git a/src/plugins/nim/project/nimbuildconfigurationwidget.cpp b/src/plugins/nim/project/nimbuildconfigurationwidget.cpp deleted file mode 100644 index e4511eba313..00000000000 --- a/src/plugins/nim/project/nimbuildconfigurationwidget.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) Filippo Cucchetto <filippocucchetto@gmail.com> -** Contact: http://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 "nimbuildconfigurationwidget.h" -#include "nimbuildconfiguration.h" - -#include "../nimconstants.h" - -#include <utils/pathchooser.h> -#include <utils/detailswidget.h> - -#include <QVBoxLayout> -#include <QFormLayout> -#include <QComboBox> - -using namespace ProjectExplorer; -using namespace Utils; - -namespace Nim { - -NimBuildConfigurationWidget::NimBuildConfigurationWidget(NimBuildConfiguration *bc) - : NamedWidget(nullptr) - , m_bc(bc) -{ - // Build UI - auto mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(0); - - auto detailsWidget = new DetailsWidget(); - detailsWidget->setState(DetailsWidget::NoSummary); - mainLayout->addWidget(detailsWidget); - - auto detailsInnerWidget = new QWidget(); - auto formLayout = new QFormLayout(detailsInnerWidget); - detailsWidget->setWidget(detailsInnerWidget); - - m_buildDirectoryChooser = new PathChooser(); - formLayout->addRow(tr("Build directory:"), m_buildDirectoryChooser); - - // Connect signals - connect(bc, &NimBuildConfiguration::buildDirectoryChanged, - this, &NimBuildConfigurationWidget::updateUi); - connect(m_buildDirectoryChooser, &PathChooser::pathChanged, - this, &NimBuildConfigurationWidget::onPathEdited); - - setDisplayName(tr(Constants::C_NIMBUILDCONFIGURATIONWIDGET_DISPLAY)); - updateUi(); -} - -NimBuildConfigurationWidget::~NimBuildConfigurationWidget() = default; - -void NimBuildConfigurationWidget::updateUi() -{ - m_buildDirectoryChooser->setPath(m_bc->buildDirectory().toUserOutput()); -} - -void NimBuildConfigurationWidget::onPathEdited(const QString &path) -{ - m_bc->setBuildDirectory(FileName::fromUserInput(path)); -} - - -} diff --git a/src/plugins/nim/project/nimbuildconfigurationwidget.h b/src/plugins/nim/project/nimbuildconfigurationwidget.h deleted file mode 100644 index cb6251b3ec9..00000000000 --- a/src/plugins/nim/project/nimbuildconfigurationwidget.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) Filippo Cucchetto <filippocucchetto@gmail.com> -** Contact: http://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 <projectexplorer/namedwidget.h> - -QT_BEGIN_NAMESPACE -class QComboBox; -class QLineEdit; -class QPushButton; -QT_END_NAMESPACE - -namespace Utils { class PathChooser; } - -namespace Nim { - -class NimBuildConfiguration; - -class NimBuildConfigurationWidget : public ProjectExplorer::NamedWidget -{ - Q_OBJECT - -public: - explicit NimBuildConfigurationWidget(NimBuildConfiguration *bc); - ~NimBuildConfigurationWidget(); - -private: - void updateUi(); - void onPathEdited(const QString &path); - - NimBuildConfiguration *m_bc; - Utils::PathChooser *m_buildDirectoryChooser; -}; - -} |