diff --git a/src/plugins/cmakeprojectmanager/builddirmanager.cpp b/src/plugins/cmakeprojectmanager/builddirmanager.cpp index e62aa14e78d..44aec2346e7 100644 --- a/src/plugins/cmakeprojectmanager/builddirmanager.cpp +++ b/src/plugins/cmakeprojectmanager/builddirmanager.cpp @@ -27,29 +27,20 @@ #include "cmakebuildconfiguration.h" #include "cmakebuildstep.h" -#include "cmakekitinformation.h" +#include "cmakebuildsystem.h" #include "cmakeprojectnodes.h" -#include "cmaketool.h" #include -#include -#include -#include #include -#include #include -#include #include -#include #include -#include #include #include #include #include -#include #include diff --git a/src/plugins/cmakeprojectmanager/builddirmanager.h b/src/plugins/cmakeprojectmanager/builddirmanager.h index c7652911d56..2815d5aec77 100644 --- a/src/plugins/cmakeprojectmanager/builddirmanager.h +++ b/src/plugins/cmakeprojectmanager/builddirmanager.h @@ -28,7 +28,6 @@ #include "builddirparameters.h" #include "builddirreader.h" #include "cmakebuildtarget.h" -#include "cmakeconfigitem.h" #include @@ -36,9 +35,8 @@ #include #include -#include +#include -#include #include #include diff --git a/src/plugins/cmakeprojectmanager/builddirparameters.cpp b/src/plugins/cmakeprojectmanager/builddirparameters.cpp index 7cc9fc3e445..8522029e679 100644 --- a/src/plugins/cmakeprojectmanager/builddirparameters.cpp +++ b/src/plugins/cmakeprojectmanager/builddirparameters.cpp @@ -31,12 +31,11 @@ #include "cmakespecificsettings.h" #include "cmaketoolmanager.h" -#include #include -#include +#include #include +#include -#include #include using namespace ProjectExplorer; diff --git a/src/plugins/cmakeprojectmanager/builddirreader.h b/src/plugins/cmakeprojectmanager/builddirreader.h index 73f716afeca..7448fca09a5 100644 --- a/src/plugins/cmakeprojectmanager/builddirreader.h +++ b/src/plugins/cmakeprojectmanager/builddirreader.h @@ -27,18 +27,12 @@ #include "builddirparameters.h" #include "cmakebuildtarget.h" -#include "cmakeconfigitem.h" -#include "cmaketool.h" #include -#include -#include -#include - -#include #include -#include + +#include namespace ProjectExplorer { class FileNode; } diff --git a/src/plugins/cmakeprojectmanager/cmakeautocompleter.cpp b/src/plugins/cmakeprojectmanager/cmakeautocompleter.cpp index eb9ae0c76f8..b0b145e7fd5 100644 --- a/src/plugins/cmakeprojectmanager/cmakeautocompleter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeautocompleter.cpp @@ -25,13 +25,6 @@ #include "cmakeautocompleter.h" -#include -#include -#include -#include - -#include - namespace CMakeProjectManager { namespace Internal { diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index eba95e58ebd..fef15a3a3e2 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -26,34 +26,26 @@ #include "cmakebuildconfiguration.h" #include "builddirmanager.h" +#include "cmakebuildsettingswidget.h" #include "cmakebuildstep.h" -#include "cmakeconfigitem.h" +#include "cmakebuildsystem.h" #include "cmakekitinformation.h" #include "cmakeprojectconstants.h" -#include "cmakebuildsettingswidget.h" #include - -#include - #include #include #include -#include #include +#include #include -#include #include #include - #include #include #include -#include -#include #include -#include #include diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h index a1e70b0229a..ee34640e913 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h @@ -26,12 +26,9 @@ #pragma once #include "cmakeconfigitem.h" -#include "cmakeproject.h" #include "configmodel.h" #include -#include -#include namespace CMakeProjectManager { class CMakeProject; diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index 21e77cc5ea5..c1b4d038c8d 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -25,40 +25,30 @@ #include "cmakebuildsettingswidget.h" +#include "cmakebuildconfiguration.h" +#include "cmakebuildsystem.h" +#include "cmakekitinformation.h" #include "configmodel.h" #include "configmodelitemdelegate.h" -#include "cmakekitinformation.h" -#include "cmakeproject.h" -#include "cmakebuildconfiguration.h" #include -#include #include -#include #include -#include #include #include #include #include -#include #include #include #include -#include #include +#include #include #include -#include -#include #include -#include #include -#include -#include -#include #include using namespace ProjectExplorer; diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h index ca68fe56328..1014d2f6747 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h @@ -55,6 +55,7 @@ class CMakeBuildConfiguration; class CMakeBuildSettingsWidget : public ProjectExplorer::NamedWidget { Q_OBJECT + public: CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index bf1c269cc5a..0ece524c19f 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -30,32 +30,19 @@ #include "cmakekitinformation.h" #include "cmakeparser.h" #include "cmakeprojectconstants.h" -#include "cmakeproject.h" #include "cmaketool.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - #include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include - -#include -#include +#include #include -#include #include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index a647c405f78..b0d962d72cb 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -27,33 +27,105 @@ #include "cmakebuildconfiguration.h" #include "cmakekitinformation.h" -#include "cmakeproject.h" #include "cmakeprojectconstants.h" #include "cmakeprojectnodes.h" +#include "cmakeprojectplugin.h" +#include "cmakespecificsettings.h" #include - +#include #include #include +#include #include -#include -#include +#include #include #include #include #include -#include +#include #include #include #include +#include +#include +#include #include using namespace ProjectExplorer; using namespace Utils; +namespace { + +void copySourcePathToClipboard(Utils::optional srcPath, + const ProjectExplorer::ProjectNode *node) +{ + QClipboard *clip = QGuiApplication::clipboard(); + + QDir projDir{node->filePath().toFileInfo().absoluteFilePath()}; + clip->setText(QDir::cleanPath(projDir.relativeFilePath(srcPath.value()))); +} + +void noAutoAdditionNotify(const QStringList &filePaths, const ProjectExplorer::ProjectNode *node) +{ + Utils::optional srcPath{}; + + for (const QString &file : filePaths) { + if (Utils::mimeTypeForFile(file).name() == CppTools::Constants::CPP_SOURCE_MIMETYPE) { + srcPath = file; + break; + } + } + + if (srcPath) { + CMakeProjectManager::Internal::CMakeSpecificSettings *settings + = CMakeProjectManager::Internal::CMakeProjectPlugin::projectTypeSpecificSettings(); + switch (settings->afterAddFileSetting()) { + case CMakeProjectManager::Internal::ASK_USER: { + bool checkValue{false}; + QDialogButtonBox::StandardButton reply = Utils::CheckableMessageBox::question( + nullptr, + QMessageBox::tr("Copy to Clipboard?"), + QMessageBox::tr("Files are not automatically added to the " + "CMakeLists.txt file of the CMake project." + "\nCopy the path to the source files to the clipboard?"), + "Remember My Choice", + &checkValue, + QDialogButtonBox::Yes | QDialogButtonBox::No, + QDialogButtonBox::Yes); + if (checkValue) { + if (QDialogButtonBox::Yes == reply) + settings->setAfterAddFileSetting( + CMakeProjectManager::Internal::AfterAddFileAction::COPY_FILE_PATH); + else if (QDialogButtonBox::No == reply) + settings->setAfterAddFileSetting( + CMakeProjectManager::Internal::AfterAddFileAction::NEVER_COPY_FILE_PATH); + + settings->toSettings(Core::ICore::settings()); + } + + if (QDialogButtonBox::Yes == reply) { + copySourcePathToClipboard(srcPath, node); + } + break; + } + + case CMakeProjectManager::Internal::COPY_FILE_PATH: { + copySourcePathToClipboard(srcPath, node); + break; + } + + case CMakeProjectManager::Internal::NEVER_COPY_FILE_PATH: + break; + } + } +} + +} // namespace + namespace CMakeProjectManager { namespace Internal { @@ -264,6 +336,32 @@ void CMakeBuildSystem::triggerParsing() m_buildDirManager.parse(); } +bool CMakeBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const +{ + if (dynamic_cast(context)) + return action == ProjectAction::AddNewFile; + + if (dynamic_cast(context)) + return action == ProjectAction::AddNewFile; + + return BuildSystem::supportsAction(context, action, node); +} + +bool CMakeBuildSystem::addFiles(Node *context, const QStringList &filePaths, QStringList *notAdded) +{ + if (auto n = dynamic_cast(context)) { + noAutoAdditionNotify(filePaths, n); + return true; // Return always true as autoadd is not supported! + } + + if (auto n = dynamic_cast(context)) { + noAutoAdditionNotify(filePaths, n); + return true; // Return always true as autoadd is not supported! + } + + return BuildSystem::addFiles(context, filePaths, notAdded); +} + QStringList CMakeBuildSystem::filesGeneratedFrom(const QString &sourceFile) const { QFileInfo fi(sourceFile); diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index 7fdb7b2d60a..a57d780d453 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -32,7 +32,8 @@ #include #include -#include +#include +#include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 15dae12a9c0..c99f1e64f7e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -30,16 +30,17 @@ #include #include -#include +#include -#include - -namespace ProjectExplorer { class Kit; } namespace Utils { class FilePath; class MacroExpander; } // namespace Utils +namespace ProjectExplorer { +class Kit; +} + namespace CMakeProjectManager { class CMAKE_EXPORT CMakeConfigItem { diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp index a3aef760e54..6948eedf00f 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp @@ -27,31 +27,20 @@ #include "cmakefilecompletionassist.h" #include "cmakeprojectconstants.h" -#include "cmakeproject.h" #include "cmakeindenter.h" #include "cmakeautocompleter.h" #include #include -#include -#include - -#include - -#include -#include - +#include #include -#include -#include -#include +#include +#include -#include -#include +#include using namespace Core; -using namespace ProjectExplorer; using namespace TextEditor; namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.h b/src/plugins/cmakeprojectmanager/cmakeeditor.h index 2eab78ed83d..a2f67bef40d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditor.h +++ b/src/plugins/cmakeprojectmanager/cmakeeditor.h @@ -25,7 +25,6 @@ #pragma once -#include #include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp index 07f350caf19..16489020169 100644 --- a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp +++ b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp @@ -24,19 +24,17 @@ ****************************************************************************/ #include "cmakefilecompletionassist.h" -#include "cmakeprojectconstants.h" -#include "cmakeprojectmanager.h" -#include "cmakesettingspage.h" -#include "cmaketoolmanager.h" + #include "cmakekitinformation.h" +#include "cmakeprojectconstants.h" +#include "cmaketool.h" #include -#include #include #include #include -#include +#include using namespace CMakeProjectManager::Internal; using namespace TextEditor; diff --git a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.h b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.h index 220ed6ce268..440bbcb6c0f 100644 --- a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.h +++ b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.h @@ -25,7 +25,6 @@ #pragma once -#include #include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmakeindenter.cpp b/src/plugins/cmakeprojectmanager/cmakeindenter.cpp index e281d532dbb..4d0503482ae 100644 --- a/src/plugins/cmakeprojectmanager/cmakeindenter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeindenter.cpp @@ -25,12 +25,6 @@ #include "cmakeindenter.h" -#include -#include - -#include -#include - namespace CMakeProjectManager { namespace Internal { diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index bf658479b3a..d875cbe7e2c 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -24,38 +24,37 @@ ****************************************************************************/ #include "cmakekitinformation.h" + #include "cmakeprojectconstants.h" #include "cmakeprojectplugin.h" #include "cmakespecificsettings.h" #include "cmaketool.h" #include "cmaketoolmanager.h" -#include #include #include -#include #include -#include #include #include #include #include + +#include + #include #include #include +#include #include #include #include #include -#include #include -#include #include #include #include #include -#include using namespace ProjectExplorer; diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp index a0a195ced60..290cabb868c 100644 --- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp @@ -24,15 +24,14 @@ ****************************************************************************/ #include "cmakelocatorfilter.h" -#include "cmakebuildconfiguration.h" + #include "cmakebuildstep.h" +#include "cmakebuildsystem.h" #include "cmakeproject.h" #include -#include #include #include -#include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakeparser.h b/src/plugins/cmakeprojectmanager/cmakeparser.h index b4667924c46..dfcf6d0c1b0 100644 --- a/src/plugins/cmakeprojectmanager/cmakeparser.h +++ b/src/plugins/cmakeprojectmanager/cmakeparser.h @@ -30,6 +30,8 @@ #include #include +#include + #include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp index c3fadbfe4ec..0e6d7a52ffb 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp @@ -33,14 +33,9 @@ #include #include -#include -#include #include #include -#include -#include -#include namespace CMakeProjectManager { namespace Internal { diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.h b/src/plugins/cmakeprojectmanager/cmakeprocess.h index 3c2bf70ee03..ed68f9f96c0 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.h +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.h @@ -33,6 +33,8 @@ #include #include +#include +#include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 54dc9802687..381f25e37bd 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -25,41 +25,19 @@ #include "cmakeproject.h" -#include "cmakebuildconfiguration.h" #include "cmakebuildstep.h" #include "cmakekitinformation.h" #include "cmakeprojectconstants.h" +#include "cmakeprojectimporter.h" #include "cmakeprojectnodes.h" -#include "cmakeprojectmanager.h" +#include "cmaketool.h" -#include -#include -#include -#include -#include +#include +#include #include -#include -#include -#include #include -#include #include #include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include using namespace ProjectExplorer; using namespace Utils; @@ -87,7 +65,10 @@ CMakeProject::CMakeProject(const FilePath &fileName) setHasMakeInstallEquivalent(true); } -CMakeProject::~CMakeProject() = default; +CMakeProject::~CMakeProject() +{ + delete m_projectImporter; +} Tasks CMakeProject::projectIssues(const Kit *k) const { @@ -105,8 +86,8 @@ Tasks CMakeProject::projectIssues(const Kit *k) const ProjectImporter *CMakeProject::projectImporter() const { if (!m_projectImporter) - m_projectImporter = std::make_unique(projectFilePath()); - return m_projectImporter.get(); + m_projectImporter = new CMakeProjectImporter(projectFilePath()); + return m_projectImporter; } bool CMakeProject::setupTarget(Target *t) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index 9266854a682..c96242b674a 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -27,18 +27,14 @@ #include "cmake_global.h" -#include "builddirmanager.h" -#include "cmakebuildsystem.h" -#include "cmakebuildtarget.h" -#include "cmakeprojectimporter.h" - -#include #include -#include - namespace CMakeProjectManager { +namespace Internal { +class CMakeProjectImporter; +} + class CMAKE_EXPORT CMakeProject final : public ProjectExplorer::Project { Q_OBJECT @@ -59,7 +55,7 @@ private: ProjectExplorer::MakeInstallCommand makeInstallCommand(const ProjectExplorer::Target *target, const QString &installRoot) override; - mutable std::unique_ptr m_projectImporter; + mutable Internal::CMakeProjectImporter *m_projectImporter = nullptr; friend class CMakeBuildSystem; }; diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h index 9938e0e194f..a59ac48c09d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h @@ -25,8 +25,6 @@ #pragma once -#include - namespace CMakeProjectManager { namespace Constants { diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp index ddfd3fd8f7c..f2d7ba55adc 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp @@ -31,8 +31,7 @@ #include "cmaketoolmanager.h" #include -#include -#include +#include #include #include @@ -40,9 +39,7 @@ #include #include -#include #include -#include #include using namespace ProjectExplorer; diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 0986554546d..69a8f0adf66 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -24,20 +24,17 @@ ****************************************************************************/ #include "cmakeprojectmanager.h" -#include "cmakebuildconfiguration.h" + +#include "cmakebuildsystem.h" #include "cmakekitinformation.h" -#include "cmakeprojectconstants.h" #include "cmakeproject.h" -#include "cmakesettingspage.h" -#include "cmaketoolmanager.h" +#include "cmakeprojectconstants.h" #include "cmakeprojectnodes.h" #include #include -#include #include #include -#include #include #include #include @@ -49,8 +46,6 @@ #include #include -#include -#include using namespace ProjectExplorer; using namespace CMakeProjectManager::Internal; diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp index fbb5f8deeea..6f130f2b1a6 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp @@ -25,98 +25,20 @@ #include "cmakeprojectnodes.h" -#include "cmakeconfigitem.h" -#include "cmakeproject.h" +#include "cmakebuildsystem.h" #include "cmakeprojectconstants.h" -#include "cmakeprojectplugin.h" -#include "cmakespecificsettings.h" #include - #include -#include -#include - #include -#include -#include -#include -#include #include -#include -#include -#include -#include - using namespace ProjectExplorer; namespace CMakeProjectManager { namespace Internal { -namespace { -void copySourcePathToClipboard(Utils::optional srcPath, - const ProjectExplorer::ProjectNode *node) -{ - QClipboard *clip = QGuiApplication::clipboard(); - - QDir projDir{node->filePath().toFileInfo().absoluteFilePath()}; - clip->setText(QDir::cleanPath(projDir.relativeFilePath(srcPath.value()))); -} - -void noAutoAdditionNotify(const QStringList &filePaths, const ProjectExplorer::ProjectNode *node) -{ - Utils::optional srcPath{}; - - for (const QString &file : filePaths) { - if (Utils::mimeTypeForFile(file).name() == CppTools::Constants::CPP_SOURCE_MIMETYPE) { - srcPath = file; - break; - } - } - - if (srcPath) { - CMakeSpecificSettings *settings = CMakeProjectPlugin::projectTypeSpecificSettings(); - switch (settings->afterAddFileSetting()) { - case CMakeProjectManager::Internal::ASK_USER: { - bool checkValue{false}; - QDialogButtonBox::StandardButton reply = - Utils::CheckableMessageBox::question(nullptr, - QMessageBox::tr("Copy to Clipboard?"), - QMessageBox::tr("Files are not automatically added to the " - "CMakeLists.txt file of the CMake project." - "\nCopy the path to the source files to the clipboard?"), - "Remember My Choice", &checkValue, QDialogButtonBox::Yes | QDialogButtonBox::No, - QDialogButtonBox::Yes); - if (checkValue) { - if (QDialogButtonBox::Yes == reply) - settings->setAfterAddFileSetting(AfterAddFileAction::COPY_FILE_PATH); - else if (QDialogButtonBox::No == reply) - settings->setAfterAddFileSetting(AfterAddFileAction::NEVER_COPY_FILE_PATH); - - settings->toSettings(Core::ICore::settings()); - } - - if (QDialogButtonBox::Yes == reply) { - copySourcePathToClipboard(srcPath, node); - } - break; - } - - case CMakeProjectManager::Internal::COPY_FILE_PATH: { - copySourcePathToClipboard(srcPath, node); - break; - } - - case CMakeProjectManager::Internal::NEVER_COPY_FILE_PATH: - break; - } - } -} - -} - CMakeInputsNode::CMakeInputsNode(const Utils::FilePath &cmakeLists) : ProjectExplorer::ProjectNode(cmakeLists) { @@ -157,21 +79,6 @@ QString CMakeProjectNode::tooltip() const return QString(); } -bool CMakeBuildSystem::addFiles(Node *context, const QStringList &filePaths, QStringList *notAdded) -{ - if (auto n = dynamic_cast(context)) { - noAutoAdditionNotify(filePaths, n); - return true; // Return always true as autoadd is not supported! - } - - if (auto n = dynamic_cast(context)) { - noAutoAdditionNotify(filePaths, n); - return true; // Return always true as autoadd is not supported! - } - - return BuildSystem::addFiles(context, filePaths, notAdded); -} - CMakeTargetNode::CMakeTargetNode(const Utils::FilePath &directory, const QString &target) : ProjectExplorer::ProjectNode(directory) { @@ -248,17 +155,6 @@ void CMakeTargetNode::setConfig(const CMakeConfig &config) m_config = config; } -bool CMakeBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const -{ - if (dynamic_cast(context)) - return action == ProjectAction::AddNewFile; - - if (dynamic_cast(context)) - return action == ProjectAction::AddNewFile; - - return BuildSystem::supportsAction(context, action, node); -} - Utils::optional CMakeTargetNode::visibleAfterAddFileAction() const { return filePath().pathAppended("CMakeLists.txt"); diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp index f4f5dc5cd22..1dae39f0362 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp @@ -25,31 +25,28 @@ #include "cmakeprojectplugin.h" -#include "cmakeeditor.h" +#include "cmakebuildconfiguration.h" #include "cmakebuildstep.h" +#include "cmakebuildsystem.h" +#include "cmakeeditor.h" +#include "cmakekitinformation.h" +#include "cmakelocatorfilter.h" #include "cmakeproject.h" #include "cmakeprojectconstants.h" #include "cmakeprojectmanager.h" #include "cmakeprojectnodes.h" -#include "cmakebuildconfiguration.h" -#include "cmakeprojectconstants.h" -#include "cmakelocatorfilter.h" #include "cmakesettingspage.h" -#include "cmaketoolmanager.h" -#include "cmakekitinformation.h" #include "cmakespecificsettings.h" +#include "cmakespecificsettingspage.h" +#include "cmaketoolmanager.h" #include #include #include #include - -#include +#include #include #include -#include -#include - #include #include diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h index c8a50219f41..84c13c3bd99 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h @@ -25,21 +25,21 @@ #pragma once -#include "cmakespecificsettingspage.h" - #include namespace CMakeProjectManager { namespace Internal { -class CMakeProjectPlugin : public ExtensionSystem::IPlugin +class CMakeSpecificSettings; + +class CMakeProjectPlugin final : public ExtensionSystem::IPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CMakeProjectManager.json") public: static CMakeSpecificSettings *projectTypeSpecificSettings(); - ~CMakeProjectPlugin() override; + ~CMakeProjectPlugin(); #ifdef WITH_TESTS private slots: @@ -60,8 +60,8 @@ private slots: #endif private: - bool initialize(const QStringList &arguments, QString *errorMessage) override; - void extensionsInitialized() override; + bool initialize(const QStringList &arguments, QString *errorMessage); + void extensionsInitialized(); void updateContextActions(); diff --git a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp index 4c7819dd6bc..98ad0b9c4f4 100644 --- a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp +++ b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp @@ -23,31 +23,35 @@ ** ****************************************************************************/ -#include "cmakeprojectconstants.h" #include "cmakesettingspage.h" + +#include "cmakeprojectconstants.h" +#include "cmaketool.h" #include "cmaketoolmanager.h" -#include +#include #include -#include + #include -#include +#include #include #include #include #include #include +#include #include +#include #include #include #include #include #include #include +#include #include #include -#include using namespace Utils; @@ -121,7 +125,7 @@ public: } CMakeToolTreeItem(const QString &name, - const Utils::FilePath &executable, + const FilePath &executable, const FilePath &qchFile, bool autoRun, bool autoCreate, diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h index ca94bc2c73b..4a4c51b461a 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h @@ -24,7 +24,9 @@ ****************************************************************************/ #pragma once + #include + #include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmaketool.cpp b/src/plugins/cmakeprojectmanager/cmaketool.cpp index c602543681f..81010f7e1e7 100644 --- a/src/plugins/cmakeprojectmanager/cmaketool.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketool.cpp @@ -24,23 +24,21 @@ ****************************************************************************/ #include "cmaketool.h" + #include "cmaketoolmanager.h" #include #include -#include #include #include -#include #include #include -#include #include #include -#include #include -#include + +#include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/cmaketool.h b/src/plugins/cmakeprojectmanager/cmaketool.h index 8c88ec40d4f..40a79071cff 100644 --- a/src/plugins/cmakeprojectmanager/cmaketool.h +++ b/src/plugins/cmakeprojectmanager/cmaketool.h @@ -34,10 +34,6 @@ #include #include -#include -#include -#include - QT_FORWARD_DECLARE_CLASS(QProcess) namespace ProjectExplorer { class Kit; } diff --git a/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp b/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp index fd7af452c76..aeb33ba7545 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketoolmanager.cpp @@ -34,8 +34,6 @@ #include using namespace Core; -using namespace Utils; -using namespace ProjectExplorer; namespace CMakeProjectManager { @@ -139,7 +137,7 @@ void CMakeToolManager::setDefaultCMakeTool(const Id &id) ensureDefaultCMakeToolIsValid(); } -CMakeTool *CMakeToolManager::findByCommand(const FilePath &command) +CMakeTool *CMakeToolManager::findByCommand(const Utils::FilePath &command) { return Utils::findOrDefault(d->m_cmakeTools, Utils::equal(&CMakeTool::cmakeExecutable, command)); } diff --git a/src/plugins/cmakeprojectmanager/cmaketoolmanager.h b/src/plugins/cmakeprojectmanager/cmaketoolmanager.h index c91f6498501..7b3e3c4aa02 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolmanager.h +++ b/src/plugins/cmakeprojectmanager/cmaketoolmanager.h @@ -26,14 +26,17 @@ #pragma once #include "cmake_global.h" + #include "cmaketool.h" +#include + #include -#include -#include #include +#include + namespace CMakeProjectManager { class CMAKE_EXPORT CMakeToolManager : public QObject @@ -41,7 +44,7 @@ class CMAKE_EXPORT CMakeToolManager : public QObject Q_OBJECT public: CMakeToolManager(); - ~CMakeToolManager() override; + ~CMakeToolManager(); static CMakeToolManager *instance(); diff --git a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp index 7e7b311f72c..4d90eb80993 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp @@ -31,9 +31,9 @@ #include #include +#include #include -#include #include #include diff --git a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.h b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.h index 05c7ac69207..0e85b43dfcc 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.h +++ b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.h @@ -29,10 +29,6 @@ #include -#include - -#include - namespace Core { class Id; } namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/configmodel.cpp b/src/plugins/cmakeprojectmanager/configmodel.cpp index c402478d3c4..b6134b14fa0 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.cpp +++ b/src/plugins/cmakeprojectmanager/configmodel.cpp @@ -31,7 +31,6 @@ #include #include -#include #include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/configmodel.h b/src/plugins/cmakeprojectmanager/configmodel.h index 3b0c8ffa6d4..5844c388f96 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.h +++ b/src/plugins/cmakeprojectmanager/configmodel.h @@ -27,9 +27,10 @@ #include "cmakeconfigitem.h" -#include #include +#include + namespace CMakeProjectManager { namespace Internal { class ConfigModelTreeItem; } diff --git a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp index a4a6320d1c9..d111ac0b6a9 100644 --- a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp +++ b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.cpp @@ -25,14 +25,12 @@ ****************************************************************************/ #include "configmodelitemdelegate.h" + #include "configmodel.h" #include -#include #include -#include -#include namespace CMakeProjectManager { diff --git a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.h b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.h index 5df8decd113..d2ccf2c3d9f 100644 --- a/src/plugins/cmakeprojectmanager/configmodelitemdelegate.h +++ b/src/plugins/cmakeprojectmanager/configmodelitemdelegate.h @@ -26,11 +26,11 @@ #pragma once +#include + #include #include -#include - namespace CMakeProjectManager { class ConfigModelItemDelegate : public QStyledItemDelegate diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index 0a6aac06db1..02800c494a5 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -25,11 +25,9 @@ #include "fileapidataextractor.h" -#include "cmakeprojectnodes.h" +#include "fileapiparser.h" #include "projecttreehelper.h" -#include - #include #include #include diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.h b/src/plugins/cmakeprojectmanager/fileapidataextractor.h index 403e041a622..f89da90296c 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.h +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.h @@ -25,19 +25,24 @@ #pragma once -#include "fileapiparser.h" - #include "cmakebuildtarget.h" -#include "cmakeprocess.h" #include "cmakeprojectnodes.h" #include +#include + +#include +#include +#include + #include namespace CMakeProjectManager { namespace Internal { +class FileApiData; + class FileApiQtcData { public: diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.cpp b/src/plugins/cmakeprojectmanager/fileapiparser.cpp index f1eb1e8aaac..7c33eedfd62 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.cpp +++ b/src/plugins/cmakeprojectmanager/fileapiparser.cpp @@ -26,13 +26,11 @@ #include "fileapiparser.h" #include -#include #include #include #include -#include #include #include #include diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.h b/src/plugins/cmakeprojectmanager/fileapiparser.h index 0a5d19649ee..98fc552b2a7 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.h +++ b/src/plugins/cmakeprojectmanager/fileapiparser.h @@ -33,7 +33,11 @@ #include #include -#include +#include +#include +#include + +#include namespace CMakeProjectManager { namespace Internal { diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 665d690859f..9ea5690cbff 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -25,25 +25,12 @@ #include "fileapireader.h" -#include "cmakebuildconfiguration.h" -#include "cmakeprojectconstants.h" -#include "cmakeprojectmanager.h" #include "fileapidataextractor.h" #include "projecttreehelper.h" -#include -#include -#include -#include #include -#include -#include -#include -#include #include -#include -#include #include #include diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h index 560aafc779a..2be34a7c2c6 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.h +++ b/src/plugins/cmakeprojectmanager/fileapireader.h @@ -27,15 +27,14 @@ #include "builddirreader.h" #include "fileapiparser.h" - #include "cmakeprocess.h" #include -#include - #include +#include + namespace ProjectExplorer { class ProjectNode; } diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.h b/src/plugins/cmakeprojectmanager/projecttreehelper.h index 1371330f702..a591cabf0e1 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.h +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.h @@ -25,8 +25,6 @@ #include "cmakeprojectnodes.h" -#include - #include #include diff --git a/src/plugins/cmakeprojectmanager/servermode.cpp b/src/plugins/cmakeprojectmanager/servermode.cpp index bfd52f793b9..1faa6eb012d 100644 --- a/src/plugins/cmakeprojectmanager/servermode.cpp +++ b/src/plugins/cmakeprojectmanager/servermode.cpp @@ -25,17 +25,10 @@ #include "servermode.h" -#include #include -#include #include -#include -#include -#include -#include -#include #include #include #include diff --git a/src/plugins/cmakeprojectmanager/servermode.h b/src/plugins/cmakeprojectmanager/servermode.h index a7eff58eb6e..d527bdb7159 100644 --- a/src/plugins/cmakeprojectmanager/servermode.h +++ b/src/plugins/cmakeprojectmanager/servermode.h @@ -25,12 +25,15 @@ #pragma once +#include +#include #include #include +#include +#include #include #include -#include #include @@ -116,7 +119,6 @@ private: const int m_minorProtocol = -1; int m_requestCounter = 0; - }; } // namespace Internal diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 1f61257a893..85ead8eadd3 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -25,26 +25,15 @@ #include "servermodereader.h" -#include "cmakebuildconfiguration.h" -#include "cmakeprojectconstants.h" -#include "cmakeprojectmanager.h" -#include "cmakeprojectnodes.h" -#include "servermode.h" +#include "cmakeparser.h" #include "projecttreehelper.h" -#include #include #include -#include -#include #include #include #include -#include -#include - -#include using namespace ProjectExplorer; using namespace Utils; diff --git a/src/plugins/cmakeprojectmanager/servermodereader.h b/src/plugins/cmakeprojectmanager/servermodereader.h index 8fe8a0a7145..a93b91e6fa9 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.h +++ b/src/plugins/cmakeprojectmanager/servermodereader.h @@ -26,16 +26,22 @@ #pragma once #include "builddirreader.h" +#include "cmakeconfigitem.h" #include "servermode.h" -#include "cmakeparser.h" + +#include #include +#include #include namespace ProjectExplorer { class ProjectNode; } namespace CMakeProjectManager { + +class CMakeParser; + namespace Internal { class ServerModeReader final : public BuildDirReader