MCPcopy Create free account
hub / github.com/OmixVisualization/qtjambi / convertQObjectToJavaObject

Method convertQObjectToJavaObject

src/cpp/QtJambi/convert.cpp:3791–3826  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3789}
3790
3791jobject QtJambiAPI::convertQObjectToJavaObject(JNIEnv *env, const QObject *qt_object, jclass clazz)
3792{
3793 if(qt_object){
3794 const std::type_info* typeId{nullptr};
3795 try{
3796 typeId = QtJambiPrivate::CheckPointer<QObject>::trySupplyType(qt_object);
3797 }catch(...){}
3798 // check rtti availability:
3799 if(typeId){
3800 try{
3801 if(const QtJambiShellInterface* shell = dynamic_cast<const QtJambiShellInterface*>(qt_object))
3802 return QtJambiShellInterface::getJavaObjectLocalRef(env, shell);
3803 }catch(...){}
3804 }else{
3805 QtJambiAPI::checkDanglingPointer(env, qt_object);
3806 }
3807 QString className;
3808 if(clazz){
3809 className = QtJambiAPI::getClassName(env, clazz).replace(".", "/");
3810 if(!typeId)
3811 typeId = getTypeByJavaName(className);
3812 }else{
3813 if(!typeId)
3814 typeId = &typeid(QObject);
3815 }
3816 if(typeId){
3817 bool ok;
3818 jobject result = convertQObjectToJavaObjectOfTypeId(env, qt_object, *typeId, &ok, NativeToJavaConversionMode::None);
3819 if(ok)
3820 return result;
3821 }
3822 return convertQObjectToJavaObjectOfClass(env, qt_object, className.toUtf8(), clazz, NativeToJavaConversionMode::None);
3823 }else{
3824 return nullptr;
3825 }
3826}
3827
3828jobject QtJambiAPI::convertQObjectToJavaObject(JNIEnv *env, const QObject *qt_object, const std::type_info& typeId)
3829{

Callers

nothing calls this directly

Calls 9

getJavaObjectLocalRefFunction · 0.85
checkDanglingPointerFunction · 0.85
getJavaNameFunction · 0.85
resolveClassFunction · 0.85
getTypeByJavaNameFunction · 0.70
replaceMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected