Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def qml_info_type(symbol):
"""
Returns the correct type for the symbol, to be used inside the qmltype templates
"""
prefix = Filters.classPrefix
if symbol.type.is_enum or symbol.type.is_flag:
return('{0}{1}Module::{2}'.format(prefix, upper_first(symbol.module.module_name), flag_type(symbol)))
elif symbol.type.is_void or symbol.type.is_primitive:
if symbol.type.is_real:
return 'double'
return symbol.type.name
elif symbol.type.is_struct:
return 'QVariant'
elif symbol.type.is_list:
return 'QVariantList'
elif symbol.type.is_model:
return 'QIviPagingModel'
else:
jinja_error('qml_info_type: Unknown symbol {0} of type {1}'.format(symbol, symbol.type))
def parameter_type(symbol):
"""
Return the parameter declaration for properties, handle camel case module name
"""
prefix = Filters.classPrefix
if symbol.type.is_enum or symbol.type.is_flag:
return '{0}{1}Module::{2} {3}'.format(prefix, upper_first(symbol.module.module_name), flag_type(symbol), symbol)
if symbol.type.is_void or symbol.type.is_primitive:
if symbol.type.name == 'string':
return 'const QString &{0}'.format(symbol)
if symbol.type.name == 'var':
return 'const QVariant &{0}'.format(symbol)
if symbol.type.name == 'real':
return 'qreal {0}'.format(symbol)
return '{0} {1}'.format(symbol.type, symbol)
elif symbol.type.is_list:
nested = return_type(symbol.type.nested)
return 'const QVariantList &{1}'.format(nested, symbol)
elif symbol.type.is_model:
nested = symbol.type.nested
if nested.is_primitive:
return '{0}VariantModel *{1}'.format(prefix, symbol)
elif nested.is_complex:
if t.is_int:
return '111'
if t.is_bool:
return 'true'
if t.is_string:
return '"TEST STRING"'
if t.is_real:
return '1234.5678'
if t.is_var:
return 'QVariant("TEST VARIANT")'
elif t.is_void:
return ''
elif t.is_enum:
module_name = t.reference.module.module_name
value = list(iter(t.reference.members))[-1]
return '{0}{1}Module::{2}'.format(prefix, upper_first(module_name), value)
elif t.is_flag:
module_name = t.reference.module.module_name
value = next(iter(t.reference.members))
return '{0}{1}Module::{2}'.format(prefix, upper_first(module_name), value)
elif symbol.type.is_list:
value = test_type_value(t.nested.type)
if not (t.nested.type.is_primitive ):
value = 'QVariant::fromValue({0})'.format(value)
return 'QVariantList({{{0}}})'.format(value)
elif symbol.type.is_struct:
values_string = ', '.join(test_type_value(e) for e in symbol.type.reference.fields)
return '{0}{1}({2})'.format(prefix, symbol.type, values_string)
elif symbol.type.is_model:
return 'new QIviPagingModel()'
jinja_error('test_type_value: Unknown parameter {0} of type {1}'.format(symbol, symbol.type))
def return_type(symbol):
"""
Return the type declaration for properties, handle camel case module name
"""
prefix = Filters.classPrefix
if symbol.type.is_enum or symbol.type.is_flag:
return('{0}{1}Module::{2}'.format(prefix, upper_first(symbol.module.module_name), flag_type(symbol)))
if symbol.type.is_void or symbol.type.is_primitive:
if symbol.type.name == 'string':
return 'QString'
if symbol.type.name == 'var':
return 'QVariant'
if symbol.type.name == 'real':
return 'qreal'
return symbol.type.name
elif symbol.type.is_list:
nested = return_type(symbol.type.nested)
return 'QVariantList'.format(nested)
elif symbol.type.is_model:
nested = symbol.type.nested
if nested.is_primitive:
return '{0}VariantModel *'.format(prefix)
elif nested.is_complex:
return 'bool(false)'
if t.is_string:
return 'QString()'
if t.is_real:
return 'qreal(0.0)'
if t.is_var:
return 'QVariant()'
elif t.is_void:
return ''
elif t.is_enum:
module_name = t.reference.module.module_name
value = next(iter(t.reference.members))
return '{0}{1}Module::{2}'.format(prefix, upper_first(module_name), value)
elif t.is_flag:
module_name = t.reference.module.module_name
return '{0}{1}Module::{2}()'.format(prefix, upper_first(module_name), flag_type(symbol))
elif symbol.type.is_list:
nested = Filters.returnType(symbol.type.nested)
return 'QVariantList()'.format(nested)
elif symbol.type.is_struct:
return '{0}{1}()'.format(prefix, symbol.type)
elif symbol.type.is_model:
return 'nullptr'
jinja_error('default_type_value: Unknown parameter {0} of type {1}'.format(symbol, symbol.type))
if t.is_int:
return 'int(0)'
if t.is_bool:
return 'bool(false)'
if t.is_string:
return 'QString()'
if t.is_real:
return 'qreal(0.0)'
if t.is_var:
return 'QVariant()'
elif t.is_void:
return ''
elif t.is_enum:
module_name = t.reference.module.module_name
value = next(iter(t.reference.members))
return '{0}{1}Module::{2}'.format(prefix, upper_first(module_name), value)
elif t.is_flag:
module_name = t.reference.module.module_name
return '{0}{1}Module::{2}()'.format(prefix, upper_first(module_name), flag_type(symbol))
elif symbol.type.is_list:
nested = Filters.returnType(symbol.type.nested)
return 'QVariantList()'.format(nested)
elif symbol.type.is_struct:
return '{0}{1}()'.format(prefix, symbol.type)
elif symbol.type.is_model:
return 'nullptr'
jinja_error('default_type_value: Unknown parameter {0} of type {1}'.format(symbol, symbol.type))