summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsinterpreter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qmljs: simple tracking of used modulesFawzi Mohamed2013-10-231-1/+8
| | | | | Change-Id: Idc977a8c5a6c6caa3749599cb6f4a236046f53d7 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* qmljs: added qmljsconstants.hFawzi Mohamed2013-10-231-17/+17
| | | | | | | | | | | | | | Moved Document::Language, Import::Type and StaticAnalysis::Severity enums to qmljsconstants.h and renamed values removing the redundant part. Thus the effective length changed little or improved (Document::QmlLanguage => Language::Qml). The separate file allows better reuse of enum values without introducing circular dependencies. Change-Id: I5186d7c04f5d3f6c289068b919be5ff1ff118326 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Doc: edit qmljs docsLeena Miettinen2013-09-231-2/+3
| | | | | | | | Use standard wording, fix capitalization, typos, and style and grammar issues. Change-Id: Iac3faa59ef32aa2a8ec1857aed0d861701cbfbe7 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Doc: use standard wording in \brief commandsLeena Miettinen2013-06-201-1/+2
| | | | | | | | | QDoc does some magic with the \class and \namespaces and \brief commands, so the following wording must be used: "The xxx class yyy ..." Change-Id: Id231f30e8464898b776888d5423523de404aae34 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* qmljs: adding qrc supportFawzi Mohamed2013-06-031-10/+17
| | | | | | | | | | | | | | | | | | | | | Qmljs now keeps a cache of parsed qrc files, and can resolve "qrc:" links. This breaks the assumption that the name that the qml files has on the filesystem is the one that qml sees, and that contents of directories can be found just looking at file whose path starts with the directory path. Currently the first file is used when multiple qrc files contain the same path, but support for strict and weak path resolving is already there. At the moment only qrc files for projects that call updateQmljsCodeModel are updated. ChangeLog: QmljsSupport: Imports using qrc links are resolved. Task-number: QTCREATORBUG-8953 Change-Id: I695fac2692af2417d49c192c580a1c2e7b4873f4 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* TypeDescriptionReader: Check for files that are not UTF8 encodedThomas Hartmann2013-05-151-5/+20
| | | | | | | | We had a qmltypes file that was encoded in UTF16 and did not work. We should at least warn about it. Change-Id: I42555782ee16ddd25552f919845aa85ff1f3f636 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Clean headers in QmlJs.Friedemann Kleint2013-04-041-9/+0
| | | | | | | | Ran script to remove inludes on a trial-and-error basis and manually corrected it (Parser excluded). Change-Id: I5ec6e1076430009bb72094411b2c3386f8bea548 Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
* Doc: replace deprecated QDoc commandsLeena Miettinen2013-02-061-4/+4
| | | | | | | | | | The \i and \o commands were replaced with \li and \bold was replaced with \b in QDoc for Qt 5. The \input command was replaced with \include in the docs. Change-Id: I257d1bebb8ebc739ca20e0d29fcf0406ecb14534 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/2.6'Oswald Buddenhagen2013-01-311-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp src/plugins/qmldesigner/designercore/include/widgetqueryview.h src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp src/plugins/qnx/bardescriptormagicmatcher.h src/plugins/qt4projectmanager/profilekeywords.cpp src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
| * Incremented year in copyright infov2.6.2Robert Loehning2013-01-291-1/+1
| | | | | | | | | | Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Remove braces for single lines of conditionsOrgad Shaneh2013-01-081-28/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #!/usr/bin/env ruby Dir.glob('**/*.cpp') { |file| # skip ast (excluding paste, astpath, and canv'ast'imer) next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i s = File.read(file) next if s.include?('qlalr') orig = s.dup s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m| res = $& if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces res else res.gsub!('} else', 'else') res.gsub!(/\n +} *\n/m, "\n") res.gsub(/ *{$/, '') end } s.gsub!(/ *$/, '') File.open(file, 'wb').write(s) if s != orig } Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc Reviewed-by: hjk <qthjk@ovi.com>
* | QmlJS: Compile with QT_NO_CAST_FROM_ASCIIOrgad Shaneh2012-11-281-6/+10
| | | | | | | | | | | | Change-Id: I0c5654a978f47a4db5428936fd44633f21394830 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
* | Merge remote-tracking branch 'origin/2.6'Eike Ziller2012-10-051-21/+20
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.cpp share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.h src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessageloghandler.h src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/madde/maemodeployconfigurationwidget.h src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentinfo.h src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp src/plugins/remotelinux/remotelinuxdeploymentdatamodel.h tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/ichecklib_global.h tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h tests/manual/ssh/tunnel/tunnel.h Change-Id: I04d7761df6bd936ad00e0547974284c967d39580
| * Adjust license headershjk2012-10-051-21/+20
| | | | | | | | | | Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* | QmljsInterpreter: avoid ambiguities about major import versionThomas Hartmann2012-09-261-4/+8
|/ | | | | | | | | | | Both CppComponentValues are created and available in the code model. In case of a context lookup it seems to be random which one is taken. This patch ensures that the code model only contains the object with the highest version. Change-Id: Icd1ac1c7d62e277bbd8a2747c3504457be5dd8d6 Reviewed-by: Christian Kamm <kamm@incasoftware.de>
* Contact -> qt-project.orgEike Ziller2012-07-191-3/+1
| | | | | Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* QmlJSInterpreter: QML Plugin typesAurindam Jana2012-05-071-35/+26
| | | | | | | | | | A Component in .qmltypes can have an array of exports which may differ in type names and versions. Consider the type names to be aliases and create a CppComponentValue for each of the alias corresponding to the best available version. Change-Id: I759ae0c68441e805b0502bf2d203c524bf1a7a7c Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJSInterpreter: Register QML TypesAurindam Jana2012-04-301-4/+20
| | | | | | | | | | | A Component in .qmltypes can have an array of exports which may differ in type names too (possibly because of type deprecation). Consider the type names to be aliases and create a CppComponentValue for each of the alias. Change-Id: I70cadab465aec3e7842abd7050549c77fb8342fc Reviewed-by: Marco Bubke <marco.bubke@nokia.com> Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
* QmlJS: Actually print warning for .qmltypes fileKai Koehne2012-03-131-1/+1
| | | | | Change-Id: I93030362168719c126818006839e9fae0ca673ce Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* Removed module names from #include directives.Erik Verbruggen2012-02-151-9/+9
| | | | | | | | Getting the #include directives ready for Qt5. This includes the new-project wizards. Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* Long live the king!hjk2012-01-261-1/+1
| | | | | Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* Qt Creator: Compile with Qt 5.Friedemann Kleint2011-12-121-0/+21
| | | | | | | | Introduce #ifdefs for incompatible changes in QAtomicPointer and QAtomicInt. Change-Id: Ice03a2cc8b3aed174e549827cfcf737764c41642 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* QmlJS: Fix highlighting and completion for property declarations.Christian Kamm2011-12-071-1/+13
| | | | | | | | | | | | | When property declarations use a custom type such as property Foo bar we now * highlight Foo as a QML type if it's found * complete bar. as a Foo Change-Id: I82c249646af19bfeb9f5a7a7692f0dc10b009835 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Fix lazy initialization of CppComponentValue::signalScopes.Christian Kamm2011-11-291-1/+1
| | | | | | | Could lead to crashes when two threads initialize it at the same time. Change-Id: Ia8e2c280c89087b1195451948c36a384e1098423 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Add protection against attached types attaching to themselves.Christian Kamm2011-11-291-1/+1
| | | | | | Change-Id: Ib81d5e6baabf5ac8d18411e8936098908de2c2bb Task-number: QTCREATORBUG-6635 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Speed up ValueOwner construction.Christian Kamm2011-11-251-122/+25
| | | | | | | | | | | | | | | | | | | | * Don't build all default values (including the global object) separately for each ValueOwner instance. * Instead, keep all global, immutable values in a single, shared instance. While refactoring, some cases where we *modified* the global object had to be removed: * C++ context properties no longer get injected into the global object, instead they now have their own scope just above the global one. * The Qt object's prototype no longer gets modified in Link. Instead, it's now a reference to the "Qt" object provided in a qmltypes file. * The whole concept of a function 'Activation' that could potentially affect the global object was removed. Change-Id: Id382faf965efa747fcc7a9b0bc2c90429d84d61b Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Improve completion and hints for functions.Christian Kamm2011-11-161-7/+74
| | | | | | | | | | | * FunctionValues know about optional arguments (for builtins) * ASTFunctionValues only report themselves as variadic if they use the 'arguments' array. * Function argument hint shows optional args and variadic. * Completion automatically adds parentheses. Change-Id: Ib2598600ff8b1ce8c5de3bcabd24a3e171ff3a57 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Add documentation for QmlJS::Value.Christian Kamm2011-11-151-0/+29
| | | | | | | | | Also: * Remove unnecessary QmlJS:: qualifications in existing documentation. * Remove unnecessary explicit links in the documentation. Change-Id: Icb41941d98b5cfe9d2fb3b3887fafee16635eb13 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* Merge remote-tracking branch 'origin/2.4'Eike Ziller2011-11-111-15/+9
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/qmljs/qmljsinterpreter.cpp src/libs/qmljs/qmljsinterpreter.h src/plugins/debugger/qml/scriptconsole.cpp src/plugins/git/gitplugin.cpp src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas.cpp src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h Change-Id: Iad59c8d87c72a21c79c047e374c0ab689998af39
| * QmlJS: Fixed attached objects.Christian Kamm2011-11-071-13/+7
| | | | | | | | | | | | Task-number: QTCREATORBUG-6450 Change-Id: Idd8e2ec3550190a137dbf0fe452c8488fb3fe1ad Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
| * all: s/info@qt.nokia.com/qt-info@nokia.com/hjk2011-11-031-2/+2
| | | | | | | | | | Change-Id: If18afb5d4665924e7d9250dccbc60a65e6daa75e Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* | Merge remote-tracking branch 'origin/2.4'Eike Ziller2011-11-011-8/+24
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/qmljs/qmljsinterpreter.cpp src/libs/qmljs/qmljsinterpreter.h src/plugins/madde/maemopackagecreationstep.cpp src/plugins/projectexplorer/buildmanager.cpp src/plugins/qmljstools/qmljsqtstylecodeformatter.cpp src/plugins/qmljstools/qmljsqtstylecodeformatter.h tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp Change-Id: I63ab2ba5dac006c37ccfbae55b023396a4676ff7
| * QmlJS: Avoid an infinite loop if a qmltypes file has a cycle.Christian Kamm2011-10-311-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | The qmltypes files shipped with libraries shouldn't, but could define components that form a prototype cycle. Use of the new QmlObjectValue::prototypes() function avoids the code model getting stuck in an infinite loop for these cases. For plain ObjectValues this is already solved by using PrototypeIterator. Change-Id: I0f562672ab99b454bc3a0121c7a1b9eca43476bb Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Support module apis defined by QML modules.Christian Kamm2011-10-211-6/+4
| | | | | | | | | | Change-Id: I18ec9daf8088f7db5ff2da11da14b539f501bab3 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Introduce UnknownValue.Christian Kamm2011-10-181-37/+29
| | | | | | | | | | | | | | To distinguish known-to-be-undefined from a genuinely unknown value. Change-Id: I606b4ea4d726f94553400b8950d3c0a4e76564a8 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Convert more dynamic_casts to value_casts.Christian Kamm2011-10-131-0/+10
| | | | | | | | | | | | | | | | And introduce a good error message for the case when someone forgets the specialization of the value_cast template. Change-Id: Iec55a839e8f5eef5872b1dab8601f66e0e0c88de Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
* | QmlJS: Add more value_casts.Christian Kamm2011-10-121-14/+64
| | | | | | | | | | | | | | | | | | | | And switch all existing dynamic_casts to value_casts. Change-Id: I93b89358e4802080f40b332074c64f4e91a2bc4c Reviewed-on: http://codereview.qt-project.org/6311 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Rename QmlObjectValue -> CppComponentValue.Christian Kamm2011-10-121-52/+52
| | | | | | | | | | | | | | | | | | Reviewed-by: Fawzi Mohamed Reviewed-by: Thomas Hartmann Change-Id: Ib89388d5a5678403e4637eec5829f3520637ee27 Reviewed-on: http://codereview.qt-project.org/6310 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS: Set correct scope in signal handlers.Christian Kamm2011-10-121-20/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means the code model will now offer correct completion and highlighting for arguments of signals in their handlers, example: MouseArea { onClicked: { mou<complete> // now also completes 'mouse' } } Reviewed-by: Fawzi Mohamed Change-Id: I01838ef00e391b13e6e5a832c9ec3cd983689c5b Reviewed-on: http://codereview.qt-project.org/6147 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS checks: Disable some checks when imports failed.Christian Kamm2011-10-121-0/+14
| | | | | | | | | | | | | | | | | | The important error in this case is on the import. Change-Id: I3a547ca7ac44a89aba6819ea80ec52185071408a Reviewed-on: http://codereview.qt-project.org/5879 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS: Allow 'var' property type.Christian Kamm2011-10-061-1/+3
|/ | | | | | | | It's new in Qt 5. Change-Id: If3e670d42528ca6996ae280d96077ce744d281d9 Reviewed-on: http://codereview.qt-project.org/6121 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Support .import directives in js files.Christian Kamm2011-09-281-24/+74
| | | | | | | | | | | * Allow .import... * Fix parsing of JS files when using Lexer::scanDirectives() * Clean up ImportInfo construction. * Rename ImportInfo::id to ImportInfo::as. Change-Id: I888da248f06dc6184db99aa74c3b50d7f2f5e491 Reviewed-on: http://codereview.qt-project.org/5625 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Fix crash.Christian Kamm2011-09-271-1/+1
| | | | | | Change-Id: Ieacc7896eaeb478c6bd79a0865280f0cb595101e Reviewed-on: http://codereview.qt-project.org/5619 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix threading issue in QmlObjectValue.Christian Kamm2011-09-271-12/+14
| | | | | | | | Still need to get rid of the lock in ValueOwner::registerValue. Change-Id: If9bbc548de54edf52805906aaaf730f5c66573dd Reviewed-on: http://codereview.qt-project.org/5542 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Separate metaObjectRevision from minor version number.Christian Kamm2011-09-261-12/+32
| | | | | | | | | | | | | | | | | | They need not to be identical. Additionally: * Rename ImportInfo::name to path, because that's what it does. * Add ImportInfo::name, for getting the uri with the names separated by dots. * Allow for exportMetaObjectRevisions in qmltypes files. * Allow for exports with an empty type name, as generated by qmlRegisterRevision. They are used for associating meta object revisions with non-exported types. * Rewrite the Qt 4.7 import to QtQuick 1.0 at an early stage. In preparation for the Qt 5 type information update, where Qt 4.7 is gone. Change-Id: Ia287193623d9530a56b9eb8d2481d50aabd94c3e Reviewed-on: http://codereview.qt-project.org/5309 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix enum completion with 'as' imports.Christian Kamm2011-09-191-0/+27
| | | | | | Change-Id: Ifc229c23c14a6395c9d3e5f7ec76b9b04678787d Reviewed-on: http://codereview.qt-project.org/5134 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Rework exported C++ type registry.Christian Kamm2011-09-191-168/+130
| | | | | | | | | | | | | | | | The problem was that if you exported A 1.0, A 1.1 and B 1.0 where A is the prototype of B the code model had not enough information to know that, depending on the import, B 1.0's prototype should be A 1.1 or A 1.0. To solve this problem QmlObjectValues now store the import's version as well as the local component version. In the example above B 1.0 would have import version 1.1 if the 1.1 module was imported and thus be able to choose the right prototype. Change-Id: I7ef33f12ca5a528c62b2a8240f4b5720b0ebd4c3 Reviewed-on: http://codereview.qt-project.org/5129 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Change from QMap to QHash for QString keys.Christian Kamm2011-09-191-1/+1
| | | | | | | | | Tests indicate that lookup in QHash<QString, ...> is more performant even for short strings. Change-Id: I8e5a73d0f1a72e202522f397b16901887f9c3591 Reviewed-on: http://codereview.qt-project.org/5070 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
* QmlJS: When completing enums, add Item.Foo instead of "Foo".Christian Kamm2011-09-151-10/+13
| | | | | | Change-Id: I9a74bd726d9691ca93477916159a80c04c35f52d Reviewed-on: http://codereview.qt-project.org/4987 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Improve completion of signals.Christian Kamm2011-09-141-17/+42
| | | | | | | | | | | | * Change from Reference to FunctionValue: There was no reason for them being References as the argument types never need lookup. * Enumerate in global completion: When you define 'signal foo(int a)' you now get completion for 'foo' and will get the function argument hint popup. Change-Id: Ic348db477a34ba468dfdb690499a9cd8fd605cd2 Reviewed-on: http://codereview.qt-project.org/4774 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>