forked from qt-creator/qt-creator
Projects: Create QIcons in the UI thread
Creating QIcons elsewhere is not safe because of image reader plugin loading and the pixmap cache. Fixes: QTCREATORBUG-25301 Change-Id: Ia22a0cd571f808d7f5c639353fdf2e548743f8ca Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -46,17 +46,14 @@ CMakeInputsNode::CMakeInputsNode(const Utils::FilePath &cmakeLists) :
|
||||
{
|
||||
setPriority(Node::DefaultPriority - 10); // Bottom most!
|
||||
setDisplayName(QCoreApplication::translate("CMakeFilesProjectNode", "CMake Modules"));
|
||||
static const QIcon modulesIcon = Core::FileIconProvider::directoryIcon(
|
||||
ProjectExplorer::Constants::FILEOVERLAY_MODULES);
|
||||
setIcon(modulesIcon);
|
||||
setIcon(DirectoryIcon(ProjectExplorer::Constants::FILEOVERLAY_MODULES));
|
||||
setListInProject(false);
|
||||
}
|
||||
|
||||
CMakeListsNode::CMakeListsNode(const Utils::FilePath &cmakeListPath) :
|
||||
ProjectExplorer::ProjectNode(cmakeListPath)
|
||||
{
|
||||
static QIcon folderIcon = Core::FileIconProvider::directoryIcon(Constants::FILE_OVERLAY_CMAKE);
|
||||
setIcon(folderIcon);
|
||||
setIcon(DirectoryIcon(Constants::FILE_OVERLAY_CMAKE));
|
||||
setListInProject(false);
|
||||
}
|
||||
|
||||
@@ -74,9 +71,7 @@ CMakeProjectNode::CMakeProjectNode(const Utils::FilePath &directory) :
|
||||
ProjectExplorer::ProjectNode(directory)
|
||||
{
|
||||
setPriority(Node::DefaultProjectPriority + 1000);
|
||||
static const QIcon productIcon = Core::FileIconProvider::directoryIcon(
|
||||
ProjectExplorer::Constants::FILEOVERLAY_PRODUCT);
|
||||
setIcon(productIcon);
|
||||
setIcon(DirectoryIcon(ProjectExplorer::Constants::FILEOVERLAY_PRODUCT));
|
||||
setListInProject(false);
|
||||
}
|
||||
|
||||
@@ -90,7 +85,7 @@ CMakeTargetNode::CMakeTargetNode(const Utils::FilePath &directory, const QString
|
||||
{
|
||||
m_target = target;
|
||||
setPriority(Node::DefaultProjectPriority + 900);
|
||||
setIcon(QIcon(":/projectexplorer/images/build.png")); // TODO: Use proper icon!
|
||||
setIcon(":/projectexplorer/images/build.png"); // TODO: Use proper icon!
|
||||
setListInProject(false);
|
||||
setProductType(ProductType::Other);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user