4#ifndef QANDROIDTYPECONVERTER_P_H
5#define QANDROIDTYPECONVERTER_P_H
17#include <QtQuick/private/qandroidtypes_p.h>
18#include <QtQuick/private/qandroiditemmodelproxy_p.h>
20#include <QtCore/qjniobject.h>
21#include <QtCore/qjnienvironment.h>
22#include <QtCore/qjnitypes.h>
30 using namespace QtJniTypes;
31 if (!
object.isValid())
35 if (classname == Traits<String>::className())
36 return object.toString();
37 else if (classname == Traits<Integer>::className())
38 return object.callMethod<jint>(
"intValue");
39 else if (classname == Traits<Long>::className())
40 return QVariant::fromValue<long>(
object.callMethod<jlong>(
"longValue"));
41 else if (classname == Traits<Double>::className())
42 return object.callMethod<jdouble>(
"doubleValue");
43 else if (classname == Traits<Float>::className())
44 return object.callMethod<jfloat>(
"floatValue");
45 else if (classname == Traits<Boolean>::className())
46 return QVariant::fromValue<bool>(
object.callMethod<jboolean>(
"booleanValue"));
49 const jclass
className = env.findClass(Traits<JQtAbstractItemModel>::className());
50 if (env->IsInstanceOf(
object.object(),
className))
61 case QMetaType::Type::Int:
62 return env->NewLocalRef(QJniObject::construct<QtJniTypes::Integer>(
65 case QMetaType::Type::Long:
66 case QMetaType::Type::LongLong:
67 return env->NewLocalRef(QJniObject::construct<QtJniTypes::Long>(
70 case QMetaType::Type::Double:
71 return env->NewLocalRef(QJniObject::construct<QtJniTypes::Double>(
74 case QMetaType::Type::Float:
75 return env->NewLocalRef(QJniObject::construct<QtJniTypes::Float>(
78 case QMetaType::Type::Bool:
79 return env->NewLocalRef(QJniObject::construct<QtJniTypes::Boolean>(
82 case QMetaType::Type::QString:
83 return env->NewLocalRef(
84 QJniObject::fromString(get<QString>(
var)).
object());
87 return env->NewLocalRef(
static QJniObject createProxy(QAbstractItemModel *abstractClass)
static Q_REQUIRED_RESULT QAbstractItemModel * createNativeProxy(QJniObject itemModel)
int typeId() const
Returns the storage type of the value stored in the variant.
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
bool canConvert(QMetaType targetType) const
static QVariant toQVariant(const QJniObject &object)
static Q_REQUIRED_RESULT jobject toJavaObject(const QVariant &var, JNIEnv *env)
Combined button and popup list for selecting options.
#define Q_REQUIRED_RESULT
const char className[16]
[1]