Update Qt to support Markup structure

This commit is contained in:
Sam Truscott 2014-01-02 20:09:28 +01:00 committed by Daniel Marjamäki
parent 4333dd3c75
commit 389bf7ed3f
1 changed files with 80 additions and 0 deletions

80
cfg/qt.cfg Normal file
View File

@ -0,0 +1,80 @@
<?xml version="1.0"?>
<def>
<markup ext=".qml" reporterrors="false" aftercode="true">
<!-- keywords in QML code to ignore -->
<keywords>
<keyword name="if"/>
<keyword name="while"/>
<keyword name="typeof"/>
<keyword name="for"/>
</keywords>
<!-- code blocks are meta-code/pseudo code placed in the library
that is used/called by the native c/c++ code -->
<codeblocks>
<!-- need to add all the QML function names below -->
<block name="onClicked"/>
<block name="onFinished"/>
<block name="onTriggered"/>
<block name="onRetrieveTriggered"/>
<block name="onPressed"/>
<block name="onTouch"/>
<block name="onFocusedChanged"/>
<block name="onSubmittedNewStatusChanged"/>
<block name="onCreationCompleted"/>
<!-- code block structure in QML is:
onClicked: {
call(var)
} -->
<structure offset="3" start="{" end="}"/>
<!-- the start block is '3' tokens after the
name token so we skip them -->
</codeblocks>
<!-- Qt Properties have the format :
Q_PROPERTY(<type> <name> READ <func> WRITE <func> NOTIFY <func>)
the READ/WRITE/NOTIFY parts are optional -->
<exported>
<exporter prefix="Q_PROPERTY">
<suffix>READ</suffix> <!-- catch the element before READ if present -->
<prefix>READ</prefix>
<prefix>WRITE</prefix>
<prefix>NOTIFY</prefix>
</exporter>
</exported>
<!-- qml files can call connect on the c++ code -->
<imported>
<importer>connect</importer>
</imported>
</markup>
<!-- qt can call methods as strings using invokeMethod -->
<markup ext=".c" reporterrors="true">
<reflection>
<call arg="4">invokeMethod</call>
</reflection>
</markup>
<markup ext=".cpp" reporterrors="true">
<reflection>
<call arg="4">invokeMethod</call>
</reflection>
</markup>
<markup ext=".cxx" reporterrors="true">
<reflection>
<call arg="4">invokeMethod</call>
</reflection>
</markup>
<!-- the SLOT/SIGNAL methods can be cause false-positives for pure
virtual functions being called in the constructor because it sees
the macro as a function. -->
<function name="SLOT">
<ignorefunction>true</ignorefunction>
</function>
<function name="SIGNAL">
<ignorefunction>true</ignorefunction>
</function>
</def>