qtbridge-interfaces 0.1.4

Qt Bridge: Proxies and interfaces between Rust and Qt
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only

#include "QListModelProxyCpp.h"

namespace rust::bridge {

QListModelProxyCpp::QListModelProxyCpp(uint8_t* rustObj, QListModelProxyRust* rustProxy)
    : RustObjectGetter(rustObj)
    , m_rustProxy(rustProxy)
{}
QListModelProxyCpp::~QListModelProxyCpp()
{
    QListModelProxyRust::dropSelf(m_rustProxy, m_rustObj);
}

// Virtual methods
QModelIndex QListModelProxyCpp::index(int32_t row, int32_t column, const QModelIndex& parent) const
{
    return m_rustProxy->index(row, column, parent);
}
int32_t QListModelProxyCpp::rowCount(const QModelIndex& parent) const
{
    return m_rustProxy->rowCount(parent);
}
QVariant QListModelProxyCpp::data(const QModelIndex& index, int32_t role) const
{
    return m_rustProxy->data(index, role);
}
QHash<int32_t,QByteArray> QListModelProxyCpp::roleNames() const
{
    return m_rustProxy->roleNames();
}
bool QListModelProxyCpp::setData(const QModelIndex& index, const QVariant& value, int32_t role)
{
    return m_rustProxy->setData(index, value, role);
}
bool QListModelProxyCpp::removeRows(int32_t first, int32_t count, const QModelIndex& parent)
{
    return m_rustProxy->removeRows(first, count, parent);
}
QModelIndex QListModelProxyCpp::sibling(int32_t row, int32_t column, const QModelIndex& idx) const
{
    return m_rustProxy->sibling(row, column, idx);
}


// Access to base implementation of virtual functions
QModelIndex QListModelProxyCpp::base_index(int32_t row, int32_t column, const QModelIndex& parent) const
{
    return Base::index(row, column, parent);
}
QHash<int32_t,QByteArray> QListModelProxyCpp::base_roleNames() const
{
    return Base::roleNames();
}
bool QListModelProxyCpp::base_setData(const QModelIndex& index, const QVariant& value, int32_t role)
{
    return Base::setData(index, value, role);
}
bool QListModelProxyCpp::base_removeRows(int32_t first, int32_t count, const QModelIndex& parent)
{
    return Base::removeRows(first, count, parent);
}
QModelIndex QListModelProxyCpp::base_sibling(int32_t row, int32_t column, const QModelIndex& idx) const
{
    return Base::sibling(row, column, idx);
}

// Access to base implementation of non virtual functions
void QListModelProxyCpp::dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight)
{
    Base::dataChanged(topLeft, bottomRight);
}
void QListModelProxyCpp::beginInsertRows(const QModelIndex& parent, int32_t first, int32_t last)
{
    Base::beginInsertRows(parent, first, last);
}
void QListModelProxyCpp::endInsertRows()
{
    Base::endInsertRows();
}
void QListModelProxyCpp::beginMoveRows(const QModelIndex& sourceParent, int32_t sourceFirst, int32_t sourceLast, const QModelIndex& destinationParent, int32_t destinationChild)
{
    Base::beginMoveRows(sourceParent, sourceFirst, sourceLast, destinationParent, destinationChild);
}
void QListModelProxyCpp::endMoveRows()
{
    Base::endMoveRows();
}
void QListModelProxyCpp::beginRemoveRows(const QModelIndex& parent, int32_t first, int32_t last)
{
    Base::beginRemoveRows(parent, first, last);
}
void QListModelProxyCpp::endRemoveRows()
{
    Base::endRemoveRows();
}
void QListModelProxyCpp::beginResetModel()
{
    Base::beginResetModel();
}
void QListModelProxyCpp::endResetModel()
{
    Base::endResetModel();
}

// Functions for object construction

QListModelProxyCpp* create_QListModelProxyCpp(uint8_t* rustObj, QListModelProxyRust* rustProxy)
{
    return new QListModelProxyCpp(rustObj, rustProxy);
}

QListModelProxyCpp* create_QListModelProxyCpp_At(uint8_t* addr, uint8_t* rustObj, QListModelProxyRust* rustProxy)
{
    return new (addr) QListModelProxyCpp(rustObj, rustProxy);
}

const QMetaObject& staticQMetaObjectOf_QListModelProxyCpp()
{
    return QListModelProxyCpp::staticMetaObject;
}

size_t sizeOf_QListModelProxyCpp()
{
    return sizeof(QListModelProxyCpp);
}

size_t alignOf_QListModelProxyCpp()
{
    return alignof(QListModelProxyCpp);
}

QMetaType qmetaTypeListOf_QListModelProxyCpp()
{
    return QMetaType::fromType<QQmlListProperty<QListModelProxyCpp>>();
}

} // namespace rust::bridge