//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__CollectionCopyJob : public Akonadi::CollectionCopyJob, 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::CollectionCopyJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionCopyJob*)this)->Akonadi::CollectionCopyJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionCopyJob*)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::CollectionCopyJob*>(this))) {
            void* xret = this->Akonadi::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob*>(this))) {
            int xret = this->Akonadi::CollectionCopyJob::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::CollectionCopyJob* CollectionCopyJob(const Akonadi::Collection&, const Akonadi::Collection&, QObject*)
        x_Akonadi__CollectionCopyJob* xret = new x_Akonadi__CollectionCopyJob(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionCopyJob(const Akonadi::Collection& x1, const Akonadi::Collection& x2, QObject* x3) : CollectionCopyJob(x1, x2, x3) {}
    void x_9(Smoke::Stack x) {
        // void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionCopyJob*>(this))) {
            this->Akonadi::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob::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::CollectionCopyJob* CollectionCopyJob(const Akonadi::Collection&, const Akonadi::Collection&)
        x_Akonadi__CollectionCopyJob* xret = new x_Akonadi__CollectionCopyJob(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)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::CollectionCopyJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(444, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionCopyJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(445, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionCopyJob::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(450, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionCopyJob::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(452, (void*)this, x)) return;
        this->Akonadi::CollectionCopyJob::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__CollectionCopyJob() { this->_binding->deleted(26, (void*)this); }
};
void xcall_Akonadi__CollectionCopyJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionCopyJob *xself = (x_Akonadi__CollectionCopyJob*)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__CollectionCopyJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionCopyJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionCopyJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionCopyJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionCopyJob::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_Akonadi__CollectionCopyJob::x_10(args);	break;
        case 11: x_Akonadi__CollectionCopyJob::x_11(args);	break;
        case 12: x_Akonadi__CollectionCopyJob::x_12(args);	break;
        case 13: x_Akonadi__CollectionCopyJob::x_13(args);	break;
        case 14: delete (Akonadi::CollectionCopyJob*)xself;	break;
    }
}
class x_Akonadi__CollectionCreateJob : public Akonadi::CollectionCreateJob, 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::CollectionCreateJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionCreateJob*)this)->Akonadi::CollectionCreateJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionCreateJob*)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::CollectionCreateJob*>(this))) {
            void* xret = this->Akonadi::CollectionCreateJob::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::CollectionCreateJob::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::CollectionCreateJob::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::CollectionCreateJob::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::CollectionCreateJob::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::CollectionCreateJob*>(this))) {
            int xret = this->Akonadi::CollectionCreateJob::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::CollectionCreateJob* CollectionCreateJob(const Akonadi::Collection&, QObject*)
        x_Akonadi__CollectionCreateJob* xret = new x_Akonadi__CollectionCreateJob(*(const Akonadi::Collection*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionCreateJob(const Akonadi::Collection& x1, QObject* x2) : CollectionCreateJob(x1, x2) {}
    void x_9(Smoke::Stack x) {
        // Akonadi::Collection collection() const
        Akonadi::Collection xret = ((const x_Akonadi__CollectionCreateJob*)this)->Akonadi::CollectionCreateJob::collection();
        x[0].s_class = (void*)new Akonadi::Collection(xret);
    }
    void x_10(Smoke::Stack x) {
        // virtual void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionCreateJob*>(this))) {
            this->Akonadi::CollectionCreateJob::doStart();
            (void)x; // noop (for compiler warning)
        } else {
            this->doStart();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_11(Smoke::Stack x) {
        // virtual void doHandleResponse(const QByteArray&, const QByteArray&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionCreateJob*>(this))) {
            this->Akonadi::CollectionCreateJob::doHandleResponse(*(const QByteArray*)x[1].s_class,*(const QByteArray*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->doHandleResponse(*(const QByteArray*)x[1].s_class,*(const QByteArray*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_12(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionCreateJob::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_13(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionCreateJob::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_14(Smoke::Stack x) {
        // Akonadi::CollectionCreateJob* CollectionCreateJob(const Akonadi::Collection&)
        x_Akonadi__CollectionCreateJob* xret = new x_Akonadi__CollectionCreateJob(*(const Akonadi::Collection*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_15(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionCreateJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(458, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionCreateJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(459, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionCreateJob::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(464, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionCreateJob::qt_metacall(x1, x2, x3);
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(467, (void*)this, x)) return;
        this->Akonadi::CollectionCreateJob::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(468, (void*)this, x)) return;
        this->Akonadi::CollectionCreateJob::doHandleResponse(x1, x2);
    }
    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 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__CollectionCreateJob() { this->_binding->deleted(27, (void*)this); }
};
void xcall_Akonadi__CollectionCreateJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionCreateJob *xself = (x_Akonadi__CollectionCreateJob*)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__CollectionCreateJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionCreateJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionCreateJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionCreateJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionCreateJob::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__CollectionCreateJob::x_12(args);	break;
        case 13: x_Akonadi__CollectionCreateJob::x_13(args);	break;
        case 14: x_Akonadi__CollectionCreateJob::x_14(args);	break;
        case 15: x_Akonadi__CollectionCreateJob::x_15(args);	break;
        case 16: delete (Akonadi::CollectionCreateJob*)xself;	break;
    }
}
class x_Akonadi__CollectionDeleteJob : public Akonadi::CollectionDeleteJob, 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::CollectionDeleteJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionDeleteJob*)this)->Akonadi::CollectionDeleteJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionDeleteJob*)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::CollectionDeleteJob*>(this))) {
            void* xret = this->Akonadi::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob*>(this))) {
            int xret = this->Akonadi::CollectionDeleteJob::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::CollectionDeleteJob* CollectionDeleteJob(const Akonadi::Collection&, QObject*)
        x_Akonadi__CollectionDeleteJob* xret = new x_Akonadi__CollectionDeleteJob(*(const Akonadi::Collection*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionDeleteJob(const Akonadi::Collection& x1, QObject* x2) : CollectionDeleteJob(x1, x2) {}
    void x_9(Smoke::Stack x) {
        // virtual void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionDeleteJob*>(this))) {
            this->Akonadi::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob::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::CollectionDeleteJob* CollectionDeleteJob(const Akonadi::Collection&)
        x_Akonadi__CollectionDeleteJob* xret = new x_Akonadi__CollectionDeleteJob(*(const Akonadi::Collection*)x[1].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::CollectionDeleteJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(474, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionDeleteJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(475, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionDeleteJob::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(480, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionDeleteJob::qt_metacall(x1, x2, x3);
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(482, (void*)this, x)) return;
        this->Akonadi::CollectionDeleteJob::doStart();
    }
    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 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__CollectionDeleteJob() { this->_binding->deleted(28, (void*)this); }
};
void xcall_Akonadi__CollectionDeleteJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionDeleteJob *xself = (x_Akonadi__CollectionDeleteJob*)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__CollectionDeleteJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionDeleteJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionDeleteJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionDeleteJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionDeleteJob::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_Akonadi__CollectionDeleteJob::x_10(args);	break;
        case 11: x_Akonadi__CollectionDeleteJob::x_11(args);	break;
        case 12: x_Akonadi__CollectionDeleteJob::x_12(args);	break;
        case 13: x_Akonadi__CollectionDeleteJob::x_13(args);	break;
        case 14: delete (Akonadi::CollectionDeleteJob*)xself;	break;
    }
}
class x_Akonadi__CollectionDialog : public Akonadi::CollectionDialog, 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::CollectionDialog*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionDialog*)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::CollectionDialog*>(this))) {
            void* xret = this->Akonadi::CollectionDialog::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::CollectionDialog::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::CollectionDialog::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::CollectionDialog::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::CollectionDialog::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::CollectionDialog*>(this))) {
            int xret = this->Akonadi::CollectionDialog::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::CollectionDialog* CollectionDialog(QWidget*)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QWidget*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionDialog(QWidget* x1) : CollectionDialog(x1) {}
    static void x_9(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog(QAbstractItemModel*, QWidget*)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QAbstractItemModel*)x[1].s_class,(QWidget*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionDialog(QAbstractItemModel* x1, QWidget* x2) : CollectionDialog(x1, x2) {}
    static void x_10(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog(QFlags<Akonadi::CollectionDialog::CollectionDialogOption>, QAbstractItemModel*, QWidget*)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)x[1].s_uint,(QAbstractItemModel*)x[2].s_class,(QWidget*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionDialog(QFlags<Akonadi::CollectionDialog::CollectionDialogOption> x1, QAbstractItemModel* x2, QWidget* x3) : CollectionDialog(x1, x2, x3) {}
    void x_11(Smoke::Stack x) {
        // void setMimeTypeFilter(const QStringList&)
        this->Akonadi::CollectionDialog::setMimeTypeFilter(*(const QStringList*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // QStringList mimeTypeFilter() const
        QStringList xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::mimeTypeFilter();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_13(Smoke::Stack x) {
        // void setAccessRightsFilter(QFlags<Akonadi::Collection::Right>)
        this->Akonadi::CollectionDialog::setAccessRightsFilter((QFlags<Akonadi::Collection::Right>)x[1].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // QFlags<Akonadi::Collection::Right> accessRightsFilter() const
        QFlags<Akonadi::Collection::Right> xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::accessRightsFilter();
        x[0].s_uint = (uint)xret;
    }
    void x_15(Smoke::Stack x) {
        // void setDescription(const QString&)
        this->Akonadi::CollectionDialog::setDescription(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // void setDefaultCollection(const Akonadi::Collection&)
        this->Akonadi::CollectionDialog::setDefaultCollection(*(const Akonadi::Collection*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // void setSelectionMode(QAbstractItemView::SelectionMode)
        this->Akonadi::CollectionDialog::setSelectionMode((QAbstractItemView::SelectionMode)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_18(Smoke::Stack x) {
        // QAbstractItemView::SelectionMode selectionMode() const
        QAbstractItemView::SelectionMode xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::selectionMode();
        x[0].s_enum = xret;
    }
    void x_19(Smoke::Stack x) {
        // Akonadi::Collection selectedCollection() const
        Akonadi::Collection xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::selectedCollection();
        x[0].s_class = (void*)new Akonadi::Collection(xret);
    }
    void x_20(Smoke::Stack x) {
        // QList<Akonadi::Collection> selectedCollections() const
        QList<Akonadi::Collection> xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::selectedCollections();
        x[0].s_class = (void*)new QList<Akonadi::Collection>(xret);
    }
    void x_21(Smoke::Stack x) {
        // void changeCollectionDialogOptions(QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)
        this->Akonadi::CollectionDialog::changeCollectionDialogOptions((QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)x[1].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_22(Smoke::Stack x) {
        // void setUseFolderByDefault(bool)
        this->Akonadi::CollectionDialog::setUseFolderByDefault((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_23(Smoke::Stack x) {
        // bool useFolderByDefault() const
        bool xret = ((const x_Akonadi__CollectionDialog*)this)->Akonadi::CollectionDialog::useFolderByDefault();
        x[0].s_bool = xret;
    }
    static void x_24(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionDialog::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_25(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionDialog::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_26(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog()
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QWidget*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_27(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog(QAbstractItemModel*)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QAbstractItemModel*)x[1].s_class,(QWidget*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_28(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog(QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)x[1].s_uint,(QAbstractItemModel*)0,(QWidget*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_29(Smoke::Stack x) {
        // Akonadi::CollectionDialog* CollectionDialog(QFlags<Akonadi::CollectionDialog::CollectionDialogOption>, QAbstractItemModel*)
        x_Akonadi__CollectionDialog* xret = new x_Akonadi__CollectionDialog((QFlags<Akonadi::CollectionDialog::CollectionDialogOption>)x[1].s_uint,(QAbstractItemModel*)x[2].s_class,(QWidget*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_30(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionDialog::staticMetaObject;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionDialog::None;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionDialog::AllowToCreateNewChildCollection;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionDialog::KeepTreeExpanded;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(488, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionDialog::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(489, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionDialog::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(494, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionDialog::qt_metacall(x1, x2, x3);
    }
    virtual QSize sizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2495, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KDialog::sizeHint();
    }
    virtual QSize minimumSizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2496, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KDialog::minimumSizeHint();
    }
    virtual void setCaption(const QString& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2497, (void*)this, x)) return;
        this->KDialog::setCaption(x1);
    }
    virtual void setCaption(const QString& x1, bool x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_bool = x2;
        if (this->_binding->callMethod(2498, (void*)this, x)) return;
        this->KDialog::setCaption(x1, x2);
    }
    virtual void setPlainCaption(const QString& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2499, (void*)this, x)) return;
        this->KDialog::setPlainCaption(x1);
    }
    virtual void hideEvent(QHideEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2500, (void*)this, x)) return;
        this->KDialog::hideEvent(x1);
    }
    virtual void closeEvent(QCloseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2501, (void*)this, x)) return;
        this->KDialog::closeEvent(x1);
    }
    virtual void keyPressEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2502, (void*)this, x)) return;
        this->KDialog::keyPressEvent(x1);
    }
    virtual void slotButtonClicked(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(2503, (void*)this, x)) return;
        this->KDialog::slotButtonClicked(x1);
    }
    virtual void done(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(2649, (void*)this, x)) return;
        this->QDialog::done(x1);
    }
    virtual void accept() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2650, (void*)this, x)) return;
        this->QDialog::accept();
    }
    virtual void reject() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2651, (void*)this, x)) return;
        this->QDialog::reject();
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(2648, (void*)this, x)) return;
        this->QDialog::setVisible(x1);
    }
    virtual int heightForWidth(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(2775, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::heightForWidth(x1);
    }
    virtual void mousePressEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2778, (void*)this, x)) return;
        this->QWidget::mousePressEvent(x1);
    }
    virtual void mouseReleaseEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2779, (void*)this, x)) return;
        this->QWidget::mouseReleaseEvent(x1);
    }
    virtual void mouseDoubleClickEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2780, (void*)this, x)) return;
        this->QWidget::mouseDoubleClickEvent(x1);
    }
    virtual void mouseMoveEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2781, (void*)this, x)) return;
        this->QWidget::mouseMoveEvent(x1);
    }
    virtual void wheelEvent(QWheelEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2782, (void*)this, x)) return;
        this->QWidget::wheelEvent(x1);
    }
    virtual void keyReleaseEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2784, (void*)this, x)) return;
        this->QWidget::keyReleaseEvent(x1);
    }
    virtual void focusInEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2785, (void*)this, x)) return;
        this->QWidget::focusInEvent(x1);
    }
    virtual void focusOutEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2786, (void*)this, x)) return;
        this->QWidget::focusOutEvent(x1);
    }
    virtual void enterEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2787, (void*)this, x)) return;
        this->QWidget::enterEvent(x1);
    }
    virtual void leaveEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2788, (void*)this, x)) return;
        this->QWidget::leaveEvent(x1);
    }
    virtual void paintEvent(QPaintEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2789, (void*)this, x)) return;
        this->QWidget::paintEvent(x1);
    }
    virtual void moveEvent(QMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2790, (void*)this, x)) return;
        this->QWidget::moveEvent(x1);
    }
    virtual void resizeEvent(QResizeEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2653, (void*)this, x)) return;
        this->QDialog::resizeEvent(x1);
    }
    virtual void contextMenuEvent(QContextMenuEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2654, (void*)this, x)) return;
        this->QDialog::contextMenuEvent(x1);
    }
    virtual void tabletEvent(QTabletEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2794, (void*)this, x)) return;
        this->QWidget::tabletEvent(x1);
    }
    virtual void actionEvent(QActionEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2795, (void*)this, x)) return;
        this->QWidget::actionEvent(x1);
    }
    virtual void dragEnterEvent(QDragEnterEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2796, (void*)this, x)) return;
        this->QWidget::dragEnterEvent(x1);
    }
    virtual void dragMoveEvent(QDragMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2797, (void*)this, x)) return;
        this->QWidget::dragMoveEvent(x1);
    }
    virtual void dragLeaveEvent(QDragLeaveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2798, (void*)this, x)) return;
        this->QWidget::dragLeaveEvent(x1);
    }
    virtual void dropEvent(QDropEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2799, (void*)this, x)) return;
        this->QWidget::dropEvent(x1);
    }
    virtual void showEvent(QShowEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2652, (void*)this, x)) return;
        this->QDialog::showEvent(x1);
    }
    virtual bool x11Event(_XEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2802, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::x11Event(x1);
    }
    virtual void changeEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2803, (void*)this, x)) return;
        this->QWidget::changeEvent(x1);
    }
    virtual void inputMethodEvent(QInputMethodEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2805, (void*)this, x)) return;
        this->QWidget::inputMethodEvent(x1);
    }
    virtual QVariant inputMethodQuery(Qt::InputMethodQuery x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(2806, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QWidget::inputMethodQuery(x1);
    }
    virtual bool focusNextPrevChild(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(2807, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::focusNextPrevChild(x1);
    }
    virtual void styleChange(QStyle& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2808, (void*)this, x)) return;
        this->QWidget::styleChange(x1);
    }
    virtual void enabledChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(2809, (void*)this, x)) return;
        this->QWidget::enabledChange(x1);
    }
    virtual void paletteChange(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2810, (void*)this, x)) return;
        this->QWidget::paletteChange(x1);
    }
    virtual void fontChange(const QFont& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2811, (void*)this, x)) return;
        this->QWidget::fontChange(x1);
    }
    virtual void windowActivationChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(2812, (void*)this, x)) return;
        this->QWidget::windowActivationChange(x1);
    }
    virtual void languageChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2813, (void*)this, x)) return;
        this->QWidget::languageChange();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2777, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::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(2655, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QDialog::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);
    }
    virtual int devType() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2771, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::devType();
    }
    virtual QPaintEngine* paintEngine() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2776, (void*)this, x)) return (QPaintEngine*)x[0].s_class;
        return this->QWidget::paintEngine();
    }
    virtual int metric(QPaintDevice::PaintDeviceMetric x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(2804, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::metric(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 48: //Akonadi::CollectionDialog::CollectionDialogOption
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::CollectionDialog::CollectionDialogOption;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::CollectionDialog::CollectionDialogOption*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::CollectionDialog::CollectionDialogOption*)xdata = (Akonadi::CollectionDialog::CollectionDialogOption)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::CollectionDialog::CollectionDialogOption*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__CollectionDialog() { this->_binding->deleted(29, (void*)this); }
};
void xenum_Akonadi__CollectionDialog(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__CollectionDialog::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__CollectionDialog(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionDialog *xself = (x_Akonadi__CollectionDialog*)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__CollectionDialog::x_3(args);	break;
        case 4: x_Akonadi__CollectionDialog::x_4(args);	break;
        case 5: x_Akonadi__CollectionDialog::x_5(args);	break;
        case 6: x_Akonadi__CollectionDialog::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionDialog::x_8(args);	break;
        case 9: x_Akonadi__CollectionDialog::x_9(args);	break;
        case 10: x_Akonadi__CollectionDialog::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: x_Akonadi__CollectionDialog::x_24(args);	break;
        case 25: x_Akonadi__CollectionDialog::x_25(args);	break;
        case 26: x_Akonadi__CollectionDialog::x_26(args);	break;
        case 27: x_Akonadi__CollectionDialog::x_27(args);	break;
        case 28: x_Akonadi__CollectionDialog::x_28(args);	break;
        case 29: x_Akonadi__CollectionDialog::x_29(args);	break;
        case 30: x_Akonadi__CollectionDialog::x_30(args);	break;
        case 31: x_Akonadi__CollectionDialog::x_31(args);	break;
        case 32: x_Akonadi__CollectionDialog::x_32(args);	break;
        case 33: x_Akonadi__CollectionDialog::x_33(args);	break;
        case 34: delete (Akonadi::CollectionDialog*)xself;	break;
    }
}
class x_Akonadi__CollectionFetchJob : public Akonadi::CollectionFetchJob, 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::CollectionFetchJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionFetchJob*)this)->Akonadi::CollectionFetchJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionFetchJob*)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::CollectionFetchJob*>(this))) {
            void* xret = this->Akonadi::CollectionFetchJob::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::CollectionFetchJob::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::CollectionFetchJob::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::CollectionFetchJob::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::CollectionFetchJob::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::CollectionFetchJob*>(this))) {
            int xret = this->Akonadi::CollectionFetchJob::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::CollectionFetchJob* CollectionFetchJob(const Akonadi::Collection&, Akonadi::CollectionFetchJob::Type, QObject*)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const Akonadi::Collection*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchJob(const Akonadi::Collection& x1, Akonadi::CollectionFetchJob::Type x2, QObject* x3) : CollectionFetchJob(x1, x2, x3) {}
    static void x_9(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection>&, QObject*)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection>*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchJob(const QList<Akonadi::Collection>& x1, QObject* x2) : CollectionFetchJob(x1, x2) {}
    static void x_10(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection>&, Akonadi::CollectionFetchJob::Type, QObject*)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection>*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchJob(const QList<Akonadi::Collection>& x1, Akonadi::CollectionFetchJob::Type x2, QObject* x3) : CollectionFetchJob(x1, x2, x3) {}
    static void x_11(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection::Id>&, Akonadi::CollectionFetchJob::Type, QObject*)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection::Id>*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchJob(const QList<Akonadi::Collection::Id>& x1, Akonadi::CollectionFetchJob::Type x2, QObject* x3) : CollectionFetchJob(x1, x2, x3) {}
    void x_12(Smoke::Stack x) {
        // QList<Akonadi::Collection> collections() const
        QList<Akonadi::Collection> xret = ((const x_Akonadi__CollectionFetchJob*)this)->Akonadi::CollectionFetchJob::collections();
        x[0].s_class = (void*)new QList<Akonadi::Collection>(xret);
    }
    void x_13(Smoke::Stack x) {
        // void setResource(const QString&)
        this->Akonadi::CollectionFetchJob::setResource(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // void includeUnsubscribed(bool)
        this->Akonadi::CollectionFetchJob::includeUnsubscribed((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // void includeStatistics(bool)
        this->Akonadi::CollectionFetchJob::includeStatistics((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // void setFetchScope(const Akonadi::CollectionFetchScope&)
        this->Akonadi::CollectionFetchJob::setFetchScope(*(const Akonadi::CollectionFetchScope*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope& fetchScope()
        Akonadi::CollectionFetchScope& xret = this->Akonadi::CollectionFetchJob::fetchScope();
        x[0].s_class = (void*)&xret;
    }
    void x_18(Smoke::Stack x) {
        // void collectionsReceived(const Akonadi::Collection::List&)
        this->Akonadi::CollectionFetchJob::collectionsReceived(*(const Akonadi::Collection::List*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // virtual void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionFetchJob*>(this))) {
            this->Akonadi::CollectionFetchJob::doStart();
            (void)x; // noop (for compiler warning)
        } else {
            this->doStart();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual void doHandleResponse(const QByteArray&, const QByteArray&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionFetchJob*>(this))) {
            this->Akonadi::CollectionFetchJob::doHandleResponse(*(const QByteArray*)x[1].s_class,*(const QByteArray*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->doHandleResponse(*(const QByteArray*)x[1].s_class,*(const QByteArray*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_21(Smoke::Stack x) {
        // void slotResult(KJob*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionFetchJob*>(this))) {
            this->Akonadi::CollectionFetchJob::slotResult((KJob*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->slotResult((KJob*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_22(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionFetchJob::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_23(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionFetchJob::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_24(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const Akonadi::Collection&)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const Akonadi::Collection*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)Akonadi::CollectionFetchJob::FirstLevel,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_25(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const Akonadi::Collection&, Akonadi::CollectionFetchJob::Type)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const Akonadi::Collection*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_26(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection>&)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection>*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_27(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection>&, Akonadi::CollectionFetchJob::Type)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection>*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_28(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection::Id>&)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection::Id>*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)Akonadi::CollectionFetchJob::Base,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_29(Smoke::Stack x) {
        // Akonadi::CollectionFetchJob* CollectionFetchJob(const QList<Akonadi::Collection::Id>&, Akonadi::CollectionFetchJob::Type)
        x_Akonadi__CollectionFetchJob* xret = new x_Akonadi__CollectionFetchJob(*(const QList<Akonadi::Collection::Id>*)x[1].s_class,(Akonadi::CollectionFetchJob::Type)x[2].s_enum,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_30(Smoke::Stack x) {
        // void includeUnsubscribed()
        this->Akonadi::CollectionFetchJob::includeUnsubscribed((bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_31(Smoke::Stack x) {
        // void includeStatistics()
        this->Akonadi::CollectionFetchJob::includeStatistics((bool)true);
        (void)x; // noop (for compiler warning)
    }
    static void x_32(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionFetchJob::staticMetaObject;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchJob::Base;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchJob::FirstLevel;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchJob::Recursive;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchJob::NonOverlappingRoots;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(522, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionFetchJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(523, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionFetchJob::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(528, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionFetchJob::qt_metacall(x1, x2, x3);
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(540, (void*)this, x)) return;
        this->Akonadi::CollectionFetchJob::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(541, (void*)this, x)) return;
        this->Akonadi::CollectionFetchJob::doHandleResponse(x1, x2);
    }
    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 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(542, (void*)this, x)) return;
        this->Akonadi::CollectionFetchJob::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);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 50: //Akonadi::CollectionFetchJob::Type
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::CollectionFetchJob::Type;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::CollectionFetchJob::Type*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::CollectionFetchJob::Type*)xdata = (Akonadi::CollectionFetchJob::Type)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::CollectionFetchJob::Type*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__CollectionFetchJob() { this->_binding->deleted(30, (void*)this); }
};
void xenum_Akonadi__CollectionFetchJob(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__CollectionFetchJob::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__CollectionFetchJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionFetchJob *xself = (x_Akonadi__CollectionFetchJob*)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__CollectionFetchJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionFetchJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionFetchJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionFetchJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionFetchJob::x_8(args);	break;
        case 9: x_Akonadi__CollectionFetchJob::x_9(args);	break;
        case 10: x_Akonadi__CollectionFetchJob::x_10(args);	break;
        case 11: x_Akonadi__CollectionFetchJob::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: x_Akonadi__CollectionFetchJob::x_22(args);	break;
        case 23: x_Akonadi__CollectionFetchJob::x_23(args);	break;
        case 24: x_Akonadi__CollectionFetchJob::x_24(args);	break;
        case 25: x_Akonadi__CollectionFetchJob::x_25(args);	break;
        case 26: x_Akonadi__CollectionFetchJob::x_26(args);	break;
        case 27: x_Akonadi__CollectionFetchJob::x_27(args);	break;
        case 28: x_Akonadi__CollectionFetchJob::x_28(args);	break;
        case 29: x_Akonadi__CollectionFetchJob::x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: x_Akonadi__CollectionFetchJob::x_32(args);	break;
        case 33: x_Akonadi__CollectionFetchJob::x_33(args);	break;
        case 34: x_Akonadi__CollectionFetchJob::x_34(args);	break;
        case 35: x_Akonadi__CollectionFetchJob::x_35(args);	break;
        case 36: x_Akonadi__CollectionFetchJob::x_36(args);	break;
        case 37: delete (Akonadi::CollectionFetchJob*)xself;	break;
    }
}
class x_Akonadi__CollectionFetchScope : public Akonadi::CollectionFetchScope {
    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::CollectionFetchScope* CollectionFetchScope()
        x_Akonadi__CollectionFetchScope* xret = new x_Akonadi__CollectionFetchScope();
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchScope() : CollectionFetchScope() {}
    static void x_2(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope* CollectionFetchScope(const Akonadi::CollectionFetchScope&)
        x_Akonadi__CollectionFetchScope* xret = new x_Akonadi__CollectionFetchScope(*(const Akonadi::CollectionFetchScope*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFetchScope(const Akonadi::CollectionFetchScope& x1) : CollectionFetchScope(x1) {}
    void x_3(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope& operator=(const Akonadi::CollectionFetchScope&)
        Akonadi::CollectionFetchScope& xret = this->Akonadi::CollectionFetchScope::operator=(*(const Akonadi::CollectionFetchScope*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_4(Smoke::Stack x) {
        // bool includeUnubscribed() const
        bool xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::includeUnubscribed();
        x[0].s_bool = xret;
    }
    void x_5(Smoke::Stack x) {
        // bool includeUnsubscribed() const
        bool xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::includeUnsubscribed();
        x[0].s_bool = xret;
    }
    void x_6(Smoke::Stack x) {
        // void setIncludeUnsubscribed(bool)
        this->Akonadi::CollectionFetchScope::setIncludeUnsubscribed((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // void setListFilter(Akonadi::CollectionFetchScope::ListFilter)
        this->Akonadi::CollectionFetchScope::setListFilter((Akonadi::CollectionFetchScope::ListFilter)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope::ListFilter listFilter() const
        Akonadi::CollectionFetchScope::ListFilter xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::listFilter();
        x[0].s_enum = xret;
    }
    void x_9(Smoke::Stack x) {
        // bool includeStatistics() const
        bool xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::includeStatistics();
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // void setIncludeStatistics(bool)
        this->Akonadi::CollectionFetchScope::setIncludeStatistics((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // QString resource() const
        QString xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::resource();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_12(Smoke::Stack x) {
        // void setResource(const QString&)
        this->Akonadi::CollectionFetchScope::setResource(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // void setContentMimeTypes(const QStringList&)
        this->Akonadi::CollectionFetchScope::setContentMimeTypes(*(const QStringList*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // QStringList contentMimeTypes() const
        QStringList xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::contentMimeTypes();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_15(Smoke::Stack x) {
        // void setAncestorRetrieval(Akonadi::CollectionFetchScope::AncestorRetrieval)
        this->Akonadi::CollectionFetchScope::setAncestorRetrieval((Akonadi::CollectionFetchScope::AncestorRetrieval)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // Akonadi::CollectionFetchScope::AncestorRetrieval ancestorRetrieval() const
        Akonadi::CollectionFetchScope::AncestorRetrieval xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::ancestorRetrieval();
        x[0].s_enum = xret;
    }
    void x_17(Smoke::Stack x) {
        // bool isEmpty() const
        bool xret = ((const x_Akonadi__CollectionFetchScope*)this)->Akonadi::CollectionFetchScope::isEmpty();
        x[0].s_bool = xret;
    }
    static void x_18(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::None;
    }
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::Parent;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::All;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::NoFilter;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::Display;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::Sync;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::Index;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionFetchScope::Enabled;
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 53: //Akonadi::CollectionFetchScope::AncestorRetrieval
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::CollectionFetchScope::AncestorRetrieval;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::CollectionFetchScope::AncestorRetrieval*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::CollectionFetchScope::AncestorRetrieval*)xdata = (Akonadi::CollectionFetchScope::AncestorRetrieval)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::CollectionFetchScope::AncestorRetrieval*)xdata;
                    break;
            }
            break;
        case 54: //Akonadi::CollectionFetchScope::ListFilter
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::CollectionFetchScope::ListFilter;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::CollectionFetchScope::ListFilter*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::CollectionFetchScope::ListFilter*)xdata = (Akonadi::CollectionFetchScope::ListFilter)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::CollectionFetchScope::ListFilter*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__CollectionFetchScope() { this->_binding->deleted(31, (void*)this); }
};
void xenum_Akonadi__CollectionFetchScope(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__CollectionFetchScope::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__CollectionFetchScope(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionFetchScope *xself = (x_Akonadi__CollectionFetchScope*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Akonadi__CollectionFetchScope::x_1(args);	break;
        case 2: x_Akonadi__CollectionFetchScope::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: 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: x_Akonadi__CollectionFetchScope::x_18(args);	break;
        case 19: x_Akonadi__CollectionFetchScope::x_19(args);	break;
        case 20: x_Akonadi__CollectionFetchScope::x_20(args);	break;
        case 21: x_Akonadi__CollectionFetchScope::x_21(args);	break;
        case 22: x_Akonadi__CollectionFetchScope::x_22(args);	break;
        case 23: x_Akonadi__CollectionFetchScope::x_23(args);	break;
        case 24: x_Akonadi__CollectionFetchScope::x_24(args);	break;
        case 25: x_Akonadi__CollectionFetchScope::x_25(args);	break;
        case 26: delete (Akonadi::CollectionFetchScope*)xself;	break;
    }
}
class x_Akonadi__CollectionFilterProxyModel : public Akonadi::CollectionFilterProxyModel, 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::CollectionFilterProxyModel*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->Akonadi::CollectionFilterProxyModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionFilterProxyModel*)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::CollectionFilterProxyModel*>(this))) {
            void* xret = this->Akonadi::CollectionFilterProxyModel::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::CollectionFilterProxyModel::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::CollectionFilterProxyModel::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::CollectionFilterProxyModel::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::CollectionFilterProxyModel::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::CollectionFilterProxyModel*>(this))) {
            int xret = this->Akonadi::CollectionFilterProxyModel::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::CollectionFilterProxyModel* CollectionFilterProxyModel(QObject*)
        x_Akonadi__CollectionFilterProxyModel* xret = new x_Akonadi__CollectionFilterProxyModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionFilterProxyModel(QObject* x1) : CollectionFilterProxyModel(x1) {}
    void x_9(Smoke::Stack x) {
        // void addMimeTypeFilters(const QStringList&)
        this->Akonadi::CollectionFilterProxyModel::addMimeTypeFilters(*(const QStringList*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // void addMimeTypeFilter(const QString&)
        this->Akonadi::CollectionFilterProxyModel::addMimeTypeFilter(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // QStringList mimeTypeFilters() const
        QStringList xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->Akonadi::CollectionFilterProxyModel::mimeTypeFilters();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_12(Smoke::Stack x) {
        // void setExcludeVirtualCollections(bool)
        this->Akonadi::CollectionFilterProxyModel::setExcludeVirtualCollections((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // bool excludeVirtualCollections() const
        bool xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->Akonadi::CollectionFilterProxyModel::excludeVirtualCollections();
        x[0].s_bool = xret;
    }
    void x_14(Smoke::Stack x) {
        // void clearFilters()
        this->Akonadi::CollectionFilterProxyModel::clearFilters();
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // virtual QFlags<Qt::ItemFlag> flags(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionFilterProxyModel*>(this))) {
            QFlags<Qt::ItemFlag> xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->Akonadi::CollectionFilterProxyModel::flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        } else {
            QFlags<Qt::ItemFlag> xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual bool filterAcceptsRow(int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionFilterProxyModel*>(this))) {
            bool xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->Akonadi::CollectionFilterProxyModel::filterAcceptsRow((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Akonadi__CollectionFilterProxyModel*)this)->filterAcceptsRow((int)x[1].s_int,*(const QModelIndex*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_17(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionFilterProxyModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_18(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionFilterProxyModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_19(Smoke::Stack x) {
        // Akonadi::CollectionFilterProxyModel* CollectionFilterProxyModel()
        x_Akonadi__CollectionFilterProxyModel* xret = new x_Akonadi__CollectionFilterProxyModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_20(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionFilterProxyModel::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(585, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionFilterProxyModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(586, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionFilterProxyModel::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(591, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionFilterProxyModel::qt_metacall(x1, x2, x3);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(599, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->Akonadi::CollectionFilterProxyModel::flags(x1);
    }
    virtual bool filterAcceptsRow(int x1, const QModelIndex& x2) const {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(600, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::CollectionFilterProxyModel::filterAcceptsRow(x1, x2);
    }
    virtual bool filterAcceptsColumn(int x1, const QModelIndex& x2) const {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(2699, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::filterAcceptsColumn(x1, x2);
    }
    virtual bool lessThan(const QModelIndex& x1, const QModelIndex& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(2700, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::lessThan(x1, x2);
    }
    virtual void setSourceModel(QAbstractItemModel* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(2693, (void*)this, x)) return;
        this->QSortFilterProxyModel::setSourceModel(x1);
    }
    virtual QModelIndex mapToSource(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2694, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::mapToSource(x1);
    }
    virtual QModelIndex mapFromSource(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2695, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::mapFromSource(x1);
    }
    virtual QItemSelection mapSelectionToSource(const QItemSelection& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2696, (void*)this, x)) {
            QItemSelection* xptr = (QItemSelection*)x[0].s_class;
            QItemSelection xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::mapSelectionToSource(x1);
    }
    virtual QItemSelection mapSelectionFromSource(const QItemSelection& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2697, (void*)this, x)) {
            QItemSelection* xptr = (QItemSelection*)x[0].s_class;
            QItemSelection xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2701, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2702, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::parent(x1);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2703, (void*)this, x)) return (int)x[0].s_int;
        return this->QSortFilterProxyModel::rowCount(x1);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2704, (void*)this, x)) return (int)x[0].s_int;
        return this->QSortFilterProxyModel::columnCount(x1);
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2705, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2706, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2707, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2708, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2709, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2723, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2710, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QSortFilterProxyModel::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(2711, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(2724, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QSortFilterProxyModel::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(2712, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2713, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2714, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2715, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2716, (void*)this, x)) return;
        this->QSortFilterProxyModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2717, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QSortFilterProxyModel::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(2722, (void*)this, x)) return;
        this->QSortFilterProxyModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2719, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2720, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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(2721, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QSortFilterProxyModel::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__CollectionFilterProxyModel() { this->_binding->deleted(32, (void*)this); }
};
void xcall_Akonadi__CollectionFilterProxyModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionFilterProxyModel *xself = (x_Akonadi__CollectionFilterProxyModel*)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__CollectionFilterProxyModel::x_3(args);	break;
        case 4: x_Akonadi__CollectionFilterProxyModel::x_4(args);	break;
        case 5: x_Akonadi__CollectionFilterProxyModel::x_5(args);	break;
        case 6: x_Akonadi__CollectionFilterProxyModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionFilterProxyModel::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: x_Akonadi__CollectionFilterProxyModel::x_17(args);	break;
        case 18: x_Akonadi__CollectionFilterProxyModel::x_18(args);	break;
        case 19: x_Akonadi__CollectionFilterProxyModel::x_19(args);	break;
        case 20: x_Akonadi__CollectionFilterProxyModel::x_20(args);	break;
        case 21: delete (Akonadi::CollectionFilterProxyModel*)xself;	break;
    }
}
class x_Akonadi__CollectionModel : public Akonadi::CollectionModel, 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::CollectionModel*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionModel*)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::CollectionModel*>(this))) {
            void* xret = this->Akonadi::CollectionModel::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::CollectionModel::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::CollectionModel::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::CollectionModel::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::CollectionModel::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::CollectionModel*>(this))) {
            int xret = this->Akonadi::CollectionModel::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::CollectionModel* CollectionModel(QObject*)
        x_Akonadi__CollectionModel* xret = new x_Akonadi__CollectionModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionModel(QObject* x1) : CollectionModel(x1) {}
    void x_9(Smoke::Stack x) {
        // void fetchCollectionStatistics(bool)
        this->Akonadi::CollectionModel::fetchCollectionStatistics((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // void includeUnsubscribed(bool)
        this->Akonadi::CollectionModel::includeUnsubscribed((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // virtual int columnCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            int xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__CollectionModel*)this)->columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual QVariant data(const QModelIndex&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QVariant xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::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__CollectionModel*)this)->data(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int);
            x[0].s_class = (void*)new QVariant(xret);
        }
    }
    void x_13(Smoke::Stack x) {
        // virtual QModelIndex index(int, int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::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__CollectionModel*)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_14(Smoke::Stack x) {
        // virtual QModelIndex parent(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QModelIndex xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_Akonadi__CollectionModel*)this)->parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_15(Smoke::Stack x) {
        // virtual int rowCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            int xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Akonadi__CollectionModel*)this)->rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual QVariant headerData(int, Qt::Orientation, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QVariant xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::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__CollectionModel*)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_17(Smoke::Stack x) {
        // virtual bool setHeaderData(int, Qt::Orientation, const QVariant&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            bool xret = this->Akonadi::CollectionModel::setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)x[4].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = this->setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)x[4].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // virtual bool setData(const QModelIndex&, const QVariant&, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            bool xret = this->Akonadi::CollectionModel::setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)x[3].s_int);
            x[0].s_bool = xret;
        } else {
            bool xret = this->setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)x[3].s_int);
            x[0].s_bool = xret;
        }
    }
    void x_19(Smoke::Stack x) {
        // virtual QFlags<Qt::ItemFlag> flags(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QFlags<Qt::ItemFlag> xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        } else {
            QFlags<Qt::ItemFlag> xret = ((const x_Akonadi__CollectionModel*)this)->flags(*(const QModelIndex*)x[1].s_class);
            x[0].s_uint = (uint)xret;
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual QFlags<Qt::DropAction> supportedDropActions() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QFlags<Qt::DropAction> xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::supportedDropActions();
            x[0].s_uint = (uint)xret;
        } else {
            QFlags<Qt::DropAction> xret = ((const x_Akonadi__CollectionModel*)this)->supportedDropActions();
            x[0].s_uint = (uint)xret;
        }
    }
    void x_21(Smoke::Stack x) {
        // virtual QMimeData* mimeData(const QList<QModelIndex>&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QMimeData* xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            QMimeData* xret = ((const x_Akonadi__CollectionModel*)this)->mimeData(*(const QList<QModelIndex>*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    void x_22(Smoke::Stack x) {
        // virtual bool dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            bool xret = this->Akonadi::CollectionModel::dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->dropMimeData((const QMimeData*)x[1].s_class,(Qt::DropAction)x[2].s_enum,(int)x[3].s_int,(int)x[4].s_int,*(const QModelIndex*)x[5].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_23(Smoke::Stack x) {
        // virtual QStringList mimeTypes() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModel*>(this))) {
            QStringList xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        } else {
            QStringList xret = ((const x_Akonadi__CollectionModel*)this)->mimeTypes();
            x[0].s_class = (void*)new QStringList(xret);
        }
    }
    void x_24(Smoke::Stack x) {
        // Akonadi::Collection collectionForId(Akonadi::Collection::Id) const
        Akonadi::Collection xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::collectionForId(*(Akonadi::Collection::Id*)x[1].s_class);
        x[0].s_class = (void*)new Akonadi::Collection(xret);
    }
    static void x_25(Smoke::Stack x) {
        // Akonadi::CollectionModel* CollectionModel(Akonadi::CollectionModelPrivate*, QObject*)
        x_Akonadi__CollectionModel* xret = new x_Akonadi__CollectionModel((Akonadi::CollectionModelPrivate*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionModel(Akonadi::CollectionModelPrivate* x1, QObject* x2) : CollectionModel(x1, x2) {}
    static void x_26(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_27(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_28(Smoke::Stack x) {
        // Akonadi::CollectionModel* CollectionModel()
        x_Akonadi__CollectionModel* xret = new x_Akonadi__CollectionModel((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    void x_29(Smoke::Stack x) {
        // void includeUnsubscribed()
        this->Akonadi::CollectionModel::includeUnsubscribed((bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_30(Smoke::Stack x) {
        // int columnCount() const
        int xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::columnCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_31(Smoke::Stack x) {
        // QVariant data(const QModelIndex&) const
        QVariant xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::data(*(const QModelIndex*)x[1].s_class,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_32(Smoke::Stack x) {
        // QModelIndex index(int, int) const
        QModelIndex xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::index((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_33(Smoke::Stack x) {
        // int rowCount() const
        int xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::rowCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_34(Smoke::Stack x) {
        // QVariant headerData(int, Qt::Orientation) const
        QVariant xret = ((const x_Akonadi__CollectionModel*)this)->Akonadi::CollectionModel::headerData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_35(Smoke::Stack x) {
        // bool setHeaderData(int, Qt::Orientation, const QVariant&)
        bool xret = this->Akonadi::CollectionModel::setHeaderData((int)x[1].s_int,(Qt::Orientation)x[2].s_enum,*(const QVariant*)x[3].s_class,(int)Qt::EditRole);
        x[0].s_bool = xret;
    }
    void x_36(Smoke::Stack x) {
        // bool setData(const QModelIndex&, const QVariant&)
        bool xret = this->Akonadi::CollectionModel::setData(*(const QModelIndex*)x[1].s_class,*(const QVariant*)x[2].s_class,(int)Qt::EditRole);
        x[0].s_bool = xret;
    }
    static void x_37(Smoke::Stack x) {
        // Akonadi::CollectionModel* CollectionModel(Akonadi::CollectionModelPrivate*)
        x_Akonadi__CollectionModel* xret = new x_Akonadi__CollectionModel((Akonadi::CollectionModelPrivate*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_38(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionModel::staticMetaObject;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionModel::OldCollectionIdRole;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionModel::OldCollectionRole;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionModel::CollectionIdRole;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionModel::CollectionRole;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)Akonadi::CollectionModel::UserRole;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(606, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(607, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionModel::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(612, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionModel::qt_metacall(x1, x2, x3);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(616, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionModel::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(617, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::CollectionModel::data(x1, x2);
    }
    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(618, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::CollectionModel::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(619, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::CollectionModel::parent(x1);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(620, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionModel::rowCount(x1);
    }
    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(621, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::CollectionModel::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(622, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::CollectionModel::setHeaderData(x1, x2, x3, x4);
    }
    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(623, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::CollectionModel::setData(x1, x2, x3);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(624, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->Akonadi::CollectionModel::flags(x1);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(625, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->Akonadi::CollectionModel::supportedDropActions();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(626, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->Akonadi::CollectionModel::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(627, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Akonadi::CollectionModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(628, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Akonadi::CollectionModel::mimeTypes();
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(2529, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::hasChildren(x1);
    }
    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 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 57: //Akonadi::CollectionModel::Roles
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Akonadi::CollectionModel::Roles;
                    break;
                case Smoke::EnumDelete:
                    delete (Akonadi::CollectionModel::Roles*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Akonadi::CollectionModel::Roles*)xdata = (Akonadi::CollectionModel::Roles)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Akonadi::CollectionModel::Roles*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Akonadi__CollectionModel() { this->_binding->deleted(33, (void*)this); }
};
void xenum_Akonadi__CollectionModel(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Akonadi__CollectionModel::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Akonadi__CollectionModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionModel *xself = (x_Akonadi__CollectionModel*)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__CollectionModel::x_3(args);	break;
        case 4: x_Akonadi__CollectionModel::x_4(args);	break;
        case 5: x_Akonadi__CollectionModel::x_5(args);	break;
        case 6: x_Akonadi__CollectionModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionModel::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: x_Akonadi__CollectionModel::x_25(args);	break;
        case 26: x_Akonadi__CollectionModel::x_26(args);	break;
        case 27: x_Akonadi__CollectionModel::x_27(args);	break;
        case 28: x_Akonadi__CollectionModel::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: x_Akonadi__CollectionModel::x_37(args);	break;
        case 38: x_Akonadi__CollectionModel::x_38(args);	break;
        case 39: x_Akonadi__CollectionModel::x_39(args);	break;
        case 40: x_Akonadi__CollectionModel::x_40(args);	break;
        case 41: x_Akonadi__CollectionModel::x_41(args);	break;
        case 42: x_Akonadi__CollectionModel::x_42(args);	break;
        case 43: x_Akonadi__CollectionModel::x_43(args);	break;
        case 44: delete (Akonadi::CollectionModel*)xself;	break;
    }
}
class x_Akonadi__CollectionModifyJob : public Akonadi::CollectionModifyJob, 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::CollectionModifyJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionModifyJob*)this)->Akonadi::CollectionModifyJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionModifyJob*)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::CollectionModifyJob*>(this))) {
            void* xret = this->Akonadi::CollectionModifyJob::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::CollectionModifyJob::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::CollectionModifyJob::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::CollectionModifyJob::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::CollectionModifyJob::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::CollectionModifyJob*>(this))) {
            int xret = this->Akonadi::CollectionModifyJob::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::CollectionModifyJob* CollectionModifyJob(const Akonadi::Collection&, QObject*)
        x_Akonadi__CollectionModifyJob* xret = new x_Akonadi__CollectionModifyJob(*(const Akonadi::Collection*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionModifyJob(const Akonadi::Collection& x1, QObject* x2) : CollectionModifyJob(x1, x2) {}
    void x_9(Smoke::Stack x) {
        // Akonadi::Collection collection() const
        Akonadi::Collection xret = ((const x_Akonadi__CollectionModifyJob*)this)->Akonadi::CollectionModifyJob::collection();
        x[0].s_class = (void*)new Akonadi::Collection(xret);
    }
    void x_10(Smoke::Stack x) {
        // virtual void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionModifyJob*>(this))) {
            this->Akonadi::CollectionModifyJob::doStart();
            (void)x; // noop (for compiler warning)
        } else {
            this->doStart();
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_11(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Akonadi::CollectionModifyJob::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Akonadi::CollectionModifyJob::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_13(Smoke::Stack x) {
        // Akonadi::CollectionModifyJob* CollectionModifyJob(const Akonadi::Collection&)
        x_Akonadi__CollectionModifyJob* xret = new x_Akonadi__CollectionModifyJob(*(const Akonadi::Collection*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_14(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Akonadi::CollectionModifyJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(650, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionModifyJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(651, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionModifyJob::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(656, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionModifyJob::qt_metacall(x1, x2, x3);
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(659, (void*)this, x)) return;
        this->Akonadi::CollectionModifyJob::doStart();
    }
    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 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__CollectionModifyJob() { this->_binding->deleted(35, (void*)this); }
};
void xcall_Akonadi__CollectionModifyJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionModifyJob *xself = (x_Akonadi__CollectionModifyJob*)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__CollectionModifyJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionModifyJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionModifyJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionModifyJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionModifyJob::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: x_Akonadi__CollectionModifyJob::x_11(args);	break;
        case 12: x_Akonadi__CollectionModifyJob::x_12(args);	break;
        case 13: x_Akonadi__CollectionModifyJob::x_13(args);	break;
        case 14: x_Akonadi__CollectionModifyJob::x_14(args);	break;
        case 15: delete (Akonadi::CollectionModifyJob*)xself;	break;
    }
}
class x_Akonadi__CollectionMoveJob : public Akonadi::CollectionMoveJob, 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::CollectionMoveJob*>(this))) {
            const QMetaObject* xret = ((const x_Akonadi__CollectionMoveJob*)this)->Akonadi::CollectionMoveJob::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Akonadi__CollectionMoveJob*)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::CollectionMoveJob*>(this))) {
            void* xret = this->Akonadi::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob*>(this))) {
            int xret = this->Akonadi::CollectionMoveJob::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::CollectionMoveJob* CollectionMoveJob(const Akonadi::Collection&, const Akonadi::Collection&, QObject*)
        x_Akonadi__CollectionMoveJob* xret = new x_Akonadi__CollectionMoveJob(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)x[2].s_class,(QObject*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Akonadi__CollectionMoveJob(const Akonadi::Collection& x1, const Akonadi::Collection& x2, QObject* x3) : CollectionMoveJob(x1, x2, x3) {}
    void x_9(Smoke::Stack x) {
        // virtual void doStart()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Akonadi::CollectionMoveJob*>(this))) {
            this->Akonadi::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob::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::CollectionMoveJob* CollectionMoveJob(const Akonadi::Collection&, const Akonadi::Collection&)
        x_Akonadi__CollectionMoveJob* xret = new x_Akonadi__CollectionMoveJob(*(const Akonadi::Collection*)x[1].s_class,*(const Akonadi::Collection*)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::CollectionMoveJob::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(665, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Akonadi::CollectionMoveJob::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(666, (void*)this, x)) return (void*)x[0].s_class;
        return this->Akonadi::CollectionMoveJob::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(671, (void*)this, x)) return (int)x[0].s_int;
        return this->Akonadi::CollectionMoveJob::qt_metacall(x1, x2, x3);
    }
    virtual void doStart() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(673, (void*)this, x)) return;
        this->Akonadi::CollectionMoveJob::doStart();
    }
    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 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__CollectionMoveJob() { this->_binding->deleted(36, (void*)this); }
};
void xcall_Akonadi__CollectionMoveJob(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Akonadi__CollectionMoveJob *xself = (x_Akonadi__CollectionMoveJob*)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__CollectionMoveJob::x_3(args);	break;
        case 4: x_Akonadi__CollectionMoveJob::x_4(args);	break;
        case 5: x_Akonadi__CollectionMoveJob::x_5(args);	break;
        case 6: x_Akonadi__CollectionMoveJob::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Akonadi__CollectionMoveJob::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_Akonadi__CollectionMoveJob::x_10(args);	break;
        case 11: x_Akonadi__CollectionMoveJob::x_11(args);	break;
        case 12: x_Akonadi__CollectionMoveJob::x_12(args);	break;
        case 13: x_Akonadi__CollectionMoveJob::x_13(args);	break;
        case 14: delete (Akonadi::CollectionMoveJob*)xself;	break;
    }
}

}
