rust-qt-binding-generator/tests/test_object_rust.cpp

97 lines
2.1 KiB
C++
Raw Normal View History

2017-08-11 08:24:24 -07:00
/* generated by rust_qt_binding_generator */
#include "test_object_rust.h"
namespace {
template <typename T>
struct option {
public:
T value;
bool some;
operator QVariant() const {
if (some) {
return QVariant(value);
}
return QVariant();
}
};
2017-08-11 08:24:24 -07:00
struct qbytearray_t {
private:
const char* data;
int len;
public:
qbytearray_t(const QByteArray& v):
data(v.data()),
len(v.size()) {
}
operator QByteArray() const {
return QByteArray(data, len);
}
};
struct qstring_t {
private:
const void* data;
int len;
public:
qstring_t(const QString& v):
data(static_cast<const void*>(v.utf16())),
len(v.size()) {
}
operator QString() const {
return QString::fromUtf8(static_cast<const char*>(data), len);
}
};
2017-08-13 08:01:52 -07:00
struct qmodelindex_t {
int row;
quintptr id;
};
2017-08-26 10:10:18 -07:00
inline void personUserNameChanged(Person* o)
{
emit o->userNameChanged();
}
2017-08-11 08:24:24 -07:00
}
typedef void (*qstring_set)(QString*, qstring_t*);
void set_qstring(QString* v, qstring_t* val) {
*v = *val;
}
typedef void (*qbytearray_set)(QByteArray*, qbytearray_t*);
void set_qbytearray(QByteArray* v, qbytearray_t* val) {
*v = *val;
}
extern "C" {
2017-08-15 04:49:28 -07:00
Person::Private* person_new(Person*, void (*)(Person*));
void person_free(Person::Private*);
void person_user_name_get(const Person::Private*, QString*, qstring_set);
void person_user_name_set(Person::Private*, qstring_t);
2017-08-11 08:24:24 -07:00
};
2017-08-26 10:10:18 -07:00
Person::Person(bool /*owned*/, QObject *parent):
QObject(parent),
m_d(0),
m_ownsPrivate(false)
{
}
2017-08-11 08:24:24 -07:00
Person::Person(QObject *parent):
QObject(parent),
2017-08-26 10:10:18 -07:00
m_d(person_new(this,
personUserNameChanged)),
m_ownsPrivate(true)
{
2017-08-26 10:10:18 -07:00
}
2017-08-11 08:24:24 -07:00
Person::~Person() {
2017-08-26 10:10:18 -07:00
if (m_ownsPrivate) {
person_free(m_d);
}
2017-08-11 08:24:24 -07:00
}
QString Person::userName() const
{
QString v;
2017-08-26 10:10:18 -07:00
person_user_name_get(m_d, &v, set_qstring);
2017-08-11 08:24:24 -07:00
return v;
}
void Person::setUserName(const QString& v) {
2017-08-26 10:10:18 -07:00
person_user_name_set(m_d, v);
2017-08-11 08:24:24 -07:00
}