summaryrefslogtreecommitdiff
path: root/src/libs/qmljs
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2010-07-08 11:30:44 +0200
committerKai Koehne <kai.koehne@nokia.com>2010-07-08 14:02:51 +0200
commit1541dec6f34a6cbcec44391f87de2a7c2c00048b (patch)
tree5352c4f050051f9e27f5a43dd88f5d8573c11f22 /src/libs/qmljs
parent1fff761d57c82978d0f8a408424241eb1fc4fdb9 (diff)
downloadqt-creator-1541dec6f34a6cbcec44391f87de2a7c2c00048b.tar.gz
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.
Diffstat (limited to 'src/libs/qmljs')
-rw-r--r--src/libs/qmljs/images/element.pngbin0 -> 573 bytes
-rw-r--r--src/libs/qmljs/images/property.pngbin0 -> 530 bytes
-rw-r--r--src/libs/qmljs/qmljs-lib.pri9
-rw-r--r--src/libs/qmljs/qmljs.qrc6
-rw-r--r--src/libs/qmljs/qmljsicons.cpp49
-rw-r--r--src/libs/qmljs/qmljsicons.h28
6 files changed, 90 insertions, 2 deletions
diff --git a/src/libs/qmljs/images/element.png b/src/libs/qmljs/images/element.png
new file mode 100644
index 0000000000..88432d2cb1
--- /dev/null
+++ b/src/libs/qmljs/images/element.png
Binary files differ
diff --git a/src/libs/qmljs/images/property.png b/src/libs/qmljs/images/property.png
new file mode 100644
index 0000000000..089cfb45e5
--- /dev/null
+++ b/src/libs/qmljs/images/property.png
Binary files differ
diff --git a/src/libs/qmljs/qmljs-lib.pri b/src/libs/qmljs/qmljs-lib.pri
index 411e108bd3..53984c3063 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 0000000000..b5f83399f2
--- /dev/null
+++ b/src/libs/qmljs/qmljs.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/qmljs">
+ <file>images/element.png</file>
+ <file>images/property.png</file>
+ </qresource>
+</RCC>
diff --git a/src/libs/qmljs/qmljsicons.cpp b/src/libs/qmljs/qmljsicons.cpp
new file mode 100644
index 0000000000..a857941285
--- /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<AST::UiObjectDefinition*>(node)) {
+ return objectDefinitionIcon();
+ }
+ if (dynamic_cast<AST::UiScriptBinding*>(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 0000000000..b45d21acda
--- /dev/null
+++ b/src/libs/qmljs/qmljsicons.h
@@ -0,0 +1,28 @@
+#ifndef QMLJSICONS_H
+#define QMLJSICONS_H
+
+#include <qmljs/qmljs_global.h>
+#include <qmljs/parser/qmljsast_p.h>
+#include <QtGui/QIcon>
+
+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