forked from qt-creator/qt-creator
QmlDesigner: Fix crash when selecting ISO icon
On macOS. Never use dynamic_cast over library boundaries - it may or may not work, depending on compiler/platform. Fixes: QTCREATORBUG-23773 Change-Id: I889d35f336ff80e2b1ae3cbe921f7de2fe541bd8 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -398,19 +398,20 @@ void DocumentManager::findPathToIsoProFile(bool *iconResourceFileAlreadyExists,
|
|||||||
qCDebug(documentManagerLog) << "Checking" << node->displayName() << "(" << node << ")";
|
qCDebug(documentManagerLog) << "Checking" << node->displayName() << "(" << node << ")";
|
||||||
|
|
||||||
if (node->isVirtualFolderType() && node->displayName() == "Resources") {
|
if (node->isVirtualFolderType() && node->displayName() == "Resources") {
|
||||||
auto virtualFolderNode = dynamic_cast<ProjectExplorer::VirtualFolderNode*>(node);
|
ProjectExplorer::FolderNode *virtualFolderNode = node->asFolderNode();
|
||||||
|
if (QTC_GUARD(virtualFolderNode)) {
|
||||||
|
for (int subFolderIndex = 0; subFolderIndex < virtualFolderNode->folderNodes().size() && !iconQrcFileNode; ++subFolderIndex) {
|
||||||
|
ProjectExplorer::FolderNode *subFolderNode = virtualFolderNode->folderNodes().at(subFolderIndex);
|
||||||
|
|
||||||
for (int subFolderIndex = 0; subFolderIndex < virtualFolderNode->folderNodes().size() && !iconQrcFileNode; ++subFolderIndex) {
|
qCDebug(documentManagerLog) << "Checking if" << subFolderNode->displayName() << "("
|
||||||
ProjectExplorer::FolderNode *subFolderNode = virtualFolderNode->folderNodes().at(subFolderIndex);
|
<< subFolderNode << ") is" << isoIconsQrcFile;
|
||||||
|
|
||||||
qCDebug(documentManagerLog) << "Checking if" << subFolderNode->displayName() << "("
|
if (subFolderNode->isFolderNodeType() && subFolderNode->displayName() == isoIconsQrcFile) {
|
||||||
<< subFolderNode << ") is" << isoIconsQrcFile;
|
qCDebug(documentManagerLog) << "Found" << isoIconsQrcFile << "in" << virtualFolderNode->filePath();
|
||||||
|
|
||||||
if (subFolderNode->isFolderNodeType() && subFolderNode->displayName() == isoIconsQrcFile) {
|
iconQrcFileNode = subFolderNode;
|
||||||
qCDebug(documentManagerLog) << "Found" << isoIconsQrcFile << "in" << virtualFolderNode->filePath();
|
*resourceFileProPath = iconQrcFileNode->parentProjectNode()->filePath().toString();
|
||||||
|
}
|
||||||
iconQrcFileNode = subFolderNode;
|
|
||||||
*resourceFileProPath = iconQrcFileNode->parentProjectNode()->filePath().toString();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user