forked from qt-creator/qt-creator
ProjectExplorer: Handle project file list globally
Handle the generation of the list of files in a project globally, based on the project tree. Creator now has the concept of TreeManagers which can enrich the project tree with additional data (e.g. the files found in a resource file), which the project does not necessarily know about. So use that tree to find the files that belong to a project instead of implementing similar features in each project. Change-Id: Ia375a914a1f2c0adaa427f9eda834eec2db07f68 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Marco Benelli <marco.benelli@qt.io>
This commit is contained in:
@@ -168,9 +168,6 @@ void QmlProject::parseProject(RefreshOptions options)
|
||||
if (options & Configuration) {
|
||||
// update configuration
|
||||
}
|
||||
|
||||
if (options & Files)
|
||||
emit fileListChanged();
|
||||
}
|
||||
|
||||
void QmlProject::refresh(RefreshOptions options)
|
||||
@@ -195,16 +192,6 @@ void QmlProject::refresh(RefreshOptions options)
|
||||
emit parsingFinished();
|
||||
}
|
||||
|
||||
QStringList QmlProject::files() const
|
||||
{
|
||||
QStringList files;
|
||||
if (m_projectItem)
|
||||
files = m_projectItem.data()->files();
|
||||
else
|
||||
files = m_files;
|
||||
return files;
|
||||
}
|
||||
|
||||
QString QmlProject::mainFile() const
|
||||
{
|
||||
if (m_projectItem)
|
||||
@@ -296,11 +283,6 @@ Internal::QmlProjectNode *QmlProject::rootProjectNode() const
|
||||
return static_cast<Internal::QmlProjectNode *>(Project::rootProjectNode());
|
||||
}
|
||||
|
||||
QStringList QmlProject::files(FilesMode) const
|
||||
{
|
||||
return files();
|
||||
}
|
||||
|
||||
Project::RestoreResult QmlProject::fromMap(const QVariantMap &map, QString *errorMessage)
|
||||
{
|
||||
RestoreResult result = Project::fromMap(map, errorMessage);
|
||||
@@ -371,9 +353,12 @@ Project::RestoreResult QmlProject::fromMap(const QVariantMap &map, QString *erro
|
||||
|
||||
void QmlProject::generateProjectTree()
|
||||
{
|
||||
if (!m_projectItem)
|
||||
return;
|
||||
|
||||
auto newRoot = new Internal::QmlProjectNode(this);
|
||||
|
||||
for (const QString &f : files()) {
|
||||
for (const QString &f : m_projectItem.data()->files()) {
|
||||
FileType fileType = FileType::Source; // ### FIXME
|
||||
if (f == projectFilePath().toString())
|
||||
fileType = FileType::Project;
|
||||
|
||||
@@ -51,7 +51,6 @@ public:
|
||||
bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const override;
|
||||
|
||||
Internal::QmlProjectNode *rootProjectNode() const override;
|
||||
QStringList files(FilesMode fileMode) const override;
|
||||
|
||||
bool validProjectFile() const;
|
||||
|
||||
@@ -66,7 +65,6 @@ public:
|
||||
void refresh(RefreshOptions options);
|
||||
|
||||
QDir projectDir() const;
|
||||
QStringList files() const;
|
||||
QString mainFile() const;
|
||||
QStringList customImportPaths() const;
|
||||
|
||||
@@ -92,10 +90,7 @@ private:
|
||||
void parseProject(RefreshOptions options);
|
||||
|
||||
QmlImport m_defaultImport;
|
||||
ProjectExplorer::Target *m_activeTarget = 0;
|
||||
|
||||
// plain format
|
||||
QStringList m_files;
|
||||
ProjectExplorer::Target *m_activeTarget = nullptr;
|
||||
|
||||
QPointer<QmlProjectItem> m_projectItem;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user