diff options
author | renatofilho <renato.filho@openbossa.org> | 2010-11-09 16:09:01 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:08:55 -0300 |
commit | 1f1f84a52a1cf3ee02dabea643d8d9a9bbb807ed (patch) | |
tree | 6b167ecdf933b72272c9bebe0a1bf17f9ddc9c1d /generator | |
parent | 4a7a57ef0f504652a5690e25affe4a0edde9dfa7 (diff) |
Fixed overload functions with QVariant.
Decrease the QVariant priority during the function overload.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
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); |