Skip to main content

qtbridge_interfaces/qabstract_item_model/
proxy_cpp_bridge.rs

1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only
3
4use qtbridge_runtime::qproxies::QCppProxy;
5use qtbridge_runtime::DynamicMetaObjectData;
6use qtbridge_type_lib::QMetaObject;
7use crate::impl_qcpp_proxy;
8
9use super::proxy_rust::QAbstractItemModelProxyRust;
10#[cxx::bridge]
11pub mod ffi {
12    unsafe extern "C++" {
13        include!("qtbridge-type-lib/src/core/qhash/cpp/qhash_i32_qbytearray.h");
14        type QHash_i32_QByteArray = qtbridge_type_lib::QHash_i32_QByteArray;
15        include!("qtbridge-type-lib/src/core/qmetaobject/cpp/qmetaobject.h");
16        type QMetaObject = qtbridge_type_lib::QMetaObject;
17        include!("qtbridge-type-lib/src/core/qmetatype/cpp/qmetatype.h");
18        type QMetaType = qtbridge_type_lib::QMetaType;
19        include!("qtbridge-runtime/src/cpp/dynamicmetaobjectdata.h");
20        type DynamicMetaObjectData = qtbridge_runtime::DynamicMetaObjectData;
21        include!("qtbridge-type-lib/src/core/qmodelindex/cpp/qmodelindex.h");
22        type QModelIndex = qtbridge_type_lib::QModelIndex;
23        include!("qtbridge-type-lib/src/core/qvariant/cpp/qvariant.h");
24        type QVariant = qtbridge_type_lib::QVariant;
25        include!("qtbridge-interfaces/src/qabstract_item_model/proxy_rust_bridge.rs.h");
26        type QAbstractItemModelProxyRust = super::QAbstractItemModelProxyRust;
27    }
28    #[allow(clippy::missing_safety_doc)]
29    #[namespace = "rust::bridge"]
30    unsafe extern "C++" {
31        include!("qtbridge-interfaces/src/qabstract_item_model/cpp/QAbstractItemModelProxyCpp.h");
32        type QAbstractItemModelProxyCpp;
33        # [Self = QAbstractItemModelProxyCpp]
34        # [rust_name = create]
35        unsafe fn create(rust_proxy: *mut QAbstractItemModelProxyRust, metaobject: *const DynamicMetaObjectData) -> *mut QAbstractItemModelProxyCpp;
36        # [Self = QAbstractItemModelProxyCpp]
37        # [rust_name = create_at]
38        unsafe fn createAt(rust_proxy: *mut QAbstractItemModelProxyRust, metaobject: *const DynamicMetaObjectData, addr: *mut u8)
39        -> *mut QAbstractItemModelProxyCpp;
40        # [Self = QAbstractItemModelProxyCpp]
41        # [rust_name = static_qmeta_object]
42        fn baseStaticMetaObject() -> &'static QMetaObject;
43        # [Self = QAbstractItemModelProxyCpp]
44        # [rust_name = size_of]
45        fn sizeOfProxy() -> usize;
46        # [Self = QAbstractItemModelProxyCpp]
47        # [rust_name = align_of]
48        fn alignOfProxy() -> usize;
49        # [Self = QAbstractItemModelProxyCpp]
50        # [rust_name = parser_status_cast]
51        fn parserStatusCast() -> i32;
52        # [rust_name = emit_signal_cpp]
53        fn emitSignal(self: Pin<&mut Self>, signal_name: &str, argv: &[*const u8]);
54        # [rust_name = base_role_names]
55        fn base_roleNames(&self) -> QHash_i32_QByteArray;
56        # [rust_name = base_set_data]
57        fn base_setData(self: Pin<&mut Self>, index: &QModelIndex, value: &QVariant, role: i32) -> bool;
58        # [rust_name = base_remove_rows]
59        fn base_removeRows(self: Pin<&mut Self>, first: i32, count: i32, parent: &QModelIndex) -> bool;
60        # [rust_name = base_sibling]
61        fn base_sibling(&self, row: i32, column: i32, idx: &QModelIndex) -> QModelIndex;
62        # [rust_name = base_data_changed]
63        fn dataChanged(self: Pin<&mut Self>, top_left: &QModelIndex, bottom_right: &QModelIndex);
64        # [rust_name = base_begin_insert_columns]
65        fn beginInsertColumns(self: Pin<&mut Self>, parent: &QModelIndex, first: i32, last: i32);
66        # [rust_name = base_end_insert_columns]
67        fn endInsertColumns(self: Pin<&mut Self>);
68        # [rust_name = base_begin_insert_rows]
69        fn beginInsertRows(self: Pin<&mut Self>, parent: &QModelIndex, first: i32, last: i32);
70        # [rust_name = base_end_insert_rows]
71        fn endInsertRows(self: Pin<&mut Self>);
72        # [rust_name = base_begin_move_columns]
73        fn beginMoveColumns(
74            self: Pin<&mut Self>,
75            source_parent: &QModelIndex,
76            source_first: i32,
77            source_last: i32,
78            destination_parent: &QModelIndex,
79            destination_child: i32,
80        );
81        # [rust_name = base_end_move_columns]
82        fn endMoveColumns(self: Pin<&mut Self>);
83        # [rust_name = base_begin_move_rows]
84        fn beginMoveRows(
85            self: Pin<&mut Self>,
86            source_parent: &QModelIndex,
87            source_first: i32,
88            source_last: i32,
89            destination_parent: &QModelIndex,
90            destination_child: i32,
91        );
92        # [rust_name = base_end_move_rows]
93        fn endMoveRows(self: Pin<&mut Self>);
94        # [rust_name = base_begin_remove_columns]
95        fn beginRemoveColumns(self: Pin<&mut Self>, parent: &QModelIndex, first: i32, last: i32);
96        # [rust_name = base_end_remove_columns]
97        fn endRemoveColumns(self: Pin<&mut Self>);
98        # [rust_name = base_begin_remove_rows]
99        fn beginRemoveRows(self: Pin<&mut Self>, parent: &QModelIndex, first: i32, last: i32);
100        # [rust_name = base_end_remove_rows]
101        fn endRemoveRows(self: Pin<&mut Self>);
102        # [rust_name = base_begin_reset_model]
103        fn beginResetModel(self: Pin<&mut Self>);
104        # [rust_name = base_end_reset_model]
105        fn endResetModel(self: Pin<&mut Self>);
106        # [rust_name = base_create_index]
107        fn createIndex(&self, row: i32, column: i32, ptr: usize) -> QModelIndex;
108    }
109}
110
111pub use ffi::QAbstractItemModelProxyCpp;
112
113impl_qcpp_proxy!(ffi::QAbstractItemModelProxyCpp, QAbstractItemModelProxyRust);