diff options
Diffstat (limited to 'generator')
-rw-r--r-- | generator/overloaddata.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/generator/overloaddata.cpp b/generator/overloaddata.cpp index 3ad657ab6..ca0babc7a 100644 --- a/generator/overloaddata.cpp +++ b/generator/overloaddata.cpp @@ -148,8 +148,10 @@ void OverloadData::sortNextOverloads() bool checkPyObject = false; int pyobjectIndex = 0; bool checkQString = false; - bool hasObjectPointer = false; int qstringIndex = 0; + bool checkQVariant = false; + int qvariantIndex = 0; + bool hasObjectPointer = false; // Primitive types that are not int, long, short, // char and their respective unsigned counterparts. @@ -175,6 +177,9 @@ void OverloadData::sortNextOverloads() if (!checkPyObject && getTypeName(ov->argType()).contains("PyObject")) { checkPyObject = true; pyobjectIndex = sortData.lastProcessedItemId(); + } else if (!checkQVariant && getTypeName(ov->argType()) == "QVariant") { + checkQVariant = true; + qvariantIndex = sortData.lastProcessedItemId(); } else if (!checkQString && getTypeName(ov->argType()) == "QString") { checkQString = true; qstringIndex = sortData.lastProcessedItemId(); @@ -275,6 +280,8 @@ void OverloadData::sortNextOverloads() /* Add dependency on PyObject, so its check is the last one (too generic) */ if (checkPyObject && !targetTypeEntryName.contains("PyObject")) graph.addEdge(sortData.map[targetTypeEntryName], pyobjectIndex); + else if (checkQVariant && targetTypeEntryName != "QVariant") + graph.addEdge(sortData.map[targetTypeEntryName], qvariantIndex); else if (checkQString && hasObjectPointer && targetTypeEntryName != "QString") graph.addEdge(sortData.map[targetTypeEntryName], qstringIndex); |