diff --git a/src/plugins/mesonprojectmanager/CMakeLists.txt b/src/plugins/mesonprojectmanager/CMakeLists.txt index 07b63f93b42..1cd56dc9033 100644 --- a/src/plugins/mesonprojectmanager/CMakeLists.txt +++ b/src/plugins/mesonprojectmanager/CMakeLists.txt @@ -47,8 +47,6 @@ add_qtc_plugin(MesonProjectManager settings.cpp settings.h target.h - toolitemsettings.cpp - toolitemsettings.h toolkitaspectwidget.cpp toolkitaspectwidget.h toolsmodel.cpp diff --git a/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs b/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs index 40c0c883a41..ed3f962c142 100644 --- a/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs +++ b/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs @@ -65,8 +65,6 @@ Project { "settings.h", "toolkitaspectwidget.cpp", "toolkitaspectwidget.h", - "toolitemsettings.cpp", - "toolitemsettings.h", "toolsmodel.cpp", "toolsmodel.h", "toolssettingsaccessor.cpp", diff --git a/src/plugins/mesonprojectmanager/toolitemsettings.cpp b/src/plugins/mesonprojectmanager/toolitemsettings.cpp deleted file mode 100644 index 021b08edb6e..00000000000 --- a/src/plugins/mesonprojectmanager/toolitemsettings.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2020 Alexis Jeandet. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "toolitemsettings.h" - -#include "mesonprojectmanagertr.h" -#include "toolsmodel.h" - -#include -#include - -#include - -using namespace Utils; - -namespace MesonProjectManager::Internal { - -ToolItemSettings::ToolItemSettings(QWidget *parent) - : QWidget(parent) -{ - m_mesonNameLineEdit = new QLineEdit; - - m_mesonPathChooser = new PathChooser; - m_mesonPathChooser->setExpectedKind(PathChooser::ExistingCommand); - m_mesonPathChooser->setHistoryCompleter("Meson.Command.History"); - - using namespace Layouting; - - Form { - Tr::tr("Name:"), m_mesonNameLineEdit, br, - Tr::tr("Path:"), m_mesonPathChooser, br, - noMargin - }.attachTo(this); - - connect(m_mesonPathChooser, &PathChooser::rawPathChanged, this, &ToolItemSettings::store); - connect(m_mesonNameLineEdit, &QLineEdit::textChanged, this, &ToolItemSettings::store); -} - -void ToolItemSettings::load(ToolTreeItem *item) -{ - if (item) { - m_currentId = std::nullopt; - m_mesonNameLineEdit->setDisabled(item->isAutoDetected()); - m_mesonNameLineEdit->setText(item->name()); - m_mesonPathChooser->setDisabled(item->isAutoDetected()); - m_mesonPathChooser->setFilePath(item->executable()); - m_currentId = item->id(); - } else { - m_currentId = std::nullopt; - } -} - -void ToolItemSettings::store() -{ - if (m_currentId) - emit applyChanges(*m_currentId, - m_mesonNameLineEdit->text(), - m_mesonPathChooser->filePath()); -} - -} // MesonProjectManager::Internal diff --git a/src/plugins/mesonprojectmanager/toolitemsettings.h b/src/plugins/mesonprojectmanager/toolitemsettings.h deleted file mode 100644 index ed677426454..00000000000 --- a/src/plugins/mesonprojectmanager/toolitemsettings.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) 2020 Alexis Jeandet. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -#include - -#include - -QT_BEGIN_NAMESPACE -class QLineEdit; -QT_END_NAMESPACE - -namespace Utils { -class FilePath; -class PathChooser; -} - -namespace MesonProjectManager::Internal { - -class ToolTreeItem; - -class ToolItemSettings : public QWidget -{ - Q_OBJECT - -public: - explicit ToolItemSettings(QWidget *parent = nullptr); - void load(ToolTreeItem *item); - void store(); - -signals: - void applyChanges(Utils::Id itemId, const QString &name, const Utils::FilePath &exe); - -private: - std::optional m_currentId{std::nullopt}; - QLineEdit *m_mesonNameLineEdit; - Utils::PathChooser *m_mesonPathChooser; -}; - -} // MesonProjectManager::Internal diff --git a/src/plugins/mesonprojectmanager/toolssettingspage.cpp b/src/plugins/mesonprojectmanager/toolssettingspage.cpp index dd82899b404..ac788b49236 100644 --- a/src/plugins/mesonprojectmanager/toolssettingspage.cpp +++ b/src/plugins/mesonprojectmanager/toolssettingspage.cpp @@ -5,7 +5,6 @@ #include "mesonpluginconstants.h" #include "mesonprojectmanagertr.h" -#include "toolitemsettings.h" #include "toolsmodel.h" #include @@ -21,6 +20,65 @@ using namespace Utils; namespace MesonProjectManager::Internal { +class ToolTreeItem; + +class ToolItemSettings final : public QWidget +{ + Q_OBJECT + +public: + ToolItemSettings() + { + m_mesonNameLineEdit = new QLineEdit; + + m_mesonPathChooser = new PathChooser; + m_mesonPathChooser->setExpectedKind(PathChooser::ExistingCommand); + m_mesonPathChooser->setHistoryCompleter("Meson.Command.History"); + + using namespace Layouting; + + Form { + Tr::tr("Name:"), m_mesonNameLineEdit, br, + Tr::tr("Path:"), m_mesonPathChooser, br, + noMargin + }.attachTo(this); + + connect(m_mesonPathChooser, &PathChooser::rawPathChanged, this, &ToolItemSettings::store); + connect(m_mesonNameLineEdit, &QLineEdit::textChanged, this, &ToolItemSettings::store); + } + + void load(ToolTreeItem *item) + { + if (item) { + m_currentId = std::nullopt; + m_mesonNameLineEdit->setDisabled(item->isAutoDetected()); + m_mesonNameLineEdit->setText(item->name()); + m_mesonPathChooser->setDisabled(item->isAutoDetected()); + m_mesonPathChooser->setFilePath(item->executable()); + m_currentId = item->id(); + } else { + m_currentId = std::nullopt; + } + } + + void store() + { + if (m_currentId) { + emit applyChanges(*m_currentId, + m_mesonNameLineEdit->text(), + m_mesonPathChooser->filePath()); + } + } + +signals: + void applyChanges(Id itemId, const QString &name, const FilePath &exe); + +private: + std::optional m_currentId{std::nullopt}; + QLineEdit *m_mesonNameLineEdit; + PathChooser *m_mesonPathChooser; +}; + class ToolsSettingsWidget final : public Core::IOptionsPageWidget { public: @@ -138,3 +196,5 @@ void setupToolsSettingsPage() } } // namespace MesonProjectManager + +#include "toolssettingspage.moc"