aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
Diffstat (limited to 'generator')
-rw-r--r--generator/overloaddata.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/generator/overloaddata.cpp b/generator/overloaddata.cpp
index 9be972f1f..031c06848 100644
--- a/generator/overloaddata.cpp
+++ b/generator/overloaddata.cpp
@@ -147,6 +147,9 @@ void OverloadData::sortNextOverloads()
OverloadSortData sortData;
bool checkPyObject = false;
int pyobjectIndex = 0;
+ bool checkQString = false;
+ bool hasObjectPointer = false;
+ int qstringIndex = 0;
// Primitive types that are not int, long, short,
// char and their respective unsigned counterparts.
@@ -172,6 +175,15 @@ void OverloadData::sortNextOverloads()
if (!checkPyObject && getTypeName(ov->argType()).contains("PyObject")) {
checkPyObject = true;
pyobjectIndex = sortData.lastProcessedItemId();
+ } else if (!checkQString && getTypeName(ov->argType()) == "QString") {
+ checkQString = true;
+ qstringIndex = sortData.lastProcessedItemId();
+ if (referenceFunction()->name() == "QListWidgetItem")
+ qDebug() << ov->argType()->minimalSignature() << " checkQString: " << checkQString;
+ } else if (!hasObjectPointer && (ov->argType()->isValuePointer() || ov->argType()->typeEntry()->isObject() )) {
+ hasObjectPointer = true;
+ if (referenceFunction()->name() == "QListWidgetItem")
+ qDebug() << ov->argType()->minimalSignature() << " hasObjectPointer: " << hasObjectPointer;
}
foreach (const AbstractMetaType* instantiation, ov->argType()->instantiations()) {
@@ -267,6 +279,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 (checkQString && hasObjectPointer && targetTypeEntryName != "QString")
+ graph.addEdge(sortData.map[targetTypeEntryName], qstringIndex);
if (targetTypeEntry->isEnum()) {
for (int i = 0; i < numPrimitives; ++i) {