forked from qt-creator/qt-creator
Project: Set filepath on ContainerNode
This fixes search via the context menu. Change-Id: Ie675cae3f6e35d5d02234f3a49f7a71d02b08bc2 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -126,15 +126,13 @@ bool ProjectDocument::reload(QString *errorString, Core::IDocument::ReloadFlag f
|
|||||||
class ProjectPrivate
|
class ProjectPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ProjectPrivate(Project *owner, Core::IDocument *document) :
|
ProjectPrivate(Core::IDocument *document) : m_document(document) { }
|
||||||
m_document(document), m_containerNode(owner)
|
|
||||||
{ }
|
|
||||||
~ProjectPrivate();
|
~ProjectPrivate();
|
||||||
|
|
||||||
Core::Id m_id;
|
Core::Id m_id;
|
||||||
Core::IDocument *m_document = nullptr;
|
Core::IDocument *m_document = nullptr;
|
||||||
ProjectNode *m_rootProjectNode = nullptr;
|
ProjectNode *m_rootProjectNode = nullptr;
|
||||||
ContainerNode m_containerNode;
|
ContainerNode *m_containerNode = nullptr;
|
||||||
QList<Target *> m_targets;
|
QList<Target *> m_targets;
|
||||||
Target *m_activeTarget = nullptr;
|
Target *m_activeTarget = nullptr;
|
||||||
EditorConfiguration m_editorConfiguration;
|
EditorConfiguration m_editorConfiguration;
|
||||||
@@ -156,17 +154,22 @@ ProjectPrivate::~ProjectPrivate()
|
|||||||
m_rootProjectNode = nullptr;
|
m_rootProjectNode = nullptr;
|
||||||
delete oldNode;
|
delete oldNode;
|
||||||
|
|
||||||
|
delete m_containerNode;
|
||||||
|
|
||||||
delete m_document;
|
delete m_document;
|
||||||
delete m_accessor;
|
delete m_accessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
Project::Project(const QString &mimeType, const Utils::FileName &fileName,
|
Project::Project(const QString &mimeType, const Utils::FileName &fileName,
|
||||||
const ProjectDocument::ProjectCallback &callback) :
|
const ProjectDocument::ProjectCallback &callback) :
|
||||||
d(new ProjectPrivate(this, new ProjectDocument(mimeType, fileName, callback)))
|
d(new ProjectPrivate(new ProjectDocument(mimeType, fileName, callback)))
|
||||||
{
|
{
|
||||||
d->m_macroExpander.setDisplayName(tr("Project"));
|
d->m_macroExpander.setDisplayName(tr("Project"));
|
||||||
d->m_macroExpander.registerVariable("Project:Name", tr("Project Name"),
|
d->m_macroExpander.registerVariable("Project:Name", tr("Project Name"),
|
||||||
[this] { return displayName(); });
|
[this] { return displayName(); });
|
||||||
|
|
||||||
|
// Only set up containernode after d is set so that it will find the project directory!
|
||||||
|
d->m_containerNode = new ContainerNode(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Project::~Project()
|
Project::~Project()
|
||||||
@@ -475,7 +478,7 @@ void Project::setRootProjectNode(ProjectNode *root)
|
|||||||
ProjectNode *oldNode = d->m_rootProjectNode;
|
ProjectNode *oldNode = d->m_rootProjectNode;
|
||||||
d->m_rootProjectNode = root;
|
d->m_rootProjectNode = root;
|
||||||
if (root)
|
if (root)
|
||||||
root->setParentFolderNode(&d->m_containerNode);
|
root->setParentFolderNode(d->m_containerNode);
|
||||||
ProjectTree::emitSubtreeChanged(root);
|
ProjectTree::emitSubtreeChanged(root);
|
||||||
emit fileListChanged();
|
emit fileListChanged();
|
||||||
|
|
||||||
@@ -604,7 +607,7 @@ ProjectNode *Project::rootProjectNode() const
|
|||||||
|
|
||||||
ContainerNode *Project::containerNode() const
|
ContainerNode *Project::containerNode() const
|
||||||
{
|
{
|
||||||
return &d->m_containerNode;
|
return d->m_containerNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
Project::RestoreResult Project::fromMap(const QVariantMap &map, QString *errorMessage)
|
Project::RestoreResult Project::fromMap(const QVariantMap &map, QString *errorMessage)
|
||||||
|
|||||||
@@ -793,7 +793,7 @@ bool FolderNode::isEmpty() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
ContainerNode::ContainerNode(Project *project)
|
ContainerNode::ContainerNode(Project *project)
|
||||||
: FolderNode(Utils::FileName(), NodeType::Project), m_project(project)
|
: FolderNode(project->projectDirectory(), NodeType::Project), m_project(project)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
QString ContainerNode::displayName() const
|
QString ContainerNode::displayName() const
|
||||||
|
|||||||
Reference in New Issue
Block a user