aboutsummaryrefslogtreecommitdiffstats
path: root/generator/overloaddata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'generator/overloaddata.cpp')
-rw-r--r--generator/overloaddata.cpp9
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);