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

#include <smoke.h>
#include <akonadi_smoke.h>

class __internal_SmokeClass {};

namespace __smokeakonadi {

class x_Akonadi__LinkJob : public Akonadi::LinkJob, 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<Akonadi::LinkJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__LinkJob*)this)->Akonadi::LinkJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__LinkJob*)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<Akonadi::LinkJob*>(this))) {
            void* xret = this->Akonadi::LinkJob::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 = Akonadi::LinkJob::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 = Akonadi::LinkJob::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 = Akonadi::LinkJob::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 = Akonadi::LinkJob::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<Akonadi::LinkJob*>(this))) {
            int xret = this->Akonadi::LinkJob::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) {
        // Akonadi::LinkJob* LinkJob(const Akonadi::Collection&, const QList<Akonadi::Item>&, QObject*)
        x_Akonadi__LinkJob* xret = new x_Akonadi__LinkJob(*(const Akonadi::Collection*)x[1].s_class,*(const QList<Akonadi::Item>*)x[2].s_class,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__LinkJob(const Akonadi::Collection& x1, const QList<Akonadi::Item>& x2, QObject* x3) : LinkJob(x1, x2, x3) {}
    void x_9(Smoke::Stack x) {
        // void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::LinkJob*>(this))) {
            this->Akonadi::LinkJob::doStart();
            (void)x; // noop (for compiler warning)
        } else {
            this->doStart();
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_10(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::LinkJob::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_11(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::LinkJob::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // Akonadi::LinkJob* LinkJob(const Akonadi::Collection&, const QList<Akonadi::Item>&)
        x_Akonadi__LinkJob* xret = new x_Akonadi__LinkJob(*(const Akonadi::Collection*)x[1].s_class,*(const QList<Akonadi::Item>*)x[2].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_13(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::LinkJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1868, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::LinkJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1869, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::LinkJob::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(1874, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::LinkJob::qt_metacall(x1, x2, x3);
    }
    virtual QString errorString() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1847, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::Job::errorString();
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1876, (void*)this, x)) return;
        this->Akonadi::LinkJob::doStart();
    }
    virtual void doHandleResponse(const QByteArray& x1, const QByteArray& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1851, (void*)this, x)) return;
        this->Akonadi::Job::doHandleResponse(x1, x2);
    }
    virtual bool addSubjob(KJob* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1852, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::Job::addSubjob(x1);
    }
    virtual bool removeSubjob(KJob* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1853, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::Job::removeSubjob(x1);
    }
    virtual bool doKill() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1854, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::Job::doKill();
    }
    virtual void slotResult(KJob* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1856, (void*)this, x)) return;
        this->Akonadi::Job::slotResult(x1);
    }
    virtual void slotInfoMessage(KJob* x1, const QString& x2, const QString& x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(2494, (void*)this, x)) return;
        this->KCompositeJob::slotInfoMessage(x1, x2, x3);
    }
    virtual void start() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1846, (void*)this, x)) return;
        this->Akonadi::Job::start();
    }
    virtual bool doSuspend() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2508, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KJob::doSuspend();
    }
    virtual bool doResume() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2509, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KJob::doResume();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2686, (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(2687, (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(2688, (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(2689, (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(2690, (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(2691, (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(2692, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Akonadi__LinkJob() { this->_binding->deleted(90, (void*)this); }
};
void xcall_Akonadi__LinkJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__LinkJob *xself = (x_Akonadi__LinkJob*)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_Akonadi__LinkJob::x_3(args);	break;
        case 4: x_Akonadi__LinkJob::x_4(args);	break;
        case 5: x_Akonadi__LinkJob::x_5(args);	break;
        case 6: x_Akonadi__LinkJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__LinkJob::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_Akonadi__LinkJob::x_10(args);	break;
        case 11: x_Akonadi__LinkJob::x_11(args);	break;
        case 12: x_Akonadi__LinkJob::x_12(args);	break;
        case 13: x_Akonadi__LinkJob::x_13(args);	break;
        case 14: delete (Akonadi::LinkJob*)xself;	break;
    }
}
class x_Akonadi__MessageFolderAttribute : public Akonadi::MessageFolderAttribute, 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) {
        // Akonadi::MessageFolderAttribute* MessageFolderAttribute()
        x_Akonadi__MessageFolderAttribute* xret = new x_Akonadi__MessageFolderAttribute();
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageFolderAttribute() : MessageFolderAttribute() {}
    static void x_2(Smoke::Stack x) {
        // Akonadi::MessageFolderAttribute* MessageFolderAttribute(const Akonadi::MessageFolderAttribute&)
        x_Akonadi__MessageFolderAttribute* xret = new x_Akonadi__MessageFolderAttribute(*(const Akonadi::MessageFolderAttribute*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageFolderAttribute(const Akonadi::MessageFolderAttribute& x1) : MessageFolderAttribute(x1) {}
    void x_3(Smoke::Stack x) {
        // bool isOutboundFolder() const
        bool xret = ((const x_Akonadi__MessageFolderAttribute*)this)->Akonadi::MessageFolderAttribute::isOutboundFolder();
        x[0].s_bool = xret;
    }
    void x_4(Smoke::Stack x) {
        // void setOutboundFolder(bool)
        this->Akonadi::MessageFolderAttribute::setOutboundFolder((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // QByteArray type() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageFolderAttribute*>(this))) {
            QByteArray xret = ((const x_Akonadi__MessageFolderAttribute*)this)->Akonadi::MessageFolderAttribute::type();
            x[0].s_class = (void*)new QByteArray(xret);
        } else {
            QByteArray xret = ((const x_Akonadi__MessageFolderAttribute*)this)->type();
            x[0].s_class = (void*)new QByteArray(xret);
        }
    }
    void x_6(Smoke::Stack x) {
        // Akonadi::MessageFolderAttribute* clone() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageFolderAttribute*>(this))) {
            Akonadi::MessageFolderAttribute* xret = ((const x_Akonadi__MessageFolderAttribute*)this)->Akonadi::MessageFolderAttribute::clone();
            x[0].s_class = (void*)xret;
        } else {
            Akonadi::MessageFolderAttribute* xret = ((const x_Akonadi__MessageFolderAttribute*)this)->clone();
            x[0].s_class = (void*)xret;
        }
    }
    void x_7(Smoke::Stack x) {
        // QByteArray serialized() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageFolderAttribute*>(this))) {
            QByteArray xret = ((const x_Akonadi__MessageFolderAttribute*)this)->Akonadi::MessageFolderAttribute::serialized();
            x[0].s_class = (void*)new QByteArray(xret);
        } else {
            QByteArray xret = ((const x_Akonadi__MessageFolderAttribute*)this)->serialized();
            x[0].s_class = (void*)new QByteArray(xret);
        }
    }
    void x_8(Smoke::Stack x) {
        // void deserialize(const QByteArray&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageFolderAttribute*>(this))) {
            this->Akonadi::MessageFolderAttribute::deserialize(*(const QByteArray*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->deserialize(*(const QByteArray*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    virtual QByteArray type() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1886, (void*)this, x)) {
            QByteArray* xptr = (QByteArray*)x[0].s_class;
            QByteArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageFolderAttribute::type();
    }
    virtual Akonadi::MessageFolderAttribute* clone() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1887, (void*)this, x)) return (Akonadi::MessageFolderAttribute*)x[0].s_class;
        return this->Akonadi::MessageFolderAttribute::clone();
    }
    virtual QByteArray serialized() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1888, (void*)this, x)) {
            QByteArray* xptr = (QByteArray*)x[0].s_class;
            QByteArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageFolderAttribute::serialized();
    }
    virtual void deserialize(const QByteArray& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1889, (void*)this, x)) return;
        this->Akonadi::MessageFolderAttribute::deserialize(x1);
    }
    ~x_Akonadi__MessageFolderAttribute() { this->_binding->deleted(91, (void*)this); }
};
void xcall_Akonadi__MessageFolderAttribute(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__MessageFolderAttribute *xself = (x_Akonadi__MessageFolderAttribute*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Akonadi__MessageFolderAttribute::x_1(args);	break;
        case 2: x_Akonadi__MessageFolderAttribute::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: delete (Akonadi::MessageFolderAttribute*)xself;	break;
    }
}
class x_Akonadi__MessageModel : public Akonadi::MessageModel, 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<Akonadi::MessageModel*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__MessageModel*)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<Akonadi::MessageModel*>(this))) {
            void* xret = this->Akonadi::MessageModel::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 = Akonadi::MessageModel::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 = Akonadi::MessageModel::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 = Akonadi::MessageModel::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 = Akonadi::MessageModel::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<Akonadi::MessageModel*>(this))) {
            int xret = this->Akonadi::MessageModel::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) {
        // Akonadi::MessageModel* MessageModel(QObject*)
        x_Akonadi__MessageModel* xret = new x_Akonadi__MessageModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageModel(QObject* x1) : MessageModel(x1) {}
    void x_9(Smoke::Stack x) {
        // virtual int rowCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageModel*>(this))) {
            int xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__MessageModel*)this)->rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // virtual int columnCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageModel*>(this))) {
            int xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__MessageModel*)this)->columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // virtual QVariant data(const QModelIndex&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageModel*>(this))) {
            QVariant xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::data(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int);
            x[0].s_class = (void*)new QVariant(xret);
        } else {
            QVariant xret = ((const x_Akonadi__MessageModel*)this)->data(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int);
            x[0].s_class = (void*)new QVariant(xret);
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual QVariant headerData(int, Qt::Orientation, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageModel*>(this))) {
            QVariant xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::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_Akonadi__MessageModel*)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_13(Smoke::Stack x) {
        // virtual QStringList mimeTypes() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageModel*>(this))) {
            QStringList xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_Akonadi__MessageModel*)this)->mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    static void x_14(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::MessageModel::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 = Akonadi::MessageModel::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) {
        // Akonadi::MessageModel* MessageModel()
        x_Akonadi__MessageModel* xret = new x_Akonadi__MessageModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_17(Smoke::Stack x) {
        // int rowCount() const
        int xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::rowCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_18(Smoke::Stack x) {
        // int columnCount() const
        int xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::columnCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_19(Smoke::Stack x) {
        // QVariant data(const QModelIndex&) const
        QVariant xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::data(*(const QModelIndex*)x[1].s_class,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_20(Smoke::Stack x) {
        // QVariant headerData(int, Qt::Orientation) const
        QVariant xret = ((const x_Akonadi__MessageModel*)this)->Akonadi::MessageModel::headerData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    static void x_21(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::MessageModel::staticMetaObject;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::MessageModel::Subject;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::MessageModel::Sender;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::MessageModel::Receiver;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::MessageModel::Date;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::MessageModel::Size;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1891, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::MessageModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1892, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::MessageModel::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(1897, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageModel::qt_metacall(x1, x2, x3);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1899, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageModel::rowCount(x1);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1900, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageModel::columnCount(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;
        if (this->_binding->callMethod(1901, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageModel::data(x1, x2);
    }
    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(1902, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageModel::headerData(x1, x2, x3);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1903, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageModel::mimeTypes();
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1653, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->Akonadi::ItemModel::flags(x1);
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1654, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->Akonadi::ItemModel::mimeData(x1);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1656, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->Akonadi::ItemModel::supportedDropActions();
    }
    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(2629, (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 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(2530, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(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(2532, (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(2533, (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(2534, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    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(1661, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::ItemModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    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(2539, (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(2540, (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(2541, (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(2542, (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(2543, (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(2544, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(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(2545, (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(2546, (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(2547, (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(2548, (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(2549, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2550, (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(2686, (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(2687, (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(2688, (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(2689, (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(2690, (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(2691, (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(2692, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 152: //Akonadi::MessageModel::Column
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::MessageModel::Column;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::MessageModel::Column*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::MessageModel::Column*)xdata = (Akonadi::MessageModel::Column)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::MessageModel::Column*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__MessageModel() { this->_binding->deleted(92, (void*)this); }
};
void xenum_Akonadi__MessageModel(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__MessageModel::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__MessageModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__MessageModel *xself = (x_Akonadi__MessageModel*)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_Akonadi__MessageModel::x_3(args);	break;
        case 4: x_Akonadi__MessageModel::x_4(args);	break;
        case 5: x_Akonadi__MessageModel::x_5(args);	break;
        case 6: x_Akonadi__MessageModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__MessageModel::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: x_Akonadi__MessageModel::x_14(args);	break;
        case 15: x_Akonadi__MessageModel::x_15(args);	break;
        case 16: x_Akonadi__MessageModel::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: x_Akonadi__MessageModel::x_21(args);	break;
        case 22: x_Akonadi__MessageModel::x_22(args);	break;
        case 23: x_Akonadi__MessageModel::x_23(args);	break;
        case 24: x_Akonadi__MessageModel::x_24(args);	break;
        case 25: x_Akonadi__MessageModel::x_25(args);	break;
        case 26: x_Akonadi__MessageModel::x_26(args);	break;
        case 27: delete (Akonadi::MessageModel*)xself;	break;
    }
}
class x_Akonadi__MessageThreaderProxyModel : public Akonadi::MessageThreaderProxyModel, 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<Akonadi::MessageThreaderProxyModel*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__MessageThreaderProxyModel*)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<Akonadi::MessageThreaderProxyModel*>(this))) {
            void* xret = this->Akonadi::MessageThreaderProxyModel::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 = Akonadi::MessageThreaderProxyModel::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 = Akonadi::MessageThreaderProxyModel::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 = Akonadi::MessageThreaderProxyModel::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 = Akonadi::MessageThreaderProxyModel::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<Akonadi::MessageThreaderProxyModel*>(this))) {
            int xret = this->Akonadi::MessageThreaderProxyModel::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) {
        // Akonadi::MessageThreaderProxyModel* MessageThreaderProxyModel(QObject*)
        x_Akonadi__MessageThreaderProxyModel* xret = new x_Akonadi__MessageThreaderProxyModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageThreaderProxyModel(QObject* x1) : MessageThreaderProxyModel(x1) {}
    void x_9(Smoke::Stack x) {
        // QModelIndex parent(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // int rowCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            int xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QModelIndex index(int, int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::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_Akonadi__MessageThreaderProxyModel*)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_12(Smoke::Stack x) {
        // bool hasChildren(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            bool xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::hasChildren(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->hasChildren(*(const QModelIndex*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // QModelIndex createIndex(int, int, unsigned int) const
        QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::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_14(Smoke::Stack x) {
        // int columnCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            int xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_15(Smoke::Stack x) {
        // QStringList mimeTypes() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QStringList xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // QMimeData* mimeData(const QList<QModelIndex>&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QMimeData* xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            QMimeData* xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_17(Smoke::Stack x) {
        // QModelIndex mapFromSource(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::mapFromSource(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->mapFromSource(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_18(Smoke::Stack x) {
        // QModelIndex mapToSource(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->Akonadi::MessageThreaderProxyModel::mapToSource(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_Akonadi__MessageThreaderProxyModel*)this)->mapToSource(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_19(Smoke::Stack x) {
        // void setSourceModel(QAbstractItemModel*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreaderProxyModel*>(this))) {
            this->Akonadi::MessageThreaderProxyModel::setSourceModel((QAbstractItemModel*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setSourceModel((QAbstractItemModel*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_20(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::MessageThreaderProxyModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_21(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::MessageThreaderProxyModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_22(Smoke::Stack x) {
        // Akonadi::MessageThreaderProxyModel* MessageThreaderProxyModel()
        x_Akonadi__MessageThreaderProxyModel* xret = new x_Akonadi__MessageThreaderProxyModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_23(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::MessageThreaderProxyModel::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1918, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::MessageThreaderProxyModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1919, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::MessageThreaderProxyModel::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(1924, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageThreaderProxyModel::qt_metacall(x1, x2, x3);
    }
    virtual void setSourceModel(QAbstractItemModel* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1936, (void*)this, x)) return;
        this->Akonadi::MessageThreaderProxyModel::setSourceModel(x1);
    }
    virtual QModelIndex mapToSource(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1935, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreaderProxyModel::mapToSource(x1);
    }
    virtual QModelIndex mapFromSource(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1934, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreaderProxyModel::mapFromSource(x1);
    }
    virtual QItemSelection mapSelectionToSource(const QItemSelection& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2609, (void*)this, x)) {
            QItemSelection* xptr = (QItemSelection*)x[0].s_class;
            QItemSelection xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::mapSelectionToSource(x1);
    }
    virtual QItemSelection mapSelectionFromSource(const QItemSelection& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2610, (void*)this, x)) {
            QItemSelection* xptr = (QItemSelection*)x[0].s_class;
            QItemSelection xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::mapSelectionFromSource(x1);
    }
    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(1928, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreaderProxyModel::index(x1, x2, x3);
    }
    virtual QModelIndex parent(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1926, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreaderProxyModel::parent(x1);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1927, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageThreaderProxyModel::rowCount(x1);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1931, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::MessageThreaderProxyModel::columnCount(x1);
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1929, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::MessageThreaderProxyModel::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;
        if (this->_binding->callMethod(2613, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::data(x1, x2);
    }
    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(2617, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractProxyModel::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(2614, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::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(2619, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractProxyModel::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(2615, (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->QAbstractProxyModel::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(2618, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractProxyModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1932, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreaderProxyModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1933, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->Akonadi::MessageThreaderProxyModel::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(2537, (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(2625, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractProxyModel::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(2539, (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(2540, (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(2541, (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(2542, (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(2622, (void*)this, x)) return;
        this->QAbstractProxyModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2621, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractProxyModel::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(2616, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractProxyModel::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(2623, (void*)this, x)) return;
        this->QAbstractProxyModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2620, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::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(2547, (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(2624, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractProxyModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2611, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractProxyModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2612, (void*)this, x)) return;
        this->QAbstractProxyModel::revert();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2686, (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(2687, (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(2688, (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(2689, (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(2690, (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(2691, (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(2692, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Akonadi__MessageThreaderProxyModel() { this->_binding->deleted(93, (void*)this); }
};
void xcall_Akonadi__MessageThreaderProxyModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__MessageThreaderProxyModel *xself = (x_Akonadi__MessageThreaderProxyModel*)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_Akonadi__MessageThreaderProxyModel::x_3(args);	break;
        case 4: x_Akonadi__MessageThreaderProxyModel::x_4(args);	break;
        case 5: x_Akonadi__MessageThreaderProxyModel::x_5(args);	break;
        case 6: x_Akonadi__MessageThreaderProxyModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__MessageThreaderProxyModel::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: x_Akonadi__MessageThreaderProxyModel::x_20(args);	break;
        case 21: x_Akonadi__MessageThreaderProxyModel::x_21(args);	break;
        case 22: x_Akonadi__MessageThreaderProxyModel::x_22(args);	break;
        case 23: x_Akonadi__MessageThreaderProxyModel::x_23(args);	break;
        case 24: delete (Akonadi::MessageThreaderProxyModel*)xself;	break;
    }
}
class x_Akonadi__MessageThreadingAttribute : public Akonadi::MessageThreadingAttribute, 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) {
        // Akonadi::MessageThreadingAttribute* MessageThreadingAttribute()
        x_Akonadi__MessageThreadingAttribute* xret = new x_Akonadi__MessageThreadingAttribute();
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageThreadingAttribute() : MessageThreadingAttribute() {}
    static void x_2(Smoke::Stack x) {
        // Akonadi::MessageThreadingAttribute* MessageThreadingAttribute(const Akonadi::MessageThreadingAttribute&)
        x_Akonadi__MessageThreadingAttribute* xret = new x_Akonadi__MessageThreadingAttribute(*(const Akonadi::MessageThreadingAttribute*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MessageThreadingAttribute(const Akonadi::MessageThreadingAttribute& x1) : MessageThreadingAttribute(x1) {}
    void x_3(Smoke::Stack x) {
        // QList<Akonadi::Item::Id> perfectParents() const
        QList<Akonadi::Item::Id> xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::perfectParents();
        x[0].s_class = (void*)new QList<Akonadi::Item::Id>(xret);
    }
    void x_4(Smoke::Stack x) {
        // void setPerfectParents(const QList<Akonadi::Item::Id>&)
        this->Akonadi::MessageThreadingAttribute::setPerfectParents(*(const QList<Akonadi::Item::Id>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // QList<Akonadi::Item::Id> unperfectParents() const
        QList<Akonadi::Item::Id> xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::unperfectParents();
        x[0].s_class = (void*)new QList<Akonadi::Item::Id>(xret);
    }
    void x_6(Smoke::Stack x) {
        // void setUnperfectParents(const QList<Akonadi::Item::Id>&)
        this->Akonadi::MessageThreadingAttribute::setUnperfectParents(*(const QList<Akonadi::Item::Id>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // QList<Akonadi::Item::Id> subjectParents() const
        QList<Akonadi::Item::Id> xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::subjectParents();
        x[0].s_class = (void*)new QList<Akonadi::Item::Id>(xret);
    }
    void x_8(Smoke::Stack x) {
        // void setSubjectParents(const QList<Akonadi::Item::Id>&)
        this->Akonadi::MessageThreadingAttribute::setSubjectParents(*(const QList<Akonadi::Item::Id>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_9(Smoke::Stack x) {
        // QByteArray type() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreadingAttribute*>(this))) {
            QByteArray xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::type();
            x[0].s_class = (void*)new QByteArray(xret);
        } else {
            QByteArray xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->type();
            x[0].s_class = (void*)new QByteArray(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // Akonadi::MessageThreadingAttribute* clone() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreadingAttribute*>(this))) {
            Akonadi::MessageThreadingAttribute* xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::clone();
            x[0].s_class = (void*)xret;
        } else {
            Akonadi::MessageThreadingAttribute* xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->clone();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QByteArray serialized() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreadingAttribute*>(this))) {
            QByteArray xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->Akonadi::MessageThreadingAttribute::serialized();
            x[0].s_class = (void*)new QByteArray(xret);
        } else {
            QByteArray xret = ((const x_Akonadi__MessageThreadingAttribute*)this)->serialized();
            x[0].s_class = (void*)new QByteArray(xret);
        }
    }
    void x_12(Smoke::Stack x) {
        // void deserialize(const QByteArray&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::MessageThreadingAttribute*>(this))) {
            this->Akonadi::MessageThreadingAttribute::deserialize(*(const QByteArray*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->deserialize(*(const QByteArray*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    virtual QByteArray type() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1950, (void*)this, x)) {
            QByteArray* xptr = (QByteArray*)x[0].s_class;
            QByteArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreadingAttribute::type();
    }
    virtual Akonadi::MessageThreadingAttribute* clone() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1951, (void*)this, x)) return (Akonadi::MessageThreadingAttribute*)x[0].s_class;
        return this->Akonadi::MessageThreadingAttribute::clone();
    }
    virtual QByteArray serialized() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1952, (void*)this, x)) {
            QByteArray* xptr = (QByteArray*)x[0].s_class;
            QByteArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::MessageThreadingAttribute::serialized();
    }
    virtual void deserialize(const QByteArray& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1953, (void*)this, x)) return;
        this->Akonadi::MessageThreadingAttribute::deserialize(x1);
    }
    ~x_Akonadi__MessageThreadingAttribute() { this->_binding->deleted(94, (void*)this); }
};
void xcall_Akonadi__MessageThreadingAttribute(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__MessageThreadingAttribute *xself = (x_Akonadi__MessageThreadingAttribute*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Akonadi__MessageThreadingAttribute::x_1(args);	break;
        case 2: x_Akonadi__MessageThreadingAttribute::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: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: delete (Akonadi::MessageThreadingAttribute*)xself;	break;
    }
}
class x_Akonadi__MimeTypeChecker : public Akonadi::MimeTypeChecker {
    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) {
        // Akonadi::MimeTypeChecker* MimeTypeChecker()
        x_Akonadi__MimeTypeChecker* xret = new x_Akonadi__MimeTypeChecker();
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MimeTypeChecker() : MimeTypeChecker() {}
    static void x_2(Smoke::Stack x) {
        // Akonadi::MimeTypeChecker* MimeTypeChecker(const Akonadi::MimeTypeChecker&)
        x_Akonadi__MimeTypeChecker* xret = new x_Akonadi__MimeTypeChecker(*(const Akonadi::MimeTypeChecker*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__MimeTypeChecker(const Akonadi::MimeTypeChecker& x1) : MimeTypeChecker(x1) {}
    void x_3(Smoke::Stack x) {
        // Akonadi::MimeTypeChecker& operator=(const Akonadi::MimeTypeChecker&)
        Akonadi::MimeTypeChecker& xret = this->Akonadi::MimeTypeChecker::operator=(*(const Akonadi::MimeTypeChecker*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_4(Smoke::Stack x) {
        // QStringList wantedMimeTypes() const
        QStringList xret = ((const x_Akonadi__MimeTypeChecker*)this)->Akonadi::MimeTypeChecker::wantedMimeTypes();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_5(Smoke::Stack x) {
        // void setWantedMimeTypes(const QStringList&)
        this->Akonadi::MimeTypeChecker::setWantedMimeTypes(*(const QStringList*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // void addWantedMimeType(const QString&)
        this->Akonadi::MimeTypeChecker::addWantedMimeType(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // void removeWantedMimeType(const QString&)
        this->Akonadi::MimeTypeChecker::removeWantedMimeType(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // bool isWantedItem(const Akonadi::Item&) const
        bool xret = ((const x_Akonadi__MimeTypeChecker*)this)->Akonadi::MimeTypeChecker::isWantedItem(*(const Akonadi::Item*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_9(Smoke::Stack x) {
        // bool isWantedCollection(const Akonadi::Collection&) const
        bool xret = ((const x_Akonadi__MimeTypeChecker*)this)->Akonadi::MimeTypeChecker::isWantedCollection(*(const Akonadi::Collection*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // bool isWantedMimeType(const QString&) const
        bool xret = ((const x_Akonadi__MimeTypeChecker*)this)->Akonadi::MimeTypeChecker::isWantedMimeType(*(const QString*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_11(Smoke::Stack x) {
        // bool containsWantedMimeType(const QStringList&) const
        bool xret = ((const x_Akonadi__MimeTypeChecker*)this)->Akonadi::MimeTypeChecker::containsWantedMimeType(*(const QStringList*)x[1].s_class);
        x[0].s_bool = xret;
    }
    static void x_12(Smoke::Stack x) {
        // static bool isWantedItem(const Akonadi::Item&, const QString&)
        bool xret = Akonadi::MimeTypeChecker::isWantedItem(*(const Akonadi::Item*)x[1].s_class,*(const QString*)x[2].s_class);
        x[0].s_bool = xret;
    }
    static void x_13(Smoke::Stack x) {
        // static bool isWantedCollection(const Akonadi::Collection&, const QString&)
        bool xret = Akonadi::MimeTypeChecker::isWantedCollection(*(const Akonadi::Collection*)x[1].s_class,*(const QString*)x[2].s_class);
        x[0].s_bool = xret;
    }
    ~x_Akonadi__MimeTypeChecker() { this->_binding->deleted(95, (void*)this); }
};
void xcall_Akonadi__MimeTypeChecker(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__MimeTypeChecker *xself = (x_Akonadi__MimeTypeChecker*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Akonadi__MimeTypeChecker::x_1(args);	break;
        case 2: x_Akonadi__MimeTypeChecker::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: xself->x_11(args);	break;
        case 12: x_Akonadi__MimeTypeChecker::x_12(args);	break;
        case 13: x_Akonadi__MimeTypeChecker::x_13(args);	break;
        case 14: delete (Akonadi::MimeTypeChecker*)xself;	break;
    }
}
class x_Akonadi__Monitor : public Akonadi::Monitor, 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<Akonadi::Monitor*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__Monitor*)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<Akonadi::Monitor*>(this))) {
            void* xret = this->Akonadi::Monitor::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 = Akonadi::Monitor::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 = Akonadi::Monitor::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 = Akonadi::Monitor::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 = Akonadi::Monitor::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<Akonadi::Monitor*>(this))) {
            int xret = this->Akonadi::Monitor::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) {
        // Akonadi::Monitor* Monitor(QObject*)
        x_Akonadi__Monitor* xret = new x_Akonadi__Monitor((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__Monitor(QObject* x1) : Monitor(x1) {}
    void x_9(Smoke::Stack x) {
        // void setCollectionMonitored(const Akonadi::Collection&, bool)
        this->Akonadi::Monitor::setCollectionMonitored(*(const Akonadi::Collection*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // void setItemMonitored(const Akonadi::Item&, bool)
        this->Akonadi::Monitor::setItemMonitored(*(const Akonadi::Item*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // void setResourceMonitored(const QByteArray&, bool)
        this->Akonadi::Monitor::setResourceMonitored(*(const QByteArray*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // void setMimeTypeMonitored(const QString&, bool)
        this->Akonadi::Monitor::setMimeTypeMonitored(*(const QString*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // void setTagMonitored(const Akonadi::Tag&, bool)
        this->Akonadi::Monitor::setTagMonitored(*(const Akonadi::Tag*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // void setTypeMonitored(Akonadi::Monitor::Type, bool)
        this->Akonadi::Monitor::setTypeMonitored((Akonadi::Monitor::Type)x[1].s_enum,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // void setAllMonitored(bool)
        this->Akonadi::Monitor::setAllMonitored((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // void ignoreSession(Akonadi::Session*)
        this->Akonadi::Monitor::ignoreSession((Akonadi::Session*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // void fetchCollection(bool)
        this->Akonadi::Monitor::fetchCollection((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_18(Smoke::Stack x) {
        // void fetchCollectionStatistics(bool)
        this->Akonadi::Monitor::fetchCollectionStatistics((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // void setItemFetchScope(const Akonadi::ItemFetchScope&)
        this->Akonadi::Monitor::setItemFetchScope(*(const Akonadi::ItemFetchScope*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_20(Smoke::Stack x) {
        // void fetchChangedOnly(bool)
        this->Akonadi::Monitor::fetchChangedOnly((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_21(Smoke::Stack x) {
        // Akonadi::ItemFetchScope& itemFetchScope()
        Akonadi::ItemFetchScope& xret = this->Akonadi::Monitor::itemFetchScope();
        x[0].s_class = (void*)&xret;
    }
    void x_22(Smoke::Stack x) {
        // void setCollectionFetchScope(const Akonadi::CollectionFetchScope&)
        this->Akonadi::Monitor::setCollectionFetchScope(*(const Akonadi::CollectionFetchScope*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_23(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope& collectionFetchScope()
        Akonadi::CollectionFetchScope& xret = this->Akonadi::Monitor::collectionFetchScope();
        x[0].s_class = (void*)&xret;
    }
    void x_24(Smoke::Stack x) {
        // void setTagFetchScope(const Akonadi::TagFetchScope&)
        this->Akonadi::Monitor::setTagFetchScope(*(const Akonadi::TagFetchScope*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_25(Smoke::Stack x) {
        // Akonadi::TagFetchScope& tagFetchScope()
        Akonadi::TagFetchScope& xret = this->Akonadi::Monitor::tagFetchScope();
        x[0].s_class = (void*)&xret;
    }
    void x_26(Smoke::Stack x) {
        // QList<Akonadi::Collection> collectionsMonitored() const
        QList<Akonadi::Collection> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::collectionsMonitored();
        x[0].s_class = (void*)new QList<Akonadi::Collection>(xret);
    }
    void x_27(Smoke::Stack x) {
        // QList<Akonadi::Item::Id> itemsMonitored() const
        QList<Akonadi::Item::Id> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::itemsMonitored();
        x[0].s_class = (void*)new QList<Akonadi::Item::Id>(xret);
    }
    void x_28(Smoke::Stack x) {
        // QVector<Akonadi::Item::Id> itemsMonitoredEx() const
        QVector<Akonadi::Item::Id> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::itemsMonitoredEx();
        x[0].s_class = (void*)new QVector<Akonadi::Item::Id>(xret);
    }
    void x_29(Smoke::Stack x) {
        // int numItemsMonitored() const
        int xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::numItemsMonitored();
        x[0].s_int = xret;
    }
    void x_30(Smoke::Stack x) {
        // QStringList mimeTypesMonitored() const
        QStringList xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::mimeTypesMonitored();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_31(Smoke::Stack x) {
        // int numMimeTypesMonitored() const
        int xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::numMimeTypesMonitored();
        x[0].s_int = xret;
    }
    void x_32(Smoke::Stack x) {
        // QVector<long long> tagsMonitored() const
        QVector<long long> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::tagsMonitored();
        x[0].s_class = (void*)new QVector<long long>(xret);
    }
    void x_33(Smoke::Stack x) {
        // QVector<Akonadi::Monitor::Type> typesMonitored() const
        QVector<Akonadi::Monitor::Type> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::typesMonitored();
        x[0].s_class = (void*)new QVector<Akonadi::Monitor::Type>(xret);
    }
    void x_34(Smoke::Stack x) {
        // QList<QByteArray> resourcesMonitored() const
        QList<QByteArray> xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::resourcesMonitored();
        x[0].s_class = (void*)new QList<QByteArray>(xret);
    }
    void x_35(Smoke::Stack x) {
        // int numResourcesMonitored() const
        int xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::numResourcesMonitored();
        x[0].s_int = xret;
    }
    void x_36(Smoke::Stack x) {
        // bool isAllMonitored() const
        bool xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::isAllMonitored();
        x[0].s_bool = xret;
    }
    void x_37(Smoke::Stack x) {
        // void setSession(Akonadi::Session*)
        this->Akonadi::Monitor::setSession((Akonadi::Session*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_38(Smoke::Stack x) {
        // Akonadi::Session* session() const
        Akonadi::Session* xret = ((const x_Akonadi__Monitor*)this)->Akonadi::Monitor::session();
        x[0].s_class = (void*)xret;
    }
    void x_39(Smoke::Stack x) {
        // void setCollectionMoveTranslationEnabled(bool)
        this->Akonadi::Monitor::setCollectionMoveTranslationEnabled((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_40(Smoke::Stack x) {
        // void itemChanged(const Akonadi::Item&, const QSet<QByteArray>&)
        this->Akonadi::Monitor::itemChanged(*(const Akonadi::Item*)x[1].s_class,*(const QSet<QByteArray>*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_41(Smoke::Stack x) {
        // void itemsFlagsChanged(const Akonadi::Item::List&, const QSet<QByteArray>&, const QSet<QByteArray>&)
        this->Akonadi::Monitor::itemsFlagsChanged(*(const Akonadi::Item::List*)x[1].s_class,*(const QSet<QByteArray>*)x[2].s_class,*(const QSet<QByteArray>*)x[3].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_42(Smoke::Stack x) {
        // void itemsTagsChanged(const Akonadi::Item::List&, const QSet<Akonadi::Tag>&, const QSet<Akonadi::Tag>&)
        this->Akonadi::Monitor::itemsTagsChanged(*(const Akonadi::Item::List*)x[1].s_class,*(const QSet<Akonadi::Tag>*)x[2].s_class,*(const QSet<Akonadi::Tag>*)x[3].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_43(Smoke::Stack x) {
        // void itemMoved(const Akonadi::Item&, const Akonadi::Collection&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemMoved(*(const Akonadi::Item*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class,*(const Akonadi::Collection*)x[3].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_44(Smoke::Stack x) {
        // void itemsMoved(const Akonadi::Item::List&, const Akonadi::Collection&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemsMoved(*(const Akonadi::Item::List*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class,*(const Akonadi::Collection*)x[3].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_45(Smoke::Stack x) {
        // void itemAdded(const Akonadi::Item&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemAdded(*(const Akonadi::Item*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_46(Smoke::Stack x) {
        // void itemRemoved(const Akonadi::Item&)
        this->Akonadi::Monitor::itemRemoved(*(const Akonadi::Item*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_47(Smoke::Stack x) {
        // void itemsRemoved(const Akonadi::Item::List&)
        this->Akonadi::Monitor::itemsRemoved(*(const Akonadi::Item::List*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_48(Smoke::Stack x) {
        // void itemLinked(const Akonadi::Item&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemLinked(*(const Akonadi::Item*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_49(Smoke::Stack x) {
        // void itemsLinked(const Akonadi::Item::List&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemsLinked(*(const Akonadi::Item::List*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_50(Smoke::Stack x) {
        // void itemUnlinked(const Akonadi::Item&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemUnlinked(*(const Akonadi::Item*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_51(Smoke::Stack x) {
        // void itemsUnlinked(const Akonadi::Item::List&, const Akonadi::Collection&)
        this->Akonadi::Monitor::itemsUnlinked(*(const Akonadi::Item::List*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_52(Smoke::Stack x) {
        // void collectionAdded(const Akonadi::Collection&, const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionAdded(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_53(Smoke::Stack x) {
        // void collectionChanged(const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionChanged(*(const Akonadi::Collection*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_54(Smoke::Stack x) {
        // void collectionChanged(const Akonadi::Collection&, const QSet<QByteArray>&)
        this->Akonadi::Monitor::collectionChanged(*(const Akonadi::Collection*)x[1].s_class,*(const QSet<QByteArray>*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_55(Smoke::Stack x) {
        // void collectionMoved(const Akonadi::Collection&, const Akonadi::Collection&, const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionMoved(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class,*(const Akonadi::Collection*)x[3].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_56(Smoke::Stack x) {
        // void collectionRemoved(const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionRemoved(*(const Akonadi::Collection*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_57(Smoke::Stack x) {
        // void collectionSubscribed(const Akonadi::Collection&, const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionSubscribed(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_58(Smoke::Stack x) {
        // void collectionUnsubscribed(const Akonadi::Collection&)
        this->Akonadi::Monitor::collectionUnsubscribed(*(const Akonadi::Collection*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_59(Smoke::Stack x) {
        // void collectionStatisticsChanged(Akonadi::Collection::Id, const Akonadi::CollectionStatistics&)
        this->Akonadi::Monitor::collectionStatisticsChanged(*(Akonadi::Collection::Id*)x[1].s_class,*(const Akonadi::CollectionStatistics*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_60(Smoke::Stack x) {
        // void tagAdded(const Akonadi::Tag&)
        this->Akonadi::Monitor::tagAdded(*(const Akonadi::Tag*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_61(Smoke::Stack x) {
        // void tagChanged(const Akonadi::Tag&)
        this->Akonadi::Monitor::tagChanged(*(const Akonadi::Tag*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_62(Smoke::Stack x) {
        // void tagRemoved(const Akonadi::Tag&)
        this->Akonadi::Monitor::tagRemoved(*(const Akonadi::Tag*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_63(Smoke::Stack x) {
        // void collectionMonitored(const Akonadi::Collection&, bool)
        this->Akonadi::Monitor::collectionMonitored(*(const Akonadi::Collection*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_64(Smoke::Stack x) {
        // void itemMonitored(const Akonadi::Item&, bool)
        this->Akonadi::Monitor::itemMonitored(*(const Akonadi::Item*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_65(Smoke::Stack x) {
        // void resourceMonitored(const QByteArray&, bool)
        this->Akonadi::Monitor::resourceMonitored(*(const QByteArray*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_66(Smoke::Stack x) {
        // void mimeTypeMonitored(const QString&, bool)
        this->Akonadi::Monitor::mimeTypeMonitored(*(const QString*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_67(Smoke::Stack x) {
        // void allMonitored(bool)
        this->Akonadi::Monitor::allMonitored((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_68(Smoke::Stack x) {
        // void tagMonitored(const Akonadi::Tag&, bool)
        this->Akonadi::Monitor::tagMonitored(*(const Akonadi::Tag*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_69(Smoke::Stack x) {
        // void typeMonitored(const Akonadi::Monitor::Type, bool)
        this->Akonadi::Monitor::typeMonitored((const Akonadi::Monitor::Type)x[1].s_enum,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    static void x_70(Smoke::Stack x) {
        // Akonadi::Monitor* Monitor(Akonadi::MonitorPrivate*, QObject*)
        x_Akonadi__Monitor* xret = new x_Akonadi__Monitor((Akonadi::MonitorPrivate*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__Monitor(Akonadi::MonitorPrivate* x1, QObject* x2) : Monitor(x1, x2) {}
    static void x_71(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::Monitor::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_72(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::Monitor::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_73(Smoke::Stack x) {
        // Akonadi::Monitor* Monitor()
        x_Akonadi__Monitor* xret = new x_Akonadi__Monitor((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_74(Smoke::Stack x) {
        // void setCollectionMonitored(const Akonadi::Collection&)
        this->Akonadi::Monitor::setCollectionMonitored(*(const Akonadi::Collection*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_75(Smoke::Stack x) {
        // void setItemMonitored(const Akonadi::Item&)
        this->Akonadi::Monitor::setItemMonitored(*(const Akonadi::Item*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_76(Smoke::Stack x) {
        // void setResourceMonitored(const QByteArray&)
        this->Akonadi::Monitor::setResourceMonitored(*(const QByteArray*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_77(Smoke::Stack x) {
        // void setMimeTypeMonitored(const QString&)
        this->Akonadi::Monitor::setMimeTypeMonitored(*(const QString*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_78(Smoke::Stack x) {
        // void setTagMonitored(const Akonadi::Tag&)
        this->Akonadi::Monitor::setTagMonitored(*(const Akonadi::Tag*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_79(Smoke::Stack x) {
        // void setTypeMonitored(Akonadi::Monitor::Type)
        this->Akonadi::Monitor::setTypeMonitored((Akonadi::Monitor::Type)x[1].s_enum,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_80(Smoke::Stack x) {
        // void setAllMonitored()
        this->Akonadi::Monitor::setAllMonitored((bool)true);
        (void)x; // noop (for compiler warning)
    }
    static void x_81(Smoke::Stack x) {
        // Akonadi::Monitor* Monitor(Akonadi::MonitorPrivate*)
        x_Akonadi__Monitor* xret = new x_Akonadi__Monitor((Akonadi::MonitorPrivate*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_82(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::Monitor::staticMetaObject;
    }
    static void x_83(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::Monitor::Collections;
    }
    static void x_84(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::Monitor::Items;
    }
    static void x_85(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::Monitor::Tags;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1969, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::Monitor::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1970, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::Monitor::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(1975, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::Monitor::qt_metacall(x1, x2, x3);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2686, (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(2687, (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(2688, (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(2689, (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(2690, (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(2691, (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(2692, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 158: //Akonadi::Monitor::Type
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::Monitor::Type;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::Monitor::Type*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::Monitor::Type*)xdata = (Akonadi::Monitor::Type)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::Monitor::Type*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__Monitor() { this->_binding->deleted(96, (void*)this); }
};
void xenum_Akonadi__Monitor(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__Monitor::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__Monitor(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__Monitor *xself = (x_Akonadi__Monitor*)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_Akonadi__Monitor::x_3(args);	break;
        case 4: x_Akonadi__Monitor::x_4(args);	break;
        case 5: x_Akonadi__Monitor::x_5(args);	break;
        case 6: x_Akonadi__Monitor::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__Monitor::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: x_Akonadi__Monitor::x_70(args);	break;
        case 71: x_Akonadi__Monitor::x_71(args);	break;
        case 72: x_Akonadi__Monitor::x_72(args);	break;
        case 73: x_Akonadi__Monitor::x_73(args);	break;
        case 74: xself->x_74(args);	break;
        case 75: xself->x_75(args);	break;
        case 76: xself->x_76(args);	break;
        case 77: xself->x_77(args);	break;
        case 78: xself->x_78(args);	break;
        case 79: xself->x_79(args);	break;
        case 80: xself->x_80(args);	break;
        case 81: x_Akonadi__Monitor::x_81(args);	break;
        case 82: x_Akonadi__Monitor::x_82(args);	break;
        case 83: x_Akonadi__Monitor::x_83(args);	break;
        case 84: x_Akonadi__Monitor::x_84(args);	break;
        case 85: x_Akonadi__Monitor::x_85(args);	break;
        case 86: delete (Akonadi::Monitor*)xself;	break;
    }
}
class x_Akonadi__PartFetcher : public Akonadi::PartFetcher, 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<Akonadi::PartFetcher*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__PartFetcher*)this)->Akonadi::PartFetcher::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__PartFetcher*)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<Akonadi::PartFetcher*>(this))) {
            void* xret = this->Akonadi::PartFetcher::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 = Akonadi::PartFetcher::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 = Akonadi::PartFetcher::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 = Akonadi::PartFetcher::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 = Akonadi::PartFetcher::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<Akonadi::PartFetcher*>(this))) {
            int xret = this->Akonadi::PartFetcher::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) {
        // Akonadi::PartFetcher* PartFetcher(const QModelIndex&, const QByteArray&, QObject*)
        x_Akonadi__PartFetcher* xret = new x_Akonadi__PartFetcher(*(const QModelIndex*)x[1].s_class,*(const QByteArray*)x[2].s_class,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PartFetcher(const QModelIndex& x1, const QByteArray& x2, QObject* x3) : PartFetcher(x1, x2, x3) {}
    void x_9(Smoke::Stack x) {
        // virtual void start()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::PartFetcher*>(this))) {
            this->Akonadi::PartFetcher::start();
            (void)x; // noop (for compiler warning)
        } else {
            this->start();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_10(Smoke::Stack x) {
        // QModelIndex index() const
        QModelIndex xret = ((const x_Akonadi__PartFetcher*)this)->Akonadi::PartFetcher::index();
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_11(Smoke::Stack x) {
        // QByteArray partName() const
        QByteArray xret = ((const x_Akonadi__PartFetcher*)this)->Akonadi::PartFetcher::partName();
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_12(Smoke::Stack x) {
        // Akonadi::Item item() const
        Akonadi::Item xret = ((const x_Akonadi__PartFetcher*)this)->Akonadi::PartFetcher::item();
        x[0].s_class = (void*)new Akonadi::Item(xret);
    }
    static void x_13(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::PartFetcher::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_14(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::PartFetcher::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_15(Smoke::Stack x) {
        // Akonadi::PartFetcher* PartFetcher(const QModelIndex&, const QByteArray&)
        x_Akonadi__PartFetcher* xret = new x_Akonadi__PartFetcher(*(const QModelIndex*)x[1].s_class,*(const QByteArray*)x[2].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_16(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::PartFetcher::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2055, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::PartFetcher::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2056, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::PartFetcher::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(2061, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::PartFetcher::qt_metacall(x1, x2, x3);
    }
    virtual void start() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2063, (void*)this, x)) return;
        this->Akonadi::PartFetcher::start();
    }
    virtual bool doKill() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2507, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KJob::doKill();
    }
    virtual bool doSuspend() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2508, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KJob::doSuspend();
    }
    virtual bool doResume() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2509, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KJob::doResume();
    }
    virtual QString errorString() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2510, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KJob::errorString();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2686, (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(2687, (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(2688, (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(2689, (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(2690, (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(2691, (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(2692, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Akonadi__PartFetcher() { this->_binding->deleted(98, (void*)this); }
};
void xcall_Akonadi__PartFetcher(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__PartFetcher *xself = (x_Akonadi__PartFetcher*)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_Akonadi__PartFetcher::x_3(args);	break;
        case 4: x_Akonadi__PartFetcher::x_4(args);	break;
        case 5: x_Akonadi__PartFetcher::x_5(args);	break;
        case 6: x_Akonadi__PartFetcher::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__PartFetcher::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: x_Akonadi__PartFetcher::x_13(args);	break;
        case 14: x_Akonadi__PartFetcher::x_14(args);	break;
        case 15: x_Akonadi__PartFetcher::x_15(args);	break;
        case 16: x_Akonadi__PartFetcher::x_16(args);	break;
        case 17: delete (Akonadi::PartFetcher*)xself;	break;
    }
}
class x_Akonadi__PayloadBase : public Akonadi::PayloadBase, 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 Akonadi::PayloadBase* clone() const = 0
        Akonadi::PayloadBase* xret = ((const x_Akonadi__PayloadBase*)this)->clone();
        x[0].s_class = (void*)xret;
    }
    void x_2(Smoke::Stack x) {
        // virtual const char* typeName() const = 0
        const char* xret = ((const x_Akonadi__PayloadBase*)this)->typeName();
        x[0].s_class = (void*)xret;
    }
    static void x_3(Smoke::Stack x) {
        // Akonadi::PayloadBase* PayloadBase()
        x_Akonadi__PayloadBase* xret = new x_Akonadi__PayloadBase();
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadBase() : PayloadBase() {}
    static void x_4(Smoke::Stack x) {
        // Akonadi::PayloadBase* PayloadBase(const Akonadi::PayloadBase&)
        x_Akonadi__PayloadBase* xret = new x_Akonadi__PayloadBase(*(const Akonadi::PayloadBase*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadBase(const Akonadi::PayloadBase& x1) : PayloadBase(x1) {}
    virtual Akonadi::PayloadBase* clone() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(2072, (void*)this, x, true /*pure virtual*/);
        return (Akonadi::PayloadBase*)x[0].s_class;
    }
    virtual const char* typeName() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(2073, (void*)this, x, true /*pure virtual*/);
        return (const char*)x[0].s_class;
    }
    ~x_Akonadi__PayloadBase() { this->_binding->deleted(99, (void*)this); }
};
void xcall_Akonadi__PayloadBase(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__PayloadBase *xself = (x_Akonadi__PayloadBase*)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_Akonadi__PayloadBase::x_3(args);	break;
        case 4: x_Akonadi__PayloadBase::x_4(args);	break;
        case 5: delete (Akonadi::PayloadBase*)xself;	break;
    }
}
class x_Akonadi__PayloadException : public Akonadi::PayloadException, 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) {
        // Akonadi::PayloadException* PayloadException(const char*)
        x_Akonadi__PayloadException* xret = new x_Akonadi__PayloadException((const char*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadException(const char* x1) : PayloadException(x1) {}
    static void x_2(Smoke::Stack x) {
        // Akonadi::PayloadException* PayloadException(const QByteArray&)
        x_Akonadi__PayloadException* xret = new x_Akonadi__PayloadException(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadException(const QByteArray& x1) : PayloadException(x1) {}
    static void x_3(Smoke::Stack x) {
        // Akonadi::PayloadException* PayloadException(const QString&)
        x_Akonadi__PayloadException* xret = new x_Akonadi__PayloadException(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadException(const QString& x1) : PayloadException(x1) {}
    void x_4(Smoke::Stack x) {
        // QByteArray type() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::PayloadException*>(this))) {
            QByteArray xret = ((const x_Akonadi__PayloadException*)this)->Akonadi::PayloadException::type();
            x[0].s_class = (void*)new QByteArray(xret);
        } else {
            QByteArray xret = ((const x_Akonadi__PayloadException*)this)->type();
            x[0].s_class = (void*)new QByteArray(xret);
        }
    }
    static void x_5(Smoke::Stack x) {
        // Akonadi::PayloadException* PayloadException(const Akonadi::PayloadException&)
        x_Akonadi__PayloadException* xret = new x_Akonadi__PayloadException(*(const Akonadi::PayloadException*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__PayloadException(const Akonadi::PayloadException& x1) : PayloadException(x1) {}
    virtual QByteArray type() const throw() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2080, (void*)this, x)) {
            QByteArray* xptr = (QByteArray*)x[0].s_class;
            QByteArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::PayloadException::type();
    }
    ~x_Akonadi__PayloadException() throw() { this->_binding->deleted(100, (void*)this); }
};
void xcall_Akonadi__PayloadException(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__PayloadException *xself = (x_Akonadi__PayloadException*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Akonadi__PayloadException::x_1(args);	break;
        case 2: x_Akonadi__PayloadException::x_2(args);	break;
        case 3: x_Akonadi__PayloadException::x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: x_Akonadi__PayloadException::x_5(args);	break;
        case 6: delete (Akonadi::PayloadException*)xself;	break;
    }
}

}
