aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-12-07 11:28:12 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-12-07 11:24:34 +0000
commite2155a91df81e812c4f086d4558ead70c0ed2551 (patch)
tree209305e2d552c143aa84a670acde17a0ea94435e
parentd8343b4b465b48cfaa0ea52dccc01b93415f004d (diff)
CppTypeHierarchy: Don't create/store QIcon in non-GUI thread
Store Utils::CodeModelIcon::Type enum instead. Drop unneeded CPlusPlus::Symbol *declaration from CppDeclarableElement. Remove unused CppClass::operator==(). Task-number: QTCREATORBUG-28529 Change-Id: Ie3487fa5f73d714ef375c42f1e64023ccc4194ee Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/plugins/cppeditor/cppelementevaluator.cpp8
-rw-r--r--src/plugins/cppeditor/cppelementevaluator.h6
-rw-r--r--src/plugins/cppeditor/cpptypehierarchy.cpp2
3 files changed, 4 insertions, 12 deletions
diff --git a/src/plugins/cppeditor/cppelementevaluator.cpp b/src/plugins/cppeditor/cppelementevaluator.cpp
index 281083f6eb..04fd19a010 100644
--- a/src/plugins/cppeditor/cppelementevaluator.cpp
+++ b/src/plugins/cppeditor/cppelementevaluator.cpp
@@ -94,8 +94,7 @@ public:
// CppDeclarableElement
CppDeclarableElement::CppDeclarableElement(Symbol *declaration)
: CppElement()
- , declaration(declaration)
- , icon(Icons::iconForSymbol(declaration))
+ , iconType(Icons::iconTypeForSymbol(declaration))
{
Overview overview;
overview.showArgumentNames = true;
@@ -135,11 +134,6 @@ CppClass::CppClass(Symbol *declaration) : CppDeclarableElement(declaration)
tooltip = qualifiedName;
}
-bool CppClass::operator==(const CppClass &other)
-{
- return this->declaration == other.declaration;
-}
-
CppClass *CppClass::toCppClass()
{
return this;
diff --git a/src/plugins/cppeditor/cppelementevaluator.h b/src/plugins/cppeditor/cppelementevaluator.h
index 0b77dda08c..5e710ea5f8 100644
--- a/src/plugins/cppeditor/cppelementevaluator.h
+++ b/src/plugins/cppeditor/cppelementevaluator.h
@@ -5,6 +5,7 @@
#include <coreplugin/helpitem.h>
#include <texteditor/texteditor.h>
+#include <utils/utilsicons.h>
#include <cplusplus/CppDocument.h>
@@ -76,11 +77,10 @@ public:
explicit CppDeclarableElement(CPlusPlus::Symbol *declaration);
public:
- CPlusPlus::Symbol *declaration;
+ Utils::CodeModelIcon::Type iconType;
QString name;
QString qualifiedName;
QString type;
- QIcon icon;
};
class CppClass : public CppDeclarableElement
@@ -89,8 +89,6 @@ public:
CppClass();
explicit CppClass(CPlusPlus::Symbol *declaration);
- bool operator==(const CppClass &other);
-
CppClass *toCppClass() final;
void lookupBases(QFutureInterfaceBase &futureInterface,
diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp
index efb956a132..f93a89d8c0 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.cpp
+++ b/src/plugins/cppeditor/cpptypehierarchy.cpp
@@ -44,7 +44,7 @@ QStandardItem *itemForClass(const CppClass &cppClass)
item->setData(cppClass.name, Qt::DisplayRole);
if (cppClass.name != cppClass.qualifiedName)
item->setData(cppClass.qualifiedName, AnnotationRole);
- item->setData(cppClass.icon, Qt::DecorationRole);
+ item->setData(iconForType(cppClass.iconType), Qt::DecorationRole);
QVariant link;
link.setValue(Link(cppClass.link));
item->setData(link, LinkRole);