forked from qt-creator/qt-creator
Utils: move code model icons to utils
In preperation for the language server protocol support. Change-Id: Iee4ccd53a86d9afdb357972ea62b75ace2edcb1d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -30,8 +30,6 @@
|
||||
#include <cplusplus/Symbols.h>
|
||||
#include <cplusplus/Type.h>
|
||||
|
||||
#include <utils/icon.h>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
using CPlusPlus::Icons;
|
||||
|
||||
@@ -42,16 +40,17 @@ QIcon Icons::iconForSymbol(const Symbol *symbol)
|
||||
|
||||
QIcon Icons::keywordIcon()
|
||||
{
|
||||
return iconForType(KeywordIconType);
|
||||
return iconForType(Utils::CodeModelIcon::Keyword);
|
||||
}
|
||||
|
||||
QIcon Icons::macroIcon()
|
||||
{
|
||||
return iconForType(MacroIconType);
|
||||
return iconForType(Utils::CodeModelIcon::Macro);
|
||||
}
|
||||
|
||||
Icons::IconType Icons::iconTypeForSymbol(const Symbol *symbol)
|
||||
Utils::CodeModelIcon::Type Icons::iconTypeForSymbol(const Symbol *symbol)
|
||||
{
|
||||
using namespace Utils::CodeModelIcon;
|
||||
if (const Template *templ = symbol->asTemplate()) {
|
||||
if (Symbol *decl = templ->declaration())
|
||||
return iconTypeForSymbol(decl);
|
||||
@@ -67,244 +66,53 @@ Icons::IconType Icons::iconTypeForSymbol(const Symbol *symbol)
|
||||
|
||||
if (function->isSlot()) {
|
||||
if (function->isPublic())
|
||||
return SlotPublicIconType;
|
||||
return SlotPublic;
|
||||
else if (function->isProtected())
|
||||
return SlotProtectedIconType;
|
||||
return SlotProtected;
|
||||
else if (function->isPrivate())
|
||||
return SlotPrivateIconType;
|
||||
return SlotPrivate;
|
||||
} else if (function->isSignal()) {
|
||||
return SignalIconType;
|
||||
return Signal;
|
||||
} else if (symbol->isPublic()) {
|
||||
return symbol->isStatic() ? FuncPublicStaticIconType : FuncPublicIconType;
|
||||
return symbol->isStatic() ? FuncPublicStatic : FuncPublic;
|
||||
} else if (symbol->isProtected()) {
|
||||
return symbol->isStatic() ? FuncProtectedStaticIconType : FuncProtectedIconType;
|
||||
return symbol->isStatic() ? FuncProtectedStatic : FuncProtected;
|
||||
} else if (symbol->isPrivate()) {
|
||||
return symbol->isStatic() ? FuncPrivateStaticIconType : FuncPrivateIconType;
|
||||
return symbol->isStatic() ? FuncPrivateStatic : FuncPrivate;
|
||||
}
|
||||
} else if (symbol->enclosingScope() && symbol->enclosingScope()->isEnum()) {
|
||||
return EnumeratorIconType;
|
||||
return Enumerator;
|
||||
} else if (symbol->isDeclaration() || symbol->isArgument()) {
|
||||
if (symbol->isPublic()) {
|
||||
return symbol->isStatic() ? VarPublicStaticIconType : VarPublicIconType;
|
||||
return symbol->isStatic() ? VarPublicStatic : VarPublic;
|
||||
} else if (symbol->isProtected()) {
|
||||
return symbol->isStatic() ? VarProtectedStaticIconType : VarProtectedIconType;
|
||||
return symbol->isStatic() ? VarProtectedStatic : VarProtected;
|
||||
} else if (symbol->isPrivate()) {
|
||||
return symbol->isStatic() ? VarPrivateStaticIconType : VarPrivateIconType;
|
||||
return symbol->isStatic() ? VarPrivateStatic : VarPrivate;
|
||||
}
|
||||
} else if (symbol->isEnum()) {
|
||||
return EnumIconType;
|
||||
return Utils::CodeModelIcon::Enum;
|
||||
} else if (symbol->isForwardClassDeclaration()) {
|
||||
return ClassIconType; // TODO: Store class key in ForwardClassDeclaration
|
||||
return Utils::CodeModelIcon::Class; // TODO: Store class key in ForwardClassDeclaration
|
||||
} else if (const Class *klass = symbol->asClass()) {
|
||||
return klass->isStruct() ? StructIconType : ClassIconType;
|
||||
return klass->isStruct() ? Struct : Utils::CodeModelIcon::Class;
|
||||
} else if (symbol->isObjCClass() || symbol->isObjCForwardClassDeclaration()) {
|
||||
return ClassIconType;
|
||||
return Utils::CodeModelIcon::Class;
|
||||
} else if (symbol->isObjCProtocol() || symbol->isObjCForwardProtocolDeclaration()) {
|
||||
return ClassIconType;
|
||||
return Utils::CodeModelIcon::Class;
|
||||
} else if (symbol->isObjCMethod()) {
|
||||
return FuncPublicIconType;
|
||||
return FuncPublic;
|
||||
} else if (symbol->isNamespace()) {
|
||||
return NamespaceIconType;
|
||||
return Utils::CodeModelIcon::Namespace;
|
||||
} else if (symbol->isTypenameArgument()) {
|
||||
return ClassIconType;
|
||||
return Utils::CodeModelIcon::Class;
|
||||
} else if (symbol->isQtPropertyDeclaration() || symbol->isObjCPropertyDeclaration()) {
|
||||
return PropertyIconType;
|
||||
return Property;
|
||||
} else if (symbol->isUsingNamespaceDirective() ||
|
||||
symbol->isUsingDeclaration()) {
|
||||
// TODO: Might be nice to have a different icons for these things
|
||||
return NamespaceIconType;
|
||||
return Utils::CodeModelIcon::Namespace;
|
||||
}
|
||||
|
||||
return UnknownIconType;
|
||||
}
|
||||
|
||||
QIcon Icons::iconForType(IconType type)
|
||||
{
|
||||
using namespace Utils;
|
||||
|
||||
static const IconMaskAndColor classRelationIcon {
|
||||
QLatin1String(":/codemodel/images/classrelation.png"), Theme::IconsCodeModelOverlayForegroundColor};
|
||||
static const IconMaskAndColor classRelationBackgroundIcon {
|
||||
QLatin1String(":/codemodel/images/classrelationbackground.png"), Theme::IconsCodeModelOverlayBackgroundColor};
|
||||
static const IconMaskAndColor classMemberFunctionIcon {
|
||||
QLatin1String(":/codemodel/images/classmemberfunction.png"), Theme::IconsCodeModelFunctionColor};
|
||||
static const IconMaskAndColor classMemberVariableIcon {
|
||||
QLatin1String(":/codemodel/images/classmembervariable.png"), Theme::IconsCodeModelVariableColor};
|
||||
static const IconMaskAndColor functionIcon {
|
||||
QLatin1String(":/codemodel/images/member.png"), Theme::IconsCodeModelFunctionColor};
|
||||
static const IconMaskAndColor variableIcon {
|
||||
QLatin1String(":/codemodel/images/member.png"), Theme::IconsCodeModelVariableColor};
|
||||
static const IconMaskAndColor signalIcon {
|
||||
QLatin1String(":/codemodel/images/signal.png"), Theme::IconsCodeModelFunctionColor};
|
||||
static const IconMaskAndColor slotIcon {
|
||||
QLatin1String(":/codemodel/images/slot.png"), Theme::IconsCodeModelFunctionColor};
|
||||
static const IconMaskAndColor propertyIcon {
|
||||
QLatin1String(":/codemodel/images/property.png"), Theme::IconsCodeModelOverlayForegroundColor};
|
||||
static const IconMaskAndColor propertyBackgroundIcon {
|
||||
QLatin1String(":/codemodel/images/propertybackground.png"), Theme::IconsCodeModelOverlayBackgroundColor};
|
||||
static const IconMaskAndColor protectedIcon {
|
||||
QLatin1String(":/codemodel/images/protected.png"), Theme::IconsCodeModelOverlayForegroundColor};
|
||||
static const IconMaskAndColor protectedBackgroundIcon {
|
||||
QLatin1String(":/codemodel/images/protectedbackground.png"), Theme::IconsCodeModelOverlayBackgroundColor};
|
||||
static const IconMaskAndColor privateIcon {
|
||||
QLatin1String(":/codemodel/images/private.png"), Theme::IconsCodeModelOverlayForegroundColor};
|
||||
static const IconMaskAndColor privateBackgroundIcon {
|
||||
QLatin1String(":/codemodel/images/privatebackground.png"), Theme::IconsCodeModelOverlayBackgroundColor};
|
||||
static const IconMaskAndColor staticIcon {
|
||||
QLatin1String(":/codemodel/images/static.png"), Theme::IconsCodeModelOverlayForegroundColor};
|
||||
static const IconMaskAndColor staticBackgroundIcon {
|
||||
QLatin1String(":/codemodel/images/staticbackground.png"), Theme::IconsCodeModelOverlayBackgroundColor};
|
||||
|
||||
switch (type) {
|
||||
case ClassIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
classRelationBackgroundIcon, classRelationIcon,
|
||||
{QLatin1String(":/codemodel/images/classparent.png"), Theme::IconsCodeModelClassColor},
|
||||
classMemberFunctionIcon, classMemberVariableIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case StructIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
classRelationBackgroundIcon, classRelationIcon,
|
||||
{QLatin1String(":/codemodel/images/classparent.png"), Theme::IconsCodeModelStructColor},
|
||||
classMemberFunctionIcon, classMemberVariableIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case EnumIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
{QLatin1String(":/codemodel/images/enum.png"), Theme::IconsCodeModelEnumColor}
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case EnumeratorIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
{QLatin1String(":/codemodel/images/enumerator.png"), Theme::IconsCodeModelEnumColor}
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncPublicIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncProtectedIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon, protectedBackgroundIcon, protectedIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncPrivateIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon, privateBackgroundIcon, privateIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncPublicStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon, staticBackgroundIcon, staticIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncProtectedStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon, staticBackgroundIcon, staticIcon, protectedBackgroundIcon, protectedIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case FuncPrivateStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
functionIcon, staticBackgroundIcon, staticIcon, privateBackgroundIcon, privateIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case NamespaceIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
{QLatin1String(":/utils/images/namespace.png"), Theme::IconsCodeModelKeywordColor}
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarPublicIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarProtectedIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, protectedBackgroundIcon, protectedIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarPrivateIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, privateBackgroundIcon, privateIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarPublicStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, staticBackgroundIcon, staticIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarProtectedStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, staticBackgroundIcon, staticIcon, protectedBackgroundIcon, protectedIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case VarPrivateStaticIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, staticBackgroundIcon, staticIcon, privateBackgroundIcon, privateIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case SignalIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
signalIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case SlotPublicIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
slotIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case SlotProtectedIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
slotIcon, protectedBackgroundIcon, protectedIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case SlotPrivateIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
slotIcon, privateBackgroundIcon, privateIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case KeywordIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
{QLatin1String(":/codemodel/images/keyword.png"), Theme::IconsCodeModelKeywordColor}
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case MacroIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
{QLatin1String(":/codemodel/images/macro.png"), Theme::IconsCodeModelMacroColor}
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
case PropertyIconType: {
|
||||
const static QIcon icon(Icon({
|
||||
variableIcon, propertyBackgroundIcon, propertyIcon
|
||||
}, Icon::Tint).icon());
|
||||
return icon;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QIcon();
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user