From 1541dec6f34a6cbcec44391f87de2a7c2c00048b Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 8 Jul 2010 11:30:44 +0200 Subject: [PATCH] Add Icons provider to QmlJS library Add an Icons class to QmlJS along the Icons class in the C++ support. This will be used in the QmlJS Outline. --- src/libs/qmljs/images/element.png | Bin 0 -> 573 bytes src/libs/qmljs/images/property.png | Bin 0 -> 530 bytes src/libs/qmljs/qmljs-lib.pri | 9 ++++-- src/libs/qmljs/qmljs.qrc | 6 ++++ src/libs/qmljs/qmljsicons.cpp | 49 +++++++++++++++++++++++++++++ src/libs/qmljs/qmljsicons.h | 28 +++++++++++++++++ 6 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 src/libs/qmljs/images/element.png create mode 100644 src/libs/qmljs/images/property.png create mode 100644 src/libs/qmljs/qmljs.qrc create mode 100644 src/libs/qmljs/qmljsicons.cpp create mode 100644 src/libs/qmljs/qmljsicons.h diff --git a/src/libs/qmljs/images/element.png b/src/libs/qmljs/images/element.png new file mode 100644 index 0000000000000000000000000000000000000000..88432d2cb10c43de91fdb7ec7989285090747b0a GIT binary patch literal 573 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFy8lcaSW-rHD&U7Z)r!7A7c1La z{;|7iR0MxnBB1-_-NG+Rn%d*M_`hbX5?}g{q1WDV;;+^0j)n^ymn@CY`k`znSZ2PF z<#AvBvAYx2*mv;D8SnmVXMF$rJswWQfSmWYPCR&c=kFTnSt6b`sYT4^cSj{|uztCD zzEbHfy(cmMwEI5perEsk^8vNc>w6l?_O{-e#~-rfnd9a6hqssxmG-TrmX1VLRDt@-S;0n$p|^fJTZA|z#Y43>k17uZ1?uQiQv)x zHm&QWc>N@m=!e%7A0C^2KquaVHSb@m1m|j*J>4qWy6)=}{_)zV#?OkA4iBBWJWl+> z71fDyJZ!Dz?!~(gzB?oLPwaht4wvQiz&20OpIm%v>pOS)*G8D|N| zl}uaa;eCe=9aXL4~&vMP;?~fH37#J8lUHx3vIVCg!04d1;cmMzZ literal 0 HcmV?d00001 diff --git a/src/libs/qmljs/images/property.png b/src/libs/qmljs/images/property.png new file mode 100644 index 0000000000000000000000000000000000000000..089cfb45e5fc0f9629c508538ffc5886f79f84c1 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFmCa5aSW-rwdC?yeP%}yh7a4f#%9jSn3C~GRyvt4t9|UUV9)9lg(_P%6y;WRoapT#oq4NW@ zV;<~YwqH!+p+|y_%%c_24KEJu@fX-9R`|Egy`61`NMM5`+ZWSo&J}4=-87~m! z=`dd{wWzFWTYFmCVlu~%_V!wv^UJ&E{#;dIa71>$fQ2Zhiu`7UQ$`Z2*mkvfYCd7i z+E8yC&)LuOrC7S0f5M@_&P56#x)}*slUN?To0nvCt?Su5{o|j7A2*)6Czto`4;RNG z{~z~WS=1K(KXB}uP*;VSkyOUZcaNs&uXEhIY*m!{>^UZEzoC{Z#Js87Tf61SCI`_wrFRUvvX^Tu(+E5I^!N-z9_0$*Zb8%U zDT#Lv37zOn3H|d|Emlc+-iX*k|x`^>bP0l+XkK26N@* literal 0 HcmV?d00001 diff --git a/src/libs/qmljs/qmljs-lib.pri b/src/libs/qmljs/qmljs-lib.pri index 411e108bd32..53984c30633 100644 --- a/src/libs/qmljs/qmljs-lib.pri +++ b/src/libs/qmljs/qmljs-lib.pri @@ -26,7 +26,8 @@ HEADERS += \ $$PWD/qmljsmodelmanagerinterface.h \ $$PWD/qmljsicontextpane.h \ $$PWD/qmljspropertyreader.h \ - $$PWD/qmljsrewriter.h + $$PWD/qmljsrewriter.h \ + $$PWD/qmljsicons.h SOURCES += \ $$PWD/qmljsbind.cpp \ @@ -42,7 +43,11 @@ SOURCES += \ $$PWD/qmljscomponentversion.cpp \ $$PWD/qmljsmodelmanagerinterface.cpp \ $$PWD/qmljspropertyreader.cpp \ - $$PWD/qmljsrewriter.cpp + $$PWD/qmljsrewriter.cpp \ + $$PWD/qmljsicons.cpp + +RESOURCES += \ + $$PWD/qmljs.qrc OTHER_FILES += \ $$PWD/parser/qmljs.g diff --git a/src/libs/qmljs/qmljs.qrc b/src/libs/qmljs/qmljs.qrc new file mode 100644 index 00000000000..b5f83399f23 --- /dev/null +++ b/src/libs/qmljs/qmljs.qrc @@ -0,0 +1,6 @@ + + + images/element.png + images/property.png + + diff --git a/src/libs/qmljs/qmljsicons.cpp b/src/libs/qmljs/qmljsicons.cpp new file mode 100644 index 00000000000..a8579412851 --- /dev/null +++ b/src/libs/qmljs/qmljsicons.cpp @@ -0,0 +1,49 @@ +#include "qmljsicons.h" + +using namespace QmlJS; +using namespace QmlJS::AST; + +namespace QmlJS { + +class IconsPrivate +{ +public: + QIcon elementIcon; + QIcon propertyIcon; +}; + +} // namespace QmlJS + +Icons::Icons() + : m_d(new IconsPrivate) +{ + m_d->elementIcon = QIcon(QLatin1String(":/qmljs/images/element.png")); + m_d->propertyIcon = QIcon(QLatin1String(":/qmljs/images/property.png")); +} + +Icons::~Icons() +{ + delete m_d; +} + +QIcon Icons::icon(Node *node) const +{ + if (dynamic_cast(node)) { + return objectDefinitionIcon(); + } + if (dynamic_cast(node)) { + return scriptBindingIcon(); + } + + return QIcon(); +} + +QIcon Icons::objectDefinitionIcon() const +{ + return m_d->elementIcon; +} + +QIcon Icons::scriptBindingIcon() const +{ + return m_d->propertyIcon; +} diff --git a/src/libs/qmljs/qmljsicons.h b/src/libs/qmljs/qmljsicons.h new file mode 100644 index 00000000000..b45d21acda7 --- /dev/null +++ b/src/libs/qmljs/qmljsicons.h @@ -0,0 +1,28 @@ +#ifndef QMLJSICONS_H +#define QMLJSICONS_H + +#include +#include +#include + +namespace QmlJS { + +class IconsPrivate; + +class QMLJS_EXPORT Icons +{ +public: + Icons(); + ~Icons(); + + QIcon icon(AST::Node *node) const; + + QIcon objectDefinitionIcon() const; + QIcon scriptBindingIcon() const; + + IconsPrivate *m_d; +}; + +} // namespace QmlJS + +#endif // QMLJSICONS_H