@@ -695,7 +695,19 void* PythonQtClassInfo::recursiveCastDownIfPossible(void* ptr, char** resultCla | |||||
695 | void* PythonQtClassInfo::castDownIfPossible(void* ptr, PythonQtClassInfo** resultClassInfo) |
|
695 | void* PythonQtClassInfo::castDownIfPossible(void* ptr, PythonQtClassInfo** resultClassInfo) | |
696 | { |
|
696 | { | |
697 | char* className; |
|
697 | char* className; | |
698 | void* resultPtr = recursiveCastDownIfPossible(ptr, &className); |
|
698 | // this would do downcasting recursively... | |
|
699 | // void* resultPtr = recursiveCastDownIfPossible(ptr, &className); | |||
|
700 | ||||
|
701 | // we only do downcasting on the base object, not on the whole inheritance tree... | |||
|
702 | void* resultPtr = NULL; | |||
|
703 | if (!_polymorphicHandlers.isEmpty()) { | |||
|
704 | foreach(PythonQtPolymorphicHandlerCB* cb, _polymorphicHandlers) { | |||
|
705 | resultPtr = (*cb)(ptr, &className); | |||
|
706 | if (resultPtr) { | |||
|
707 | break; | |||
|
708 | } | |||
|
709 | } | |||
|
710 | } | |||
699 | if (resultPtr) { |
|
711 | if (resultPtr) { | |
700 | *resultClassInfo = PythonQt::priv()->getClassInfo(className); |
|
712 | *resultClassInfo = PythonQt::priv()->getClassInfo(className); | |
701 | } else { |
|
713 | } else { |
General Comments 0
You need to be logged in to leave comments.
Login now