aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorrenatofilho <renato.filho@openbossa.org>2010-11-09 16:09:01 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:08:55 -0300
commit1f1f84a52a1cf3ee02dabea643d8d9a9bbb807ed (patch)
tree6b167ecdf933b72272c9bebe0a1bf17f9ddc9c1d /generator
parent4a7a57ef0f504652a5690e25affe4a0edde9dfa7 (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.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);