aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--find-modules/sip_generator.py9
-rw-r--r--tests/GenerateSipBindings/cpplib.cpp20
-rw-r--r--tests/GenerateSipBindings/cpplib.h5
3 files changed, 34 insertions, 0 deletions
diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py
index 621fe711..4b81ca33 100644
--- a/find-modules/sip_generator.py
+++ b/find-modules/sip_generator.py
@@ -578,6 +578,9 @@ class SipGenerator(object):
def _get_param_type(parameter):
result = parameter.type.get_declaration().type
+ if parameter.type.get_declaration().type.kind == TypeKind.INVALID:
+ return parameter.type
+
if (parameter.type.get_declaration().type.kind == TypeKind.TYPEDEF):
isQFlags = False
for member in parameter.type.get_declaration().get_children():
@@ -592,6 +595,12 @@ class SipGenerator(object):
def _get_param_value(text, parameterType):
if text == "0" or text == "nullptr":
return text
+ if text == "{}":
+ if parameterType.kind == TypeKind.ENUM:
+ return "0"
+ if parameterType.kind == TypeKind.POINTER:
+ return "nullptr"
+ return parameterType.spelling + "()"
if not "::" in parameterType.spelling:
return text
try:
diff --git a/tests/GenerateSipBindings/cpplib.cpp b/tests/GenerateSipBindings/cpplib.cpp
index e7cb1d17..af689966 100644
--- a/tests/GenerateSipBindings/cpplib.cpp
+++ b/tests/GenerateSipBindings/cpplib.cpp
@@ -105,6 +105,26 @@ void MyObject::enumNullptr(Qt::WindowFlags f)
}
+void MyObject::enumBraces(Qt::WindowFlags f)
+{
+
+}
+
+void MyObject::stringBraces(QString s)
+{
+
+}
+
+void MyObject::intBraces(int i)
+{
+
+}
+
+void MyObject::pointerBraces(int* p)
+{
+
+}
+
LocalFwdDecl::LocalFwdDecl(int value)
: m_value(value)
{
diff --git a/tests/GenerateSipBindings/cpplib.h b/tests/GenerateSipBindings/cpplib.h
index c54b6b7a..60c5c66a 100644
--- a/tests/GenerateSipBindings/cpplib.h
+++ b/tests/GenerateSipBindings/cpplib.h
@@ -53,6 +53,11 @@ public:
void enumNullptr(Qt::WindowFlags f = nullptr);
+ void enumBraces(Qt::WindowFlags f = {});
+ void stringBraces(QString s = {});
+ void intBraces(int i = {});
+ void pointerBraces(int* p = {});
+
int const_parameters(const int input, QObject* const obj = 0) const;
int externalFwdDecl(const ExternalFwdDecl& f);