//Auto-generated by /usr/bin/smokegen. DO NOT EDIT.
#include <qtcore_includes.h>
#include <typeinfo>

#include <smoke.h>
#include <qtcore_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqtcore {

class x_QAbstractFileEngine__UnMapExtensionOption : public QAbstractFileEngine::UnMapExtensionOption {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QAbstractFileEngine::UnMapExtensionOption* UnMapExtensionOption()
        x_QAbstractFileEngine__UnMapExtensionOption* xret = new x_QAbstractFileEngine__UnMapExtensionOption();
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractFileEngine__UnMapExtensionOption() : UnMapExtensionOption() {}
    static void x_2(Smoke::Stack x) {
        // QAbstractFileEngine::UnMapExtensionOption* UnMapExtensionOption(const QAbstractFileEngine::UnMapExtensionOption&)
        x_QAbstractFileEngine__UnMapExtensionOption* xret = new x_QAbstractFileEngine__UnMapExtensionOption(*(const QAbstractFileEngine::UnMapExtensionOption*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractFileEngine__UnMapExtensionOption(const QAbstractFileEngine::UnMapExtensionOption& x1) : UnMapExtensionOption(x1) {}
    void x_3(Smoke::Stack x) {
        // unsigned char* address
        x[0].s_class = (void*)this->QAbstractFileEngine::UnMapExtensionOption::address;
    }
    void x_4(Smoke::Stack x) {
        // unsigned char* address=
        this->QAbstractFileEngine::UnMapExtensionOption::address = (unsigned char*)x[1].s_class;
    }
    ~x_QAbstractFileEngine__UnMapExtensionOption() { this->_binding->deleted(8, (void*)this); }
};
void xcall_QAbstractFileEngine__UnMapExtensionOption(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractFileEngine__UnMapExtensionOption *xself = (x_QAbstractFileEngine__UnMapExtensionOption*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QAbstractFileEngine__UnMapExtensionOption::x_1(args);	break;
        case 2: x_QAbstractFileEngine__UnMapExtensionOption::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: delete (QAbstractFileEngine::UnMapExtensionOption*)xself;	break;
    }
}
class x_QAbstractFileEngineHandler : public QAbstractFileEngineHandler, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QAbstractFileEngineHandler* QAbstractFileEngineHandler()
        x_QAbstractFileEngineHandler* xret = new x_QAbstractFileEngineHandler();
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractFileEngineHandler() : QAbstractFileEngineHandler() {}
    void x_2(Smoke::Stack x) {
        // virtual QAbstractFileEngine* create(const QString&) const = 0
        QAbstractFileEngine* xret = ((const x_QAbstractFileEngineHandler*)this)->create(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_3(Smoke::Stack x) {
        // QAbstractFileEngineHandler* QAbstractFileEngineHandler(const QAbstractFileEngineHandler&)
        x_QAbstractFileEngineHandler* xret = new x_QAbstractFileEngineHandler(*(const QAbstractFileEngineHandler*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractFileEngineHandler(const QAbstractFileEngineHandler& x1) : QAbstractFileEngineHandler(x1) {}
    virtual QAbstractFileEngine* create(const QString& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(195, (void*)this, x, true /*pure virtual*/);
        return (QAbstractFileEngine*)x[0].s_class;
    }
    ~x_QAbstractFileEngineHandler() { this->_binding->deleted(9, (void*)this); }
};
void xcall_QAbstractFileEngineHandler(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractFileEngineHandler *xself = (x_QAbstractFileEngineHandler*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QAbstractFileEngineHandler::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QAbstractFileEngineHandler::x_3(args);	break;
        case 4: delete (QAbstractFileEngineHandler*)xself;	break;
    }
}
class x_QAbstractFileEngineIterator : public QAbstractFileEngineIterator, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QAbstractFileEngineIterator* QAbstractFileEngineIterator(QFlags<QDir::Filter>, const QStringList&)
        x_QAbstractFileEngineIterator* xret = new x_QAbstractFileEngineIterator((QFlags<QDir::Filter>)x[1].s_uint,*(const QStringList*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractFileEngineIterator(QFlags<QDir::Filter> x1, const QStringList& x2) : QAbstractFileEngineIterator(x1, x2) {}
    void x_2(Smoke::Stack x) {
        // virtual QString next() = 0
        QString xret = this->next();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_3(Smoke::Stack x) {
        // virtual bool hasNext() const = 0
        bool xret = ((const x_QAbstractFileEngineIterator*)this)->hasNext();
        x[0].s_bool = xret;
    }
    void x_4(Smoke::Stack x) {
        // QString path() const
        QString xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::path();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_5(Smoke::Stack x) {
        // QStringList nameFilters() const
        QStringList xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::nameFilters();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_6(Smoke::Stack x) {
        // QFlags<QDir::Filter> filters() const
        QFlags<QDir::Filter> xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::filters();
        x[0].s_uint = (uint)xret;
    }
    void x_7(Smoke::Stack x) {
        // virtual QString currentFileName() const = 0
        QString xret = ((const x_QAbstractFileEngineIterator*)this)->currentFileName();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_8(Smoke::Stack x) {
        // virtual QFileInfo currentFileInfo() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractFileEngineIterator*>(this))) {
            QFileInfo xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::currentFileInfo();
            x[0].s_class = (void*)new QFileInfo(xret);
        } else {
            QFileInfo xret = ((const x_QAbstractFileEngineIterator*)this)->currentFileInfo();
            x[0].s_class = (void*)new QFileInfo(xret);
        }
    }
    void x_9(Smoke::Stack x) {
        // QString currentFilePath() const
        QString xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::currentFilePath();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_10(Smoke::Stack x) {
        // virtual QVariant entryInfo(QAbstractFileEngineIterator::EntryInfoType) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractFileEngineIterator*>(this))) {
            QVariant xret = ((const x_QAbstractFileEngineIterator*)this)->QAbstractFileEngineIterator::entryInfo((QAbstractFileEngineIterator::EntryInfoType)x[1].s_enum);
            x[0].s_class = (void*)new QVariant(xret);
        } else {
            QVariant xret = ((const x_QAbstractFileEngineIterator*)this)->entryInfo((QAbstractFileEngineIterator::EntryInfoType)x[1].s_enum);
            x[0].s_class = (void*)new QVariant(xret);
        }
    }
    virtual QString next() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(199, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool hasNext() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(200, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual QString currentFileName() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(204, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QFileInfo currentFileInfo() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(205, (void*)this, x)) {
            QFileInfo* xptr = (QFileInfo*)x[0].s_class;
            QFileInfo xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractFileEngineIterator::currentFileInfo();
    }
    virtual QVariant entryInfo(QAbstractFileEngineIterator::EntryInfoType x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(207, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractFileEngineIterator::entryInfo(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 20: //QAbstractFileEngineIterator::EntryInfoType
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QAbstractFileEngineIterator::EntryInfoType;
                    break;
                case Smoke::EnumDelete:
                    delete (QAbstractFileEngineIterator::EntryInfoType*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QAbstractFileEngineIterator::EntryInfoType*)xdata = (QAbstractFileEngineIterator::EntryInfoType)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QAbstractFileEngineIterator::EntryInfoType*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QAbstractFileEngineIterator() { this->_binding->deleted(10, (void*)this); }
};
void xenum_QAbstractFileEngineIterator(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QAbstractFileEngineIterator::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QAbstractFileEngineIterator(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractFileEngineIterator *xself = (x_QAbstractFileEngineIterator*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QAbstractFileEngineIterator::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: delete (QAbstractFileEngineIterator*)xself;	break;
    }
}
class x_QAbstractItemModel : public QAbstractItemModel, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            const QMetaObject* xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QAbstractItemModel*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            void* xret = this->QAbstractItemModel::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QAbstractItemModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QAbstractItemModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QAbstractItemModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QAbstractItemModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            int xret = this->QAbstractItemModel::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QAbstractItemModel* QAbstractItemModel(QObject*)
        x_QAbstractItemModel* xret = new x_QAbstractItemModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractItemModel(QObject* x1) : QAbstractItemModel(x1) {}
    void x_9(Smoke::Stack x) {
        // bool hasIndex(int, int, const QModelIndex&) const
        bool xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::hasIndex((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // virtual QModelIndex index(int, int, const QModelIndex&) const = 0
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_11(Smoke::Stack x) {
        // virtual QModelIndex parent(const QModelIndex&) const = 0
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->parent(*(const QModelIndex*)x[1].s_class);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_12(Smoke::Stack x) {
        // QModelIndex sibling(int, int, const QModelIndex&) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::sibling((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_13(Smoke::Stack x) {
        // virtual int rowCount(const QModelIndex&) const = 0
        int xret = ((const x_QAbstractItemModel*)this)->rowCount(*(const QModelIndex*)x[1].s_class);
        x[0].s_int = xret;
    }
    void x_14(Smoke::Stack x) {
        // virtual int columnCount(const QModelIndex&) const = 0
        int xret = ((const x_QAbstractItemModel*)this)->columnCount(*(const QModelIndex*)x[1].s_class);
        x[0].s_int = xret;
    }
    void x_15(Smoke::Stack x) {
        // virtual bool hasChildren(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::hasChildren(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QAbstractItemModel*)this)->hasChildren(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual QVariant data(const QModelIndex&, int) const = 0
        QVariant xret = ((const x_QAbstractItemModel*)this)->data(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_17(Smoke::Stack x) {
        // virtual bool setData(const QModelIndex&, const QVariant&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)x[3].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = this->setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)x[3].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // virtual QVariant headerData(int, Qt::Orientation, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QVariant xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::headerData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,(int)x[3].s_int);
            x[0].s_class = (void*)new QVariant(xret);
        } else {
            QVariant xret = ((const x_QAbstractItemModel*)this)->headerData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,(int)x[3].s_int);
            x[0].s_class = (void*)new QVariant(xret);
        }
    }
    void x_19(Smoke::Stack x) {
        // virtual bool setHeaderData(int, Qt::Orientation, const QVariant&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)x[4].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = this->setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)x[4].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual QMap<int,QVariant> itemData(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QMap<int,QVariant> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::itemData(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QMap<int,QVariant>(xret);
        } else {
            QMap<int,QVariant> xret = ((const x_QAbstractItemModel*)this)->itemData(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QMap<int,QVariant>(xret);
        }
    }
    void x_21(Smoke::Stack x) {
        // virtual bool setItemData(const QModelIndex&, const QMap<int,QVariant>&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::setItemData(*(const QModelIndex*)x[1].s_class,*(const QMap<int,QVariant>*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->setItemData(*(const QModelIndex*)x[1].s_class,*(const QMap<int,QVariant>*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_22(Smoke::Stack x) {
        // virtual QStringList mimeTypes() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QStringList xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_QAbstractItemModel*)this)->mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    void x_23(Smoke::Stack x) {
        // virtual QMimeData* mimeData(const QList<QModelIndex>&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QMimeData* xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            QMimeData* xret = ((const x_QAbstractItemModel*)this)->mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_24(Smoke::Stack x) {
        // virtual bool dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_25(Smoke::Stack x) {
        // virtual QFlags<Qt::DropAction> supportedDropActions() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QFlags<Qt::DropAction> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::supportedDropActions();
            x[0].s_uint = (uint)xret;
        } else {
            QFlags<Qt::DropAction> xret = ((const x_QAbstractItemModel*)this)->supportedDropActions();
            x[0].s_uint = (uint)xret;
        }
    }
    void x_26(Smoke::Stack x) {
        // QFlags<Qt::DropAction> supportedDragActions() const
        QFlags<Qt::DropAction> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::supportedDragActions();
        x[0].s_uint = (uint)xret;
    }
    void x_27(Smoke::Stack x) {
        // void setSupportedDragActions(QFlags<Qt::DropAction>)
        this->QAbstractItemModel::setSupportedDragActions((QFlags<Qt::DropAction>)x[1].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_28(Smoke::Stack x) {
        // virtual bool insertRows(int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::insertRows((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->insertRows((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_29(Smoke::Stack x) {
        // virtual bool insertColumns(int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::insertColumns((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->insertColumns((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_30(Smoke::Stack x) {
        // virtual bool removeRows(int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::removeRows((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->removeRows((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_31(Smoke::Stack x) {
        // virtual bool removeColumns(int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::removeColumns((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->removeColumns((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_32(Smoke::Stack x) {
        // bool insertRow(int, const QModelIndex&)
        bool xret = this->QAbstractItemModel::insertRow((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_33(Smoke::Stack x) {
        // bool insertColumn(int, const QModelIndex&)
        bool xret = this->QAbstractItemModel::insertColumn((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_34(Smoke::Stack x) {
        // bool removeRow(int, const QModelIndex&)
        bool xret = this->QAbstractItemModel::removeRow((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_35(Smoke::Stack x) {
        // bool removeColumn(int, const QModelIndex&)
        bool xret = this->QAbstractItemModel::removeColumn((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_36(Smoke::Stack x) {
        // virtual void fetchMore(const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            this->QAbstractItemModel::fetchMore(*(const QModelIndex*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->fetchMore(*(const QModelIndex*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_37(Smoke::Stack x) {
        // virtual bool canFetchMore(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::canFetchMore(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QAbstractItemModel*)this)->canFetchMore(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_38(Smoke::Stack x) {
        // virtual QFlags<Qt::ItemFlag> flags(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QFlags<Qt::ItemFlag> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        } else {
            QFlags<Qt::ItemFlag> xret = ((const x_QAbstractItemModel*)this)->flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        }
    }
    void x_39(Smoke::Stack x) {
        // virtual void sort(int, Qt::SortOrder)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            this->QAbstractItemModel::sort((int)x[1].s_int,(Qt::SortOrder)x[2].s_enum);
            (void)x; // noop (for compiler warning)
        } else {
            this->sort((int)x[1].s_int,(Qt::SortOrder)x[2].s_enum);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_40(Smoke::Stack x) {
        // virtual QModelIndex buddy(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::buddy(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_QAbstractItemModel*)this)->buddy(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_41(Smoke::Stack x) {
        // virtual QList<QModelIndex> match(const QModelIndex&, int, const QVariant&, int, QFlags<Qt::MatchFlag>) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QList<QModelIndex> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::match(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,*(const QVariant*)x[3].s_class,(int)x[4].s_int,(QFlags<Qt::MatchFlag>)x[5].s_uint);
            x[0].s_class = (void*)new QList<QModelIndex>(xret);
        } else {
            QList<QModelIndex> xret = ((const x_QAbstractItemModel*)this)->match(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,*(const QVariant*)x[3].s_class,(int)x[4].s_int,(QFlags<Qt::MatchFlag>)x[5].s_uint);
            x[0].s_class = (void*)new QList<QModelIndex>(xret);
        }
    }
    void x_42(Smoke::Stack x) {
        // virtual QSize span(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            QSize xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::span(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QAbstractItemModel*)this)->span(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_43(Smoke::Stack x) {
        // const QHash<int,QByteArray>& roleNames() const
        const QHash<int,QByteArray>& xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::roleNames();
        x[0].s_class = (void*)&xret;
    }
    void x_44(Smoke::Stack x) {
        // QObject* parent() const
        QObject* xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::parent();
        x[0].s_class = (void*)xret;
    }
    void x_45(Smoke::Stack x) {
        // void dataChanged(const QModelIndex&, const QModelIndex&)
        this->QAbstractItemModel::dataChanged(*(const QModelIndex*)x[1].s_class,*(const QModelIndex*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_46(Smoke::Stack x) {
        // void headerDataChanged(Qt::Orientation, int, int)
        this->QAbstractItemModel::headerDataChanged((Qt::Orientation)x[1].s_enum,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_47(Smoke::Stack x) {
        // void layoutChanged()
        this->QAbstractItemModel::layoutChanged();
        (void)x; // noop (for compiler warning)
    }
    void x_48(Smoke::Stack x) {
        // void layoutAboutToBeChanged()
        this->QAbstractItemModel::layoutAboutToBeChanged();
        (void)x; // noop (for compiler warning)
    }
    void x_49(Smoke::Stack x) {
        // virtual bool submit()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            bool xret = this->QAbstractItemModel::submit();
            x[0].s_bool = xret;
        } else {
            bool xret = this->submit();
            x[0].s_bool = xret;
        }
    }
    void x_50(Smoke::Stack x) {
        // virtual void revert()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractItemModel*>(this))) {
            this->QAbstractItemModel::revert();
            (void)x; // noop (for compiler warning)
        } else {
            this->revert();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_51(Smoke::Stack x) {
        // QModelIndex createIndex(int, int, void*) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::createIndex((int)x[1].s_int,(int)x[2].s_int,(void*)x[3].s_class);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_52(Smoke::Stack x) {
        // QModelIndex createIndex(int, int, int) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::createIndex((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_53(Smoke::Stack x) {
        // QModelIndex createIndex(int, int, unsigned int) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::createIndex((int)x[1].s_int,(int)x[2].s_int,(unsigned int)x[3].s_uint);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_54(Smoke::Stack x) {
        // void encodeData(const QList<QModelIndex>&, QDataStream&) const
        ((const x_QAbstractItemModel*)this)->QAbstractItemModel::encodeData(*(const QList<QModelIndex>*)x[1].s_class,*(QDataStream*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_55(Smoke::Stack x) {
        // bool decodeData(int, int, const QModelIndex&, QDataStream&)
        bool xret = this->QAbstractItemModel::decodeData((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class,*(QDataStream*)x[4].s_class);
        x[0].s_bool = xret;
    }
    void x_56(Smoke::Stack x) {
        // void beginInsertRows(const QModelIndex&, int, int)
        this->QAbstractItemModel::beginInsertRows(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_57(Smoke::Stack x) {
        // void endInsertRows()
        this->QAbstractItemModel::endInsertRows();
        (void)x; // noop (for compiler warning)
    }
    void x_58(Smoke::Stack x) {
        // void beginRemoveRows(const QModelIndex&, int, int)
        this->QAbstractItemModel::beginRemoveRows(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_59(Smoke::Stack x) {
        // void endRemoveRows()
        this->QAbstractItemModel::endRemoveRows();
        (void)x; // noop (for compiler warning)
    }
    void x_60(Smoke::Stack x) {
        // bool beginMoveRows(const QModelIndex&, int, int, const QModelIndex&, int)
        bool xret = this->QAbstractItemModel::beginMoveRows(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int,*(const QModelIndex*)x[4].s_class,(int)x[5].s_int);
        x[0].s_bool = xret;
    }
    void x_61(Smoke::Stack x) {
        // void endMoveRows()
        this->QAbstractItemModel::endMoveRows();
        (void)x; // noop (for compiler warning)
    }
    void x_62(Smoke::Stack x) {
        // void beginInsertColumns(const QModelIndex&, int, int)
        this->QAbstractItemModel::beginInsertColumns(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_63(Smoke::Stack x) {
        // void endInsertColumns()
        this->QAbstractItemModel::endInsertColumns();
        (void)x; // noop (for compiler warning)
    }
    void x_64(Smoke::Stack x) {
        // void beginRemoveColumns(const QModelIndex&, int, int)
        this->QAbstractItemModel::beginRemoveColumns(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_65(Smoke::Stack x) {
        // void endRemoveColumns()
        this->QAbstractItemModel::endRemoveColumns();
        (void)x; // noop (for compiler warning)
    }
    void x_66(Smoke::Stack x) {
        // bool beginMoveColumns(const QModelIndex&, int, int, const QModelIndex&, int)
        bool xret = this->QAbstractItemModel::beginMoveColumns(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int,*(const QModelIndex*)x[4].s_class,(int)x[5].s_int);
        x[0].s_bool = xret;
    }
    void x_67(Smoke::Stack x) {
        // void endMoveColumns()
        this->QAbstractItemModel::endMoveColumns();
        (void)x; // noop (for compiler warning)
    }
    void x_68(Smoke::Stack x) {
        // void reset()
        this->QAbstractItemModel::reset();
        (void)x; // noop (for compiler warning)
    }
    void x_69(Smoke::Stack x) {
        // void beginResetModel()
        this->QAbstractItemModel::beginResetModel();
        (void)x; // noop (for compiler warning)
    }
    void x_70(Smoke::Stack x) {
        // void endResetModel()
        this->QAbstractItemModel::endResetModel();
        (void)x; // noop (for compiler warning)
    }
    void x_71(Smoke::Stack x) {
        // void changePersistentIndex(const QModelIndex&, const QModelIndex&)
        this->QAbstractItemModel::changePersistentIndex(*(const QModelIndex*)x[1].s_class,*(const QModelIndex*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_72(Smoke::Stack x) {
        // void changePersistentIndexList(const QList<QModelIndex>&, const QList<QModelIndex>&)
        this->QAbstractItemModel::changePersistentIndexList(*(const QList<QModelIndex>*)x[1].s_class,*(const QList<QModelIndex>*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_73(Smoke::Stack x) {
        // QList<QModelIndex> persistentIndexList() const
        QList<QModelIndex> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::persistentIndexList();
        x[0].s_class = (void*)new QList<QModelIndex>(xret);
    }
    void x_74(Smoke::Stack x) {
        // void setRoleNames(const QHash<int,QByteArray>&)
        this->QAbstractItemModel::setRoleNames(*(const QHash<int,QByteArray>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_75(Smoke::Stack x) {
        // void resetInternalData()
        this->QAbstractItemModel::resetInternalData();
        (void)x; // noop (for compiler warning)
    }
    static void x_76(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QAbstractItemModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_77(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QAbstractItemModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_78(Smoke::Stack x) {
        // QAbstractItemModel* QAbstractItemModel()
        x_QAbstractItemModel* xret = new x_QAbstractItemModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_79(Smoke::Stack x) {
        // bool hasIndex(int, int) const
        bool xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::hasIndex((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_80(Smoke::Stack x) {
        // QModelIndex index(int, int) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->index((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_81(Smoke::Stack x) {
        // int rowCount() const
        int xret = ((const x_QAbstractItemModel*)this)->rowCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_82(Smoke::Stack x) {
        // int columnCount() const
        int xret = ((const x_QAbstractItemModel*)this)->columnCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_83(Smoke::Stack x) {
        // bool hasChildren() const
        bool xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::hasChildren((const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_84(Smoke::Stack x) {
        // QVariant data(const QModelIndex&) const
        QVariant xret = ((const x_QAbstractItemModel*)this)->data(*(const QModelIndex*)x[1].s_class,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_85(Smoke::Stack x) {
        // bool setData(const QModelIndex&, const QVariant&)
        bool xret = this->QAbstractItemModel::setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)Qt::EditRole);
        x[0].s_bool = xret;
    }
    void x_86(Smoke::Stack x) {
        // QVariant headerData(int, Qt::Orientation) const
        QVariant xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::headerData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_87(Smoke::Stack x) {
        // bool setHeaderData(int, Qt::Orientation, const QVariant&)
        bool xret = this->QAbstractItemModel::setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)Qt::EditRole);
        x[0].s_bool = xret;
    }
    void x_88(Smoke::Stack x) {
        // bool insertRows(int, int)
        bool xret = this->QAbstractItemModel::insertRows((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_89(Smoke::Stack x) {
        // bool insertColumns(int, int)
        bool xret = this->QAbstractItemModel::insertColumns((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_90(Smoke::Stack x) {
        // bool removeRows(int, int)
        bool xret = this->QAbstractItemModel::removeRows((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_91(Smoke::Stack x) {
        // bool removeColumns(int, int)
        bool xret = this->QAbstractItemModel::removeColumns((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_92(Smoke::Stack x) {
        // bool insertRow(int)
        bool xret = this->QAbstractItemModel::insertRow((int)x[1].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_93(Smoke::Stack x) {
        // bool insertColumn(int)
        bool xret = this->QAbstractItemModel::insertColumn((int)x[1].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_94(Smoke::Stack x) {
        // bool removeRow(int)
        bool xret = this->QAbstractItemModel::removeRow((int)x[1].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_95(Smoke::Stack x) {
        // bool removeColumn(int)
        bool xret = this->QAbstractItemModel::removeColumn((int)x[1].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    void x_96(Smoke::Stack x) {
        // void sort(int)
        this->QAbstractItemModel::sort((int)x[1].s_int,(Qt::SortOrder)Qt::AscendingOrder);
        (void)x; // noop (for compiler warning)
    }
    void x_97(Smoke::Stack x) {
        // QList<QModelIndex> match(const QModelIndex&, int, const QVariant&) const
        QList<QModelIndex> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::match(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,*(const QVariant*)x[3].s_class,(int)1,(QFlags<Qt::MatchFlag>)Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap));
        x[0].s_class = (void*)new QList<QModelIndex>(xret);
    }
    void x_98(Smoke::Stack x) {
        // QList<QModelIndex> match(const QModelIndex&, int, const QVariant&, int) const
        QList<QModelIndex> xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::match(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int,*(const QVariant*)x[3].s_class,(int)x[4].s_int,(QFlags<Qt::MatchFlag>)Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap));
        x[0].s_class = (void*)new QList<QModelIndex>(xret);
    }
    void x_99(Smoke::Stack x) {
        // QModelIndex createIndex(int, int) const
        QModelIndex xret = ((const x_QAbstractItemModel*)this)->QAbstractItemModel::createIndex((int)x[1].s_int,(int)x[2].s_int,(void*)0);
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    static void x_100(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QAbstractItemModel::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(209, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QAbstractItemModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(210, (void*)this, x)) return (void*)x[0].s_class;
        return this->QAbstractItemModel::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(215, (void*)this, x)) return (int)x[0].s_int;
        return this->QAbstractItemModel::qt_metacall(x1, x2, x3);
    }
    virtual QModelIndex index(int x1, int x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        this->_binding->callMethod(218, (void*)this, x, true /*pure virtual*/);
        QModelIndex* xptr = (QModelIndex*)x[0].s_class;
        QModelIndex xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QModelIndex parent(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(219, (void*)this, x, true /*pure virtual*/);
        QModelIndex* xptr = (QModelIndex*)x[0].s_class;
        QModelIndex xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(221, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(222, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(223, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::hasChildren(x1);
    }
    virtual QVariant data(const QModelIndex& x1, int x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        this->_binding->callMethod(224, (void*)this, x, true /*pure virtual*/);
        QVariant* xptr = (QVariant*)x[0].s_class;
        QVariant xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool setData(const QModelIndex& x1, const QVariant& x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(225, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(x1, x2, x3);
    }
    virtual QVariant headerData(int x1, Qt::Orientation x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(226, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::headerData(x1, x2, x3);
    }
    virtual bool setHeaderData(int x1, Qt::Orientation x2, const QVariant& x3, int x4) {
        Smoke::StackItem x[5];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(227, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setHeaderData(x1, x2, x3, x4);
    }
    virtual QMap<int,QVariant> itemData(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(228, (void*)this, x)) {
            QMap<int,QVariant>* xptr = (QMap<int,QVariant>*)x[0].s_class;
            QMap<int,QVariant> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::itemData(x1);
    }
    virtual bool setItemData(const QModelIndex& x1, const QMap<int,QVariant>& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(229, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(231, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QAbstractItemModel::mimeData(x1);
    }
    virtual bool dropMimeData(const QMimeData* x1, Qt::DropAction x2, int x3, int x4, const QModelIndex& x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_class = (void*)&x5;
        if (this->_binding->callMethod(232, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(233, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractItemModel::supportedDropActions();
    }
    virtual bool insertRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(236, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertRows(x1, x2, x3);
    }
    virtual bool insertColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(237, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertColumns(x1, x2, x3);
    }
    virtual bool removeRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(238, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeRows(x1, x2, x3);
    }
    virtual bool removeColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(239, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(244, (void*)this, x)) return;
        this->QAbstractItemModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(245, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(x1);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(246, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractItemModel::flags(x1);
    }
    virtual void sort(int x1, Qt::SortOrder x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(247, (void*)this, x)) return;
        this->QAbstractItemModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(248, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::buddy(x1);
    }
    virtual QList<QModelIndex> match(const QModelIndex& x1, int x2, const QVariant& x3, int x4, QFlags<Qt::MatchFlag> x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        x[5].s_uint = (uint)x5;
        if (this->_binding->callMethod(249, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::match(x1, x2, x3, x4, x5);
    }
    virtual QSize span(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(250, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(257, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QAbstractItemModel::revert();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3804, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(3805, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3841, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3842, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3843, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3844, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3845, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QAbstractItemModel() { this->_binding->deleted(11, (void*)this); }
};
void xcall_QAbstractItemModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractItemModel *xself = (x_QAbstractItemModel*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QAbstractItemModel::x_3(args);	break;
        case 4: x_QAbstractItemModel::x_4(args);	break;
        case 5: x_QAbstractItemModel::x_5(args);	break;
        case 6: x_QAbstractItemModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QAbstractItemModel::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: xself->x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: xself->x_36(args);	break;
        case 37: xself->x_37(args);	break;
        case 38: xself->x_38(args);	break;
        case 39: xself->x_39(args);	break;
        case 40: xself->x_40(args);	break;
        case 41: xself->x_41(args);	break;
        case 42: xself->x_42(args);	break;
        case 43: xself->x_43(args);	break;
        case 44: xself->x_44(args);	break;
        case 45: xself->x_45(args);	break;
        case 46: xself->x_46(args);	break;
        case 47: xself->x_47(args);	break;
        case 48: xself->x_48(args);	break;
        case 49: xself->x_49(args);	break;
        case 50: xself->x_50(args);	break;
        case 51: xself->x_51(args);	break;
        case 52: xself->x_52(args);	break;
        case 53: xself->x_53(args);	break;
        case 54: xself->x_54(args);	break;
        case 55: xself->x_55(args);	break;
        case 56: xself->x_56(args);	break;
        case 57: xself->x_57(args);	break;
        case 58: xself->x_58(args);	break;
        case 59: xself->x_59(args);	break;
        case 60: xself->x_60(args);	break;
        case 61: xself->x_61(args);	break;
        case 62: xself->x_62(args);	break;
        case 63: xself->x_63(args);	break;
        case 64: xself->x_64(args);	break;
        case 65: xself->x_65(args);	break;
        case 66: xself->x_66(args);	break;
        case 67: xself->x_67(args);	break;
        case 68: xself->x_68(args);	break;
        case 69: xself->x_69(args);	break;
        case 70: xself->x_70(args);	break;
        case 71: xself->x_71(args);	break;
        case 72: xself->x_72(args);	break;
        case 73: xself->x_73(args);	break;
        case 74: xself->x_74(args);	break;
        case 75: xself->x_75(args);	break;
        case 76: x_QAbstractItemModel::x_76(args);	break;
        case 77: x_QAbstractItemModel::x_77(args);	break;
        case 78: x_QAbstractItemModel::x_78(args);	break;
        case 79: xself->x_79(args);	break;
        case 80: xself->x_80(args);	break;
        case 81: xself->x_81(args);	break;
        case 82: xself->x_82(args);	break;
        case 83: xself->x_83(args);	break;
        case 84: xself->x_84(args);	break;
        case 85: xself->x_85(args);	break;
        case 86: xself->x_86(args);	break;
        case 87: xself->x_87(args);	break;
        case 88: xself->x_88(args);	break;
        case 89: xself->x_89(args);	break;
        case 90: xself->x_90(args);	break;
        case 91: xself->x_91(args);	break;
        case 92: xself->x_92(args);	break;
        case 93: xself->x_93(args);	break;
        case 94: xself->x_94(args);	break;
        case 95: xself->x_95(args);	break;
        case 96: xself->x_96(args);	break;
        case 97: xself->x_97(args);	break;
        case 98: xself->x_98(args);	break;
        case 99: xself->x_99(args);	break;
        case 100: x_QAbstractItemModel::x_100(args);	break;
        case 101: delete (QAbstractItemModel*)xself;	break;
    }
}
class x_QAbstractListModel : public QAbstractListModel, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractListModel*>(this))) {
            const QMetaObject* xret = ((const x_QAbstractListModel*)this)->QAbstractListModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QAbstractListModel*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractListModel*>(this))) {
            void* xret = this->QAbstractListModel::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QAbstractListModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QAbstractListModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QAbstractListModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QAbstractListModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractListModel*>(this))) {
            int xret = this->QAbstractListModel::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QAbstractListModel* QAbstractListModel(QObject*)
        x_QAbstractListModel* xret = new x_QAbstractListModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractListModel(QObject* x1) : QAbstractListModel(x1) {}
    void x_9(Smoke::Stack x) {
        // QModelIndex index(int, int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractListModel*>(this))) {
            QModelIndex xret = ((const x_QAbstractListModel*)this)->QAbstractListModel::index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_QAbstractListModel*)this)->index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // bool dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractListModel*>(this))) {
            bool xret = this->QAbstractListModel::dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_11(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QAbstractListModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QAbstractListModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_13(Smoke::Stack x) {
        // QAbstractListModel* QAbstractListModel()
        x_QAbstractListModel* xret = new x_QAbstractListModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_14(Smoke::Stack x) {
        // QModelIndex index(int) const
        QModelIndex xret = ((const x_QAbstractListModel*)this)->QAbstractListModel::index((int)x[1].s_int,(int)0,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_15(Smoke::Stack x) {
        // QModelIndex index(int, int) const
        QModelIndex xret = ((const x_QAbstractListModel*)this)->QAbstractListModel::index((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    static void x_16(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QAbstractListModel::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(310, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QAbstractListModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return (void*)x[0].s_class;
        return this->QAbstractListModel::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(316, (void*)this, x)) return (int)x[0].s_int;
        return this->QAbstractListModel::qt_metacall(x1, x2, x3);
    }
    virtual QModelIndex index(int x1, int x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(318, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractListModel::index(x1, x2, x3);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(221, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual QVariant data(const QModelIndex& x1, int x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        this->_binding->callMethod(224, (void*)this, x, true /*pure virtual*/);
        QVariant* xptr = (QVariant*)x[0].s_class;
        QVariant xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool setData(const QModelIndex& x1, const QVariant& x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(225, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(x1, x2, x3);
    }
    virtual QVariant headerData(int x1, Qt::Orientation x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(226, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::headerData(x1, x2, x3);
    }
    virtual bool setHeaderData(int x1, Qt::Orientation x2, const QVariant& x3, int x4) {
        Smoke::StackItem x[5];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(227, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setHeaderData(x1, x2, x3, x4);
    }
    virtual QMap<int,QVariant> itemData(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(228, (void*)this, x)) {
            QMap<int,QVariant>* xptr = (QMap<int,QVariant>*)x[0].s_class;
            QMap<int,QVariant> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::itemData(x1);
    }
    virtual bool setItemData(const QModelIndex& x1, const QMap<int,QVariant>& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(229, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(231, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QAbstractItemModel::mimeData(x1);
    }
    virtual bool dropMimeData(const QMimeData* x1, Qt::DropAction x2, int x3, int x4, const QModelIndex& x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_class = (void*)&x5;
        if (this->_binding->callMethod(319, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractListModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(233, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractItemModel::supportedDropActions();
    }
    virtual bool insertRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(236, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertRows(x1, x2, x3);
    }
    virtual bool insertColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(237, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertColumns(x1, x2, x3);
    }
    virtual bool removeRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(238, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeRows(x1, x2, x3);
    }
    virtual bool removeColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(239, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(244, (void*)this, x)) return;
        this->QAbstractItemModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(245, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(x1);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(246, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractItemModel::flags(x1);
    }
    virtual void sort(int x1, Qt::SortOrder x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(247, (void*)this, x)) return;
        this->QAbstractItemModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(248, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::buddy(x1);
    }
    virtual QList<QModelIndex> match(const QModelIndex& x1, int x2, const QVariant& x3, int x4, QFlags<Qt::MatchFlag> x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        x[5].s_uint = (uint)x5;
        if (this->_binding->callMethod(249, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::match(x1, x2, x3, x4, x5);
    }
    virtual QSize span(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(250, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(257, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QAbstractItemModel::revert();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3804, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(3805, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3841, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3842, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3843, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3844, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3845, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QAbstractListModel() { this->_binding->deleted(12, (void*)this); }
};
void xcall_QAbstractListModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractListModel *xself = (x_QAbstractListModel*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QAbstractListModel::x_3(args);	break;
        case 4: x_QAbstractListModel::x_4(args);	break;
        case 5: x_QAbstractListModel::x_5(args);	break;
        case 6: x_QAbstractListModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QAbstractListModel::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: x_QAbstractListModel::x_11(args);	break;
        case 12: x_QAbstractListModel::x_12(args);	break;
        case 13: x_QAbstractListModel::x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: x_QAbstractListModel::x_16(args);	break;
        case 17: delete (QAbstractListModel*)xself;	break;
    }
}
class x_QAbstractState : public QAbstractState, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractState*>(this))) {
            const QMetaObject* xret = ((const x_QAbstractState*)this)->QAbstractState::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QAbstractState*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractState*>(this))) {
            void* xret = this->QAbstractState::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QAbstractState::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QAbstractState::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QAbstractState::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QAbstractState::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractState*>(this))) {
            int xret = this->QAbstractState::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    void x_8(Smoke::Stack x) {
        // QState* parentState() const
        QState* xret = ((const x_QAbstractState*)this)->QAbstractState::parentState();
        x[0].s_class = (void*)xret;
    }
    void x_9(Smoke::Stack x) {
        // QStateMachine* machine() const
        QStateMachine* xret = ((const x_QAbstractState*)this)->QAbstractState::machine();
        x[0].s_class = (void*)xret;
    }
    static void x_10(Smoke::Stack x) {
        // QAbstractState* QAbstractState(QState*)
        x_QAbstractState* xret = new x_QAbstractState((QState*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractState(QState* x1) : QAbstractState(x1) {}
    void x_11(Smoke::Stack x) {
        // virtual void onEntry(QEvent*) = 0
        this->onEntry((QEvent*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // virtual void onExit(QEvent*) = 0
        this->onExit((QEvent*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // bool event(QEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractState*>(this))) {
            bool xret = this->QAbstractState::event((QEvent*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->event((QEvent*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_14(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QAbstractState::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_15(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QAbstractState::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_16(Smoke::Stack x) {
        // QAbstractState* QAbstractState()
        x_QAbstractState* xret = new x_QAbstractState((QState*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_17(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QAbstractState::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(327, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QAbstractState::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(328, (void*)this, x)) return (void*)x[0].s_class;
        return this->QAbstractState::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(333, (void*)this, x)) return (int)x[0].s_int;
        return this->QAbstractState::qt_metacall(x1, x2, x3);
    }
    virtual void onEntry(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(337, (void*)this, x, true /*pure virtual*/);
    }
    virtual void onExit(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(338, (void*)this, x, true /*pure virtual*/);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(339, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractState::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(3805, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3841, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3842, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3843, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3844, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3845, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QAbstractState() { this->_binding->deleted(13, (void*)this); }
};
void xcall_QAbstractState(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractState *xself = (x_QAbstractState*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QAbstractState::x_3(args);	break;
        case 4: x_QAbstractState::x_4(args);	break;
        case 5: x_QAbstractState::x_5(args);	break;
        case 6: x_QAbstractState::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_QAbstractState::x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: x_QAbstractState::x_14(args);	break;
        case 15: x_QAbstractState::x_15(args);	break;
        case 16: x_QAbstractState::x_16(args);	break;
        case 17: x_QAbstractState::x_17(args);	break;
        case 18: delete (QAbstractState*)xself;	break;
    }
}
class x_QAbstractTableModel : public QAbstractTableModel, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractTableModel*>(this))) {
            const QMetaObject* xret = ((const x_QAbstractTableModel*)this)->QAbstractTableModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QAbstractTableModel*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractTableModel*>(this))) {
            void* xret = this->QAbstractTableModel::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QAbstractTableModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QAbstractTableModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QAbstractTableModel::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QAbstractTableModel::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractTableModel*>(this))) {
            int xret = this->QAbstractTableModel::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QAbstractTableModel* QAbstractTableModel(QObject*)
        x_QAbstractTableModel* xret = new x_QAbstractTableModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QAbstractTableModel(QObject* x1) : QAbstractTableModel(x1) {}
    void x_9(Smoke::Stack x) {
        // QModelIndex index(int, int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractTableModel*>(this))) {
            QModelIndex xret = ((const x_QAbstractTableModel*)this)->QAbstractTableModel::index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_QAbstractTableModel*)this)->index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // bool dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QAbstractTableModel*>(this))) {
            bool xret = this->QAbstractTableModel::dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_11(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QAbstractTableModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QAbstractTableModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_13(Smoke::Stack x) {
        // QAbstractTableModel* QAbstractTableModel()
        x_QAbstractTableModel* xret = new x_QAbstractTableModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_14(Smoke::Stack x) {
        // QModelIndex index(int, int) const
        QModelIndex xret = ((const x_QAbstractTableModel*)this)->QAbstractTableModel::index((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    static void x_15(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QAbstractTableModel::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(345, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QAbstractTableModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(346, (void*)this, x)) return (void*)x[0].s_class;
        return this->QAbstractTableModel::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(351, (void*)this, x)) return (int)x[0].s_int;
        return this->QAbstractTableModel::qt_metacall(x1, x2, x3);
    }
    virtual QModelIndex index(int x1, int x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(353, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractTableModel::index(x1, x2, x3);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(221, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(222, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual QVariant data(const QModelIndex& x1, int x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        this->_binding->callMethod(224, (void*)this, x, true /*pure virtual*/);
        QVariant* xptr = (QVariant*)x[0].s_class;
        QVariant xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool setData(const QModelIndex& x1, const QVariant& x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(225, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(x1, x2, x3);
    }
    virtual QVariant headerData(int x1, Qt::Orientation x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(226, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::headerData(x1, x2, x3);
    }
    virtual bool setHeaderData(int x1, Qt::Orientation x2, const QVariant& x3, int x4) {
        Smoke::StackItem x[5];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(227, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setHeaderData(x1, x2, x3, x4);
    }
    virtual QMap<int,QVariant> itemData(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(228, (void*)this, x)) {
            QMap<int,QVariant>* xptr = (QMap<int,QVariant>*)x[0].s_class;
            QMap<int,QVariant> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::itemData(x1);
    }
    virtual bool setItemData(const QModelIndex& x1, const QMap<int,QVariant>& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(229, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(230, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(231, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QAbstractItemModel::mimeData(x1);
    }
    virtual bool dropMimeData(const QMimeData* x1, Qt::DropAction x2, int x3, int x4, const QModelIndex& x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_class = (void*)&x5;
        if (this->_binding->callMethod(354, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractTableModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(233, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractItemModel::supportedDropActions();
    }
    virtual bool insertRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(236, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertRows(x1, x2, x3);
    }
    virtual bool insertColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(237, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertColumns(x1, x2, x3);
    }
    virtual bool removeRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(238, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeRows(x1, x2, x3);
    }
    virtual bool removeColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(239, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(244, (void*)this, x)) return;
        this->QAbstractItemModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(245, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(x1);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(246, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractItemModel::flags(x1);
    }
    virtual void sort(int x1, Qt::SortOrder x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(247, (void*)this, x)) return;
        this->QAbstractItemModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(248, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::buddy(x1);
    }
    virtual QList<QModelIndex> match(const QModelIndex& x1, int x2, const QVariant& x3, int x4, QFlags<Qt::MatchFlag> x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        x[5].s_uint = (uint)x5;
        if (this->_binding->callMethod(249, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::match(x1, x2, x3, x4, x5);
    }
    virtual QSize span(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(250, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(257, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->QAbstractItemModel::revert();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3804, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(3805, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3841, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3842, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3843, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3844, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3845, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QAbstractTableModel() { this->_binding->deleted(14, (void*)this); }
};
void xcall_QAbstractTableModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QAbstractTableModel *xself = (x_QAbstractTableModel*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QAbstractTableModel::x_3(args);	break;
        case 4: x_QAbstractTableModel::x_4(args);	break;
        case 5: x_QAbstractTableModel::x_5(args);	break;
        case 6: x_QAbstractTableModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QAbstractTableModel::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: x_QAbstractTableModel::x_11(args);	break;
        case 12: x_QAbstractTableModel::x_12(args);	break;
        case 13: x_QAbstractTableModel::x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: x_QAbstractTableModel::x_15(args);	break;
        case 16: delete (QAbstractTableModel*)xself;	break;
    }
}

}
