diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-12-07 11:28:12 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-12-07 11:24:34 +0000 |
commit | e2155a91df81e812c4f086d4558ead70c0ed2551 (patch) | |
tree | 209305e2d552c143aa84a670acde17a0ea94435e | |
parent | d8343b4b465b48cfaa0ea52dccc01b93415f004d (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.cpp | 8 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppelementevaluator.h | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpptypehierarchy.cpp | 2 |
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); |