34 : jInstance(jInstance)
45 bool canFetchMore(
const QModelIndex &parent)
const override;
46 bool canFetchMoreDefault(
const QModelIndex &parent)
const;
47 QHash<int, QByteArray> roleNames()
const override;
48 QHash<int, QByteArray> defaultRoleNames()
const;
51 bool hasChildren(
const QModelIndex &parent)
const override;
52 bool hasChildrenDefault(
const QModelIndex &parent)
const;
57 nativeInstance(QtJniTypes::JQtAbstractItemModel itemModel);
61 template <
typename Func,
typename... Args>
65 auto model = qobject_cast<QAndroidItemModelProxy *>(nativeInstance(jvmObject));
70 template <
typename Func,
typename... Args>
74 auto model = nativeInstance(jvmObject);
79 template <
typename Func1,
typename Func2,
typename... Args>
84 auto nativeModel = nativeInstance(jvmObject);
85 auto nativeProxyModel = qobject_cast<QAndroidItemModelProxy *>(nativeModel);
87 return std::invoke(defaultFunc, nativeProxyModel, std::forward<Args>(
args)...);
89 return std::invoke(
func, nativeModel, std::forward<Args>(
args)...);
92 static jint jni_columnCount(JNIEnv *env, jobject
object, JQtModelIndex parent);
93 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_columnCount)
95 static jobject jni_data(JNIEnv *env, jobject
object, JQtModelIndex
index, jint role);
96 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_data)
98 static jobject jni_index(JNIEnv *env, jobject
object, jint
row, jint
column,
99 JQtModelIndex parent);
100 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_index)
102 static jobject jni_parent(JNIEnv *env, jobject
object, JQtModelIndex
index);
103 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_parent)
105 static jint jni_rowCount(JNIEnv *env, jobject
object, JQtModelIndex parent);
106 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_rowCount)
108 static jboolean jni_canFetchMore(JNIEnv *env, jobject
object, JQtModelIndex parent);
109 QT_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE_2(jni_canFetchMore, canFetchMore)
111 static void jni_fetchMore(JNIEnv *env, jobject
object, JQtModelIndex parent);
112 QT_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE_2(jni_fetchMore, fetchMore)
114 static jboolean jni_hasChildren(JNIEnv *env, jobject
object, JQtModelIndex parent);
115 QT_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE_2(jni_hasChildren, hasChildren)
117 static jboolean jni_hasIndex(JNIEnv *env, jobject
object, jint
row, jint
column,
118 JQtModelIndex parent);
119 QT_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE_2(jni_hasIndex, hasIndex)
121 static jobject jni_roleNames(JNIEnv *env, jobject
object);
122 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_roleNames)
124 static void jni_beginInsertColumns(JNIEnv *env, jobject
object, JQtModelIndex parent,
125 jint
first, jint last);
126 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginInsertColumns)
128 static void jni_beginInsertRows(JNIEnv *env, jobject
object, JQtModelIndex parent, jint
first,
130 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginInsertRows)
132 static jboolean jni_beginMoveColumns(JNIEnv *env, jobject
object, JQtModelIndex sourceParent,
133 jint sourceFirst, jint sourceLast,
134 JQtModelIndex destinationParent, jint destinationChild);
135 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginMoveColumns)
137 static jboolean jni_beginMoveRows(JNIEnv *env, jobject
object, JQtModelIndex sourceParent,
138 jint sourceFirst, jint sourceLast,
139 JQtModelIndex destinationParent, jint destinationChild);
140 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginMoveRows)
142 static void jni_beginRemoveColumns(JNIEnv *env, jobject
object, JQtModelIndex parent,
143 jint
first, jint last);
144 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginRemoveColumns)
146 static void jni_beginRemoveRows(JNIEnv *env, jobject
object, JQtModelIndex parent, jint
first,
148 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginRemoveRows)
150 static void jni_beginResetModel(JNIEnv *env, jobject
object);
151 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_beginResetModel)
153 static jobject jni_createIndex(JNIEnv *env, jobject
object, jint
row, jint
column, jlong
id);
154 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_createIndex)
156 static void jni_endInsertColumns(JNIEnv *env, jobject
object);
157 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endInsertColumns)
159 static void jni_endInsertRows(JNIEnv *env, jobject
object);
160 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endInsertRows)
162 static void jni_endMoveColumns(JNIEnv *env, jobject
object);
163 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endMoveColumns)
165 static void jni_endMoveRows(JNIEnv *env, jobject
object);
166 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endMoveRows)
168 static void jni_endRemoveColumns(JNIEnv *env, jobject
object);
169 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endRemoveColumns)
171 static void jni_endRemoveRows(JNIEnv *env, jobject
object);
172 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endRemoveRows)
174 static void jni_endResetModel(JNIEnv *env, jobject
object);
175 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_endResetModel)
177 static jobject jni_sibling(JNIEnv *env, jobject
object, jint
row, jint
column,
178 JQtModelIndex parent);
179 Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(jni_sibling)