From 4d3c297d024a86201d70d478beffa61176ac1e82 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 15 Mar 2017 13:40:21 +0100 Subject: [PATCH] GenericProject: Code cleanup Remove unused code from project node, access own members directly, etc. Change-Id: Icbffb4d3328757ffe3aa756ca1448fefba9bb00a Reviewed-by: Tim Jenssen --- .../genericbuildconfiguration.cpp | 3 + .../genericprojectmanager/genericmakestep.cpp | 4 +- .../genericprojectmanager/genericproject.cpp | 167 +++++++++++------- .../genericprojectmanager/genericproject.h | 28 --- .../genericprojectmanager.pro | 4 +- .../genericprojectmanager.qbs | 2 - .../genericprojectnodes.cpp | 113 ------------ .../genericprojectnodes.h | 59 ------- 8 files changed, 111 insertions(+), 269 deletions(-) delete mode 100644 src/plugins/genericprojectmanager/genericprojectnodes.cpp delete mode 100644 src/plugins/genericprojectmanager/genericprojectnodes.h diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index 1e2f38ea62e..461232e4c87 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -30,11 +30,14 @@ #include "genericprojectconstants.h" #include + #include #include #include #include +#include #include + #include #include #include diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 4046106eee5..8569a994efa 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -29,15 +29,17 @@ #include "ui_genericmakestep.h" #include "genericbuildconfiguration.h" -#include #include #include #include #include #include +#include #include + #include #include + #include #include #include diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp index c8b14a125d5..be174cae0de 100644 --- a/src/plugins/genericprojectmanager/genericproject.cpp +++ b/src/plugins/genericprojectmanager/genericproject.cpp @@ -32,11 +32,13 @@ #include #include #include +#include + #include #include #include #include -#include + #include #include #include @@ -44,13 +46,20 @@ #include #include #include +#include +#include + #include #include + #include #include #include #include +#include +#include +#include using namespace Core; using namespace ProjectExplorer; @@ -59,6 +68,89 @@ using namespace Utils; namespace GenericProjectManager { namespace Internal { +//////////////////////////////////////////////////////////////////////////////////// +// +// GenericProjectFile +// +//////////////////////////////////////////////////////////////////////////////////// + +class GenericProjectFile : public Core::IDocument +{ +public: + GenericProjectFile(GenericProject *parent, const FileName &fileName, + GenericProject::RefreshOptions options) : + m_project(parent), + m_options(options) + { + setId("Generic.ProjectFile"); + setMimeType(Constants::GENERICMIMETYPE); + setFilePath(fileName); + } + + ReloadBehavior reloadBehavior(ChangeTrigger, ChangeType) const final + { + return BehaviorSilent; + } + + bool reload(QString *errorString, ReloadFlag flag, ChangeType type) override + { + Q_UNUSED(errorString); + Q_UNUSED(flag); + if (type == TypePermissions) + return true; + m_project->refresh(m_options); + return true; + } + +private: + GenericProject *m_project = nullptr; + GenericProject::RefreshOptions m_options; +}; + + +//////////////////////////////////////////////////////////////////////////////////// +// +// GenericProjectNode +// +//////////////////////////////////////////////////////////////////////////////////// + +class GenericProjectNode : public ProjectNode +{ +public: + explicit GenericProjectNode(GenericProject *project) : + ProjectNode(project->projectDirectory()), + m_project(project) + { + setDisplayName(project->projectFilePath().toFileInfo().completeBaseName()); + } + + bool showInSimpleTree() const override { return true; } + + QList supportedActions(Node *) const override + { + return {AddNewFile, AddExistingFile, AddExistingDirectory, RemoveFile, Rename}; + } + + bool addFiles(const QStringList &filePaths, QStringList * = 0) override + { + return m_project->addFiles(filePaths); + } + + bool removeFiles(const QStringList &filePaths, QStringList * = 0) override + { + return m_project->removeFiles(filePaths); + } + + bool renameFile(const QString &filePath, const QString &newFilePath) override + { + return m_project->renameFile(filePath, newFilePath); + } + +private: + GenericProject *m_project = nullptr; +}; + + //////////////////////////////////////////////////////////////////////////////////// // // GenericProject @@ -97,21 +189,6 @@ GenericProject::~GenericProject() delete m_cppCodeModelUpdater; } -QString GenericProject::filesFileName() const -{ - return m_filesFileName; -} - -QString GenericProject::includesFileName() const -{ - return m_includesFileName; -} - -QString GenericProject::configFileName() const -{ - return m_configFileName; -} - static QStringList readLines(const QString &absoluteFileName) { QStringList lines; @@ -134,7 +211,7 @@ static QStringList readLines(const QString &absoluteFileName) bool GenericProject::saveRawFileList(const QStringList &rawFileList) { - bool result = saveRawList(rawFileList, filesFileName()); + bool result = saveRawList(rawFileList, m_filesFileName); refresh(GenericProject::Files); return result; } @@ -168,7 +245,7 @@ bool GenericProject::addFiles(const QStringList &filePaths) for (const QString &filePath : filePaths) insertSorted(&newList, baseDir.relativeFilePath(filePath)); - const QSet includes = projectIncludePaths().toSet(); + const QSet includes = m_projectIncludePaths.toSet(); QSet toAdd; for (const QString &filePath : filePaths) { @@ -186,8 +263,8 @@ bool GenericProject::addFiles(const QStringList &filePaths) m_rawProjectIncludePaths.append(relative); } - bool result = saveRawList(newList, filesFileName()); - result &= saveRawList(m_rawProjectIncludePaths, includesFileName()); + bool result = saveRawList(newList, m_filesFileName); + result &= saveRawList(m_rawProjectIncludePaths, m_includesFileName); refresh(GenericProject::Everything); return result; @@ -238,12 +315,12 @@ void GenericProject::parseProject(RefreshOptions options) { if (options & Files) { m_rawListEntries.clear(); - m_rawFileList = readLines(filesFileName()); + m_rawFileList = readLines(m_filesFileName); m_files = processEntries(m_rawFileList, &m_rawListEntries); } if (options & Configuration) { - m_rawProjectIncludePaths = readLines(includesFileName()); + m_rawProjectIncludePaths = readLines(m_includesFileName); m_projectIncludePaths = processEntries(m_rawProjectIncludePaths); // TODO: Possibly load some configuration from the project file @@ -261,7 +338,7 @@ void GenericProject::refresh(RefreshOptions options) if (options & Files) { auto newRoot = new GenericProjectNode(this); - for (const QString &f : files()) { + for (const QString &f : m_files) { FileType fileType = FileType::Source; // ### FIXME if (f.endsWith(".qrc")) fileType = FileType::Resource; @@ -362,9 +439,9 @@ void GenericProject::refreshCppCodeModel() rpp.setDisplayName(displayName()); rpp.setProjectFileLocation(projectFilePath().toString()); rpp.setQtVersion(activeQtVersion); - rpp.setIncludePaths(projectIncludePaths()); - rpp.setConfigFileName(configFileName()); - rpp.setFiles(files()); + rpp.setIncludePaths(m_projectIncludePaths); + rpp.setConfigFileName(m_configFileName); + rpp.setFiles(m_files); const CppTools::ProjectUpdateInfo projectInfoUpdate(this, cToolChain, cxxToolChain, k, {rpp}); m_cppCodeModelUpdater->update(projectInfoUpdate); @@ -392,11 +469,6 @@ void GenericProject::activeBuildConfigurationWasChanged() refresh(Everything); } -QStringList GenericProject::projectIncludePaths() const -{ - return m_projectIncludePaths; -} - QStringList GenericProject::files() const { return m_files; @@ -455,38 +527,5 @@ Project::RestoreResult GenericProject::fromMap(const QVariantMap &map, QString * return RestoreResult::Ok; } -//////////////////////////////////////////////////////////////////////////////////// -// -// GenericProjectFile -// -//////////////////////////////////////////////////////////////////////////////////// - -GenericProjectFile::GenericProjectFile(GenericProject *parent, const Utils::FileName &fileName, - GenericProject::RefreshOptions options) : - m_project(parent), - m_options(options) -{ - setId("Generic.ProjectFile"); - setMimeType(Constants::GENERICMIMETYPE); - setFilePath(fileName); -} - -IDocument::ReloadBehavior GenericProjectFile::reloadBehavior(ChangeTrigger state, ChangeType type) const -{ - Q_UNUSED(state); - Q_UNUSED(type); - return BehaviorSilent; -} - -bool GenericProjectFile::reload(QString *errorString, ReloadFlag flag, ChangeType type) -{ - Q_UNUSED(errorString); - Q_UNUSED(flag); - if (type == TypePermissions) - return true; - m_project->refresh(m_options); - return true; -} - } // namespace Internal } // namespace GenericProjectManager diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h index c63614ed6fa..3b14c0b11d1 100644 --- a/src/plugins/genericprojectmanager/genericproject.h +++ b/src/plugins/genericprojectmanager/genericproject.h @@ -25,16 +25,7 @@ #pragma once -#include "genericprojectnodes.h" - #include -#include -#include -#include -#include -#include - -#include namespace CppTools { class CppProjectUpdater; } @@ -51,10 +42,6 @@ public: explicit GenericProject(const Utils::FileName &filename); ~GenericProject() override; - QString filesFileName() const; - QString includesFileName() const; - QString configFileName() const; - QString displayName() const override; QStringList files(FilesMode fileMode) const override; @@ -74,7 +61,6 @@ public: void refresh(RefreshOptions options); - QStringList projectIncludePaths() const; QStringList files() const; protected: @@ -108,19 +94,5 @@ private: ProjectExplorer::Target *m_activeTarget = nullptr; }; -class GenericProjectFile : public Core::IDocument -{ -public: - GenericProjectFile(GenericProject *parent, const Utils::FileName &fileName, - GenericProject::RefreshOptions options); - - ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const override; - bool reload(QString *errorString, ReloadFlag flag, ChangeType type) override; - -private: - GenericProject *m_project; - GenericProject::RefreshOptions m_options; -}; - } // namespace Internal } // namespace GenericProjectManager diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.pro b/src/plugins/genericprojectmanager/genericprojectmanager.pro index b4a8cf0631a..ba645697833 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.pro +++ b/src/plugins/genericprojectmanager/genericprojectmanager.pro @@ -3,20 +3,20 @@ include(../../qtcreatorplugin.pri) HEADERS = genericproject.h \ genericprojectplugin.h \ genericprojectconstants.h \ - genericprojectnodes.h \ genericprojectwizard.h \ genericprojectfileseditor.h \ genericmakestep.h \ genericbuildconfiguration.h \ filesselectionwizardpage.h + SOURCES = genericproject.cpp \ genericprojectplugin.cpp \ - genericprojectnodes.cpp \ genericprojectwizard.cpp \ genericprojectfileseditor.cpp \ genericmakestep.cpp \ genericbuildconfiguration.cpp \ filesselectionwizardpage.cpp + FORMS += genericmakestep.ui equals(TEST, 1) { diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.qbs b/src/plugins/genericprojectmanager/genericprojectmanager.qbs index 74fc022ec23..be30ddffad6 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.qbs +++ b/src/plugins/genericprojectmanager/genericprojectmanager.qbs @@ -30,8 +30,6 @@ QtcPlugin { "genericprojectconstants.h", "genericprojectfileseditor.cpp", "genericprojectfileseditor.h", - "genericprojectnodes.cpp", - "genericprojectnodes.h", "genericprojectplugin.cpp", "genericprojectplugin.h", "genericprojectwizard.cpp", diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp deleted file mode 100644 index bdd7b71cdf1..00000000000 --- a/src/plugins/genericprojectmanager/genericprojectnodes.cpp +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 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 "genericprojectnodes.h" -#include "genericproject.h" - -#include -#include - -#include -#include - -#include - -using namespace ProjectExplorer; - -namespace GenericProjectManager { -namespace Internal { - -GenericProjectNode::GenericProjectNode(GenericProject *project) : - ProjectNode(project->projectDirectory()), - m_project(project) -{ - setDisplayName(project->projectFilePath().toFileInfo().completeBaseName()); -} - -QHash sortFilesIntoPaths(const QString &base, const QSet &files) -{ - QHash filesInPath; - const QDir baseDir(base); - - foreach (const QString &absoluteFileName, files) { - QFileInfo fileInfo(absoluteFileName); - Utils::FileName absoluteFilePath = Utils::FileName::fromString(fileInfo.path()); - QString relativeFilePath; - - if (absoluteFilePath.isChildOf(baseDir)) { - relativeFilePath = absoluteFilePath.relativeChildPath(Utils::FileName::fromString(base)).toString(); - } else { - // `file' is not part of the project. - relativeFilePath = baseDir.relativeFilePath(absoluteFilePath.toString()); - if (relativeFilePath.endsWith('/')) - relativeFilePath.chop(1); - } - - if (relativeFilePath == ".") - relativeFilePath.clear(); - - filesInPath[relativeFilePath].append(absoluteFileName); - } - return filesInPath; -} - -bool GenericProjectNode::showInSimpleTree() const -{ - return true; -} - -QList GenericProjectNode::supportedActions(Node *node) const -{ - Q_UNUSED(node); - return { - AddNewFile, - AddExistingFile, - AddExistingDirectory, - RemoveFile, - Rename - }; -} - -bool GenericProjectNode::addFiles(const QStringList &filePaths, QStringList *notAdded) -{ - Q_UNUSED(notAdded) - - return m_project->addFiles(filePaths); -} - -bool GenericProjectNode::removeFiles(const QStringList &filePaths, QStringList *notRemoved) -{ - Q_UNUSED(notRemoved) - - return m_project->removeFiles(filePaths); -} - -bool GenericProjectNode::renameFile(const QString &filePath, const QString &newFilePath) -{ - return m_project->renameFile(filePath, newFilePath); -} - -} // namespace Internal -} // namespace GenericProjectManager diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.h b/src/plugins/genericprojectmanager/genericprojectnodes.h deleted file mode 100644 index 3c51d75fa4c..00000000000 --- a/src/plugins/genericprojectmanager/genericprojectnodes.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 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 - -#include -#include -#include - -namespace Core { class IDocument; } - -namespace GenericProjectManager { -namespace Internal { - -class GenericProject; - -class GenericProjectNode : public ProjectExplorer::ProjectNode -{ -public: - explicit GenericProjectNode(GenericProject *project); - - bool showInSimpleTree() const override; - - QList supportedActions(Node *node) const override; - - bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0) override; - bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = 0) override; - bool renameFile(const QString &filePath, const QString &newFilePath) override; - -private: - GenericProject *const m_project; -}; - -} // namespace Internal -} // namespace GenericProjectManager