summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-03-29 11:25:01 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-03-29 11:53:24 +0000
commitb0c7bb0f7b866ac6f8f41b0c1b148f97fabbfa5f (patch)
treeb3b04932567e1da2b0e997a37d191ab8a175d364
parent6829e33dc25051b35d665edeada4d668875ad0e5 (diff)
downloadqt-creator-b0c7bb0f7b866ac6f8f41b0c1b148f97fabbfa5f.tar.gz
Project: Move ProjectDocument setup into Project class
Change-Id: I5c0ec79ddf066e37660fb9a6b24f9d882355d511 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsproject.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp6
-rw-r--r--src/plugins/cpptools/modelmanagertesthelper.cpp4
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp7
-rw-r--r--src/plugins/nim/project/nimproject.cpp3
-rw-r--r--src/plugins/projectexplorer/project.cpp15
-rw-r--r--src/plugins/projectexplorer/project.h4
-rw-r--r--src/plugins/pythoneditor/pythoneditorplugin.cpp5
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp2
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp2
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp4
11 files changed, 23 insertions, 31 deletions
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
index e8b36cbf87..a4a733d0cd 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
@@ -68,11 +68,11 @@ using namespace AutotoolsProjectManager::Internal;
using namespace ProjectExplorer;
AutotoolsProject::AutotoolsProject(const Utils::FileName &fileName) :
+ Project(Constants::MAKEFILE_MIMETYPE, fileName),
m_fileWatcher(new Utils::FileSystemWatcher(this)),
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
{
setId(Constants::AUTOTOOLS_PROJECT_ID);
- setDocument(new ProjectExplorer::ProjectDocument(Constants::MAKEFILE_MIMETYPE, fileName));
setProjectContext(Core::Context(Constants::PROJECT_CONTEXT));
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index f850ee0af0..4bf0f0dcdc 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -73,12 +73,10 @@ using namespace Internal;
/*!
\class CMakeProject
*/
-CMakeProject::CMakeProject(const FileName &fileName)
- : m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
+CMakeProject::CMakeProject(const FileName &fileName) : Project(Constants::CMAKEMIMETYPE, fileName),
+ m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
{
setId(CMakeProjectManager::Constants::CMAKEPROJECT_ID);
- setDocument(new ProjectDocument(CMakeProjectManager::Constants::CMAKEMIMETYPE, fileName));
-
setProjectContext(Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT));
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
diff --git a/src/plugins/cpptools/modelmanagertesthelper.cpp b/src/plugins/cpptools/modelmanagertesthelper.cpp
index f347cd81af..9eebbee15d 100644
--- a/src/plugins/cpptools/modelmanagertesthelper.cpp
+++ b/src/plugins/cpptools/modelmanagertesthelper.cpp
@@ -36,7 +36,9 @@
using namespace CppTools::Internal;
using namespace CppTools::Tests;
-TestProject::TestProject(const QString &name, QObject *parent) : m_name (name)
+TestProject::TestProject(const QString &name, QObject *parent) :
+ ProjectExplorer::Project("x-binary/foo", Utils::FileName()),
+ m_name(name)
{
setParent(parent);
setId(Core::Id::fromString(name));
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index b991793e76..6dae648a5f 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -65,12 +65,11 @@ namespace Internal {
//
////////////////////////////////////////////////////////////////////////////////////
-GenericProject::GenericProject(const Utils::FileName &fileName)
- : m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
+GenericProject::GenericProject(const Utils::FileName &fileName) :
+ Project(Constants::GENERICMIMETYPE, fileName, [this]() { refresh(Everything); }),
+ m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
{
setId(Constants::GENERICPROJECT_ID);
- setDocument(new ProjectDocument(Constants::GENERICMIMETYPE, fileName,
- [this]() { refresh(Everything); }));
setProjectContext(Context(GenericProjectManager::Constants::PROJECTCONTEXT));
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
diff --git a/src/plugins/nim/project/nimproject.cpp b/src/plugins/nim/project/nimproject.cpp
index 483edfc7be..39c8ac3e80 100644
--- a/src/plugins/nim/project/nimproject.cpp
+++ b/src/plugins/nim/project/nimproject.cpp
@@ -54,10 +54,9 @@ namespace Nim {
const int MIN_TIME_BETWEEN_PROJECT_SCANS = 4500;
-NimProject::NimProject(const FileName &fileName)
+NimProject::NimProject(const FileName &fileName) : Project(Constants::C_NIM_MIMETYPE, fileName)
{
setId(Constants::C_NIMPROJECT_ID);
- setDocument(new ProjectDocument(Constants::C_NIM_MIMETYPE, fileName));
m_projectScanTimer.setSingleShot(true);
connect(&m_projectScanTimer, &QTimer::timeout, this, &NimProject::collectProjectFiles);
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index 38be84ad80..214dedc332 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -126,7 +126,9 @@ bool ProjectDocument::reload(QString *errorString, Core::IDocument::ReloadFlag f
class ProjectPrivate
{
public:
- ProjectPrivate(Project *owner) : m_containerNode(owner) {}
+ ProjectPrivate(Project *owner, Core::IDocument *document) :
+ m_document(document), m_containerNode(owner)
+ { }
~ProjectPrivate();
Core::Id m_id;
@@ -158,7 +160,9 @@ ProjectPrivate::~ProjectPrivate()
delete m_accessor;
}
-Project::Project() : d(new ProjectPrivate(this))
+Project::Project(const QString &mimeType, const Utils::FileName &fileName,
+ const ProjectDocument::ProjectCallback &callback) :
+ d(new ProjectPrivate(this, new ProjectDocument(mimeType, fileName, callback)))
{
d->m_macroExpander.setDisplayName(tr("Project"));
d->m_macroExpander.registerVariable("Project:Name", tr("Project Name"),
@@ -453,13 +457,6 @@ void Project::setId(Core::Id id)
d->m_id = id;
}
-void Project::setDocument(Core::IDocument *doc)
-{
- QTC_ASSERT(doc, return);
- QTC_ASSERT(!d->m_document, return);
- d->m_document = doc;
-}
-
void Project::setRootProjectNode(ProjectNode *root)
{
if (d->m_rootProjectNode == root)
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index a54828e54d..343643b281 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -88,7 +88,8 @@ public:
EnabledRole
};
- Project();
+ Project(const QString &mimeType, const Utils::FileName &fileName,
+ const ProjectDocument::ProjectCallback &callback = {});
~Project() override;
virtual QString displayName() const = 0;
@@ -193,7 +194,6 @@ protected:
void setPreferredKitPredicate(const Kit::Predicate &predicate);
void setId(Core::Id id);
- void setDocument(Core::IDocument *doc); // takes ownership!
void setRootProjectNode(ProjectNode *root); // takes ownership!
void setProjectContext(Core::Context context);
void setProjectLanguages(Core::Context language);
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index 7dbe7953ff..1e97696fb3 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -375,11 +375,10 @@ private:
}
};
-PythonProject::PythonProject(const FileName &fileName)
+PythonProject::PythonProject(const FileName &fileName) :
+ Project(Constants::C_PY_MIMETYPE, fileName, [this]() { refresh(); })
{
setId(PythonProjectId);
- setDocument(new ProjectDocument(Constants::C_PY_MIMETYPE, fileName, [this]() { refresh(); }));
-
setProjectContext(Context(PythonProjectContext));
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
}
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 145d78b71b..5e1abd4c3a 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -116,6 +116,7 @@ private:
// --------------------------------------------------------------------
QbsProject::QbsProject(const FileName &fileName) :
+ Project(Constants::MIME_TYPE, fileName, [this]() { delayParsing(); }),
m_qbsProjectParser(0),
m_qbsUpdateFutureInterface(0),
m_parsingScheduled(false),
@@ -127,7 +128,6 @@ QbsProject::QbsProject(const FileName &fileName) :
m_parsingDelay.setInterval(1000); // delay parsing by 1s.
setId(Constants::PROJECT_ID);
- setDocument(new ProjectDocument(Constants::MIME_TYPE, fileName, [this]() { delayParsing(); }));
setProjectContext(Context(Constants::PROJECT_ID));
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index 3ca2d9ea8a..2aff80e3f1 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -158,12 +158,12 @@ static QList<QmakeProject *> s_projects;
*/
QmakeProject::QmakeProject(const FileName &fileName) :
+ Project(QmakeProjectManager::Constants::PROFILE_MIMETYPE, fileName),
m_qmakeVfs(new QMakeVfs),
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
{
s_projects.append(this);
setId(Constants::QMAKEPROJECT_ID);
- setDocument(new ProjectDocument(QmakeProjectManager::Constants::PROFILE_MIMETYPE, fileName));
setProjectContext(Core::Context(QmakeProjectManager::Constants::PROJECT_ID));
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
setRequiredKitPredicate(QtSupport::QtKitInformation::qtVersionPredicate());
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 096fca8a2f..601f153582 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -55,12 +55,10 @@ using namespace ProjectExplorer;
namespace QmlProjectManager {
QmlProject::QmlProject(const Utils::FileName &fileName) :
+ Project(QString::fromLatin1(Constants::QMLPROJECT_MIMETYPE), fileName, [this]() { refreshProjectFile(); }),
m_defaultImport(UnknownImport)
{
setId("QmlProjectManager.QmlProject");
- setDocument(new ProjectDocument(QString::fromLatin1(Constants::QMLPROJECT_MIMETYPE), fileName,
- [this]() { refreshProjectFile(); }));
-
setProjectContext(Context(QmlProjectManager::Constants::PROJECTCONTEXT));
setProjectLanguages(Context(ProjectExplorer::Constants::QMLJS_LANGUAGE_ID));
}