aboutsummaryrefslogtreecommitdiffstats
path: root/qface/helper/qtcpp.py
diff options
context:
space:
mode:
Diffstat (limited to 'qface/helper/qtcpp.py')
-rw-r--r--qface/helper/qtcpp.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/qface/helper/qtcpp.py b/qface/helper/qtcpp.py
index 458de61..aba3176 100644
--- a/qface/helper/qtcpp.py
+++ b/qface/helper/qtcpp.py
@@ -3,6 +3,11 @@ Provides helper functionality specificially for Qt C++/QML code generators
"""
+def upper_first(s):
+ s = str(s)
+ return s[0].upper() + s[1:]
+
+
class Filters(object):
"""provides a set of filters to be used with the template engine"""
classPrefix = 'Qml'
@@ -38,9 +43,11 @@ class Filters(object):
elif symbol.type.is_struct:
return 'Qml{0}()'.format(symbol.type)
elif symbol.type.is_model:
- nested = Filters.returnType(symbol.type.nested)
- return 'new {0}Model(this)'.format(nested)
-
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'new QmlVariantModel(this)'
+ elif nested.is_complex:
+ return 'new Qml{0}Model(this)'.format(nested)
return 'XXX'
@staticmethod
@@ -61,9 +68,14 @@ class Filters(object):
nested = Filters.returnType(symbol.type.nested)
return 'const QVariantList &{1}'.format(nested, symbol)
elif symbol.type.is_model:
- return 'Qml{0}Model *{1}'.format(symbol.type.nested, symbol)
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'QmlVariantModel *{0}'.format(symbol)
+ elif nested.is_complex:
+ return 'Qml{0}Model *{1}'.format(nested, symbol)
else:
return 'const {0}{1} &{2}'.format(classPrefix, symbol.type, symbol)
+ return 'XXX'
@staticmethod
def returnType(symbol):
@@ -83,6 +95,12 @@ class Filters(object):
nested = Filters.returnType(symbol.type.nested)
return 'QVariantList'.format(nested)
elif symbol.type.is_model:
- return 'Qml{0}Model*'.format(symbol.type.nested)
+ nested = symbol.type.nested
+ if nested.is_primitive:
+ return 'QmlVariantModel *'
+ elif nested.is_complex:
+ return 'Qml{0}Model *'.format(nested)
else:
return '{0}{1}'.format(classPrefix, symbol.type)
+ return 'XXX'
+