forked from qt-creator/qt-creator
ProjectExplorer: Move code to set up default project structure
Move the code used to set up the default project structure from the Project into the sessionmanager. Now that the models are no longer connected to the project this is the safer way as less change to the projects logic is required. Change-Id: Ib6b897f990a24d2dcce96a9821f090551fe45f13 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -205,7 +205,14 @@ void SessionManager::updateProjectTree(Project *pro)
|
||||
return; // Project was already de-registered and is shutting down
|
||||
|
||||
ProjectNode *const oldNode = currentPair->second;
|
||||
ProjectNode *const newNode = pro->rootProjectNode();
|
||||
ProjectNode *newNode = pro->rootProjectNode();
|
||||
|
||||
if (!newNode) {
|
||||
// Set up generic project structure if the project does not provide any!
|
||||
newNode = new ProjectNode(pro->projectDirectory());
|
||||
newNode->setDisplayName(pro->displayName());
|
||||
newNode->addNode(new FileNode(pro->projectFilePath(), FileType::Project, false));
|
||||
}
|
||||
|
||||
d->m_sessionNode.replaceSubtree(oldNode, newNode);
|
||||
currentPair->second = newNode;
|
||||
@@ -766,6 +773,10 @@ void SessionManager::removeProjects(QList<Project *> remove)
|
||||
pro->saveSettings();
|
||||
pro->setRootProjectNode(nullptr); // Deregister project with sessionnode!
|
||||
|
||||
// Remove the project node:
|
||||
Node *projectNode = nodeForProject(pro);
|
||||
d->m_sessionNode.removeNode(projectNode);
|
||||
|
||||
d->m_projects
|
||||
= Utils::filtered(d->m_projects, [pro](const QPair<Project *, ProjectNode *> &pair)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user