forked from qt-creator/qt-creator
Fix "Add New" using the wrong directory for cmake projects
This commit is contained in:
@@ -497,11 +497,13 @@ ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode *
|
|||||||
QString relativePath = QDir(QFileInfo(rootNode->path()).path()).relativeFilePath(directory);
|
QString relativePath = QDir(QFileInfo(rootNode->path()).path()).relativeFilePath(directory);
|
||||||
QStringList parts = relativePath.split("/", QString::SkipEmptyParts);
|
QStringList parts = relativePath.split("/", QString::SkipEmptyParts);
|
||||||
ProjectExplorer::FolderNode *parent = rootNode;
|
ProjectExplorer::FolderNode *parent = rootNode;
|
||||||
|
QString path = QFileInfo(rootNode->path()).path();
|
||||||
foreach (const QString &part, parts) {
|
foreach (const QString &part, parts) {
|
||||||
|
path += "/" + part;
|
||||||
// Find folder in subFolders
|
// Find folder in subFolders
|
||||||
bool found = false;
|
bool found = false;
|
||||||
foreach (ProjectExplorer::FolderNode *folder, parent->subFolderNodes()) {
|
foreach (ProjectExplorer::FolderNode *folder, parent->subFolderNodes()) {
|
||||||
if (QFileInfo(folder->path()).fileName() == part) {
|
if (folder->path() == path) {
|
||||||
// yeah found something :)
|
// yeah found something :)
|
||||||
parent = folder;
|
parent = folder;
|
||||||
found = true;
|
found = true;
|
||||||
@@ -510,7 +512,8 @@ ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode *
|
|||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
// No FolderNode yet, so create it
|
// No FolderNode yet, so create it
|
||||||
ProjectExplorer::FolderNode *tmp = new ProjectExplorer::FolderNode(part);
|
ProjectExplorer::FolderNode *tmp = new ProjectExplorer::FolderNode(path);
|
||||||
|
tmp->setFolderName(part);
|
||||||
rootNode->addFolderNodes(QList<ProjectExplorer::FolderNode *>() << tmp, parent);
|
rootNode->addFolderNodes(QList<ProjectExplorer::FolderNode *>() << tmp, parent);
|
||||||
parent = tmp;
|
parent = tmp;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user