/****************************************************************************
** Meta object code from reading C++ file 'profiledataaccess.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.4)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

#include "../../src/ktouch-17.12.3/src/core/profiledataaccess.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'profiledataaccess.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.9.4. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif

QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_ProfileDataAccess_t {
    QByteArrayData data[38];
    char stringdata0[521];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    qptrdiff(offsetof(qt_meta_stringdata_ProfileDataAccess_t, stringdata0) + ofs \
        - idx * sizeof(QByteArrayData)) \
    )
static const qt_meta_stringdata_ProfileDataAccess_t qt_meta_stringdata_ProfileDataAccess = {
    {
QT_MOC_LITERAL(0, 0, 17), // "ProfileDataAccess"
QT_MOC_LITERAL(1, 18, 19), // "profileCountChanged"
QT_MOC_LITERAL(2, 38, 0), // ""
QT_MOC_LITERAL(3, 39, 12), // "loadProfiles"
QT_MOC_LITERAL(4, 52, 7), // "profile"
QT_MOC_LITERAL(5, 60, 8), // "Profile*"
QT_MOC_LITERAL(6, 69, 5), // "index"
QT_MOC_LITERAL(7, 75, 13), // "createProfile"
QT_MOC_LITERAL(8, 89, 10), // "addProfile"
QT_MOC_LITERAL(9, 100, 13), // "updateProfile"
QT_MOC_LITERAL(10, 114, 13), // "removeProfile"
QT_MOC_LITERAL(11, 128, 14), // "indexOfProfile"
QT_MOC_LITERAL(12, 143, 26), // "loadReferenceTrainingStats"
QT_MOC_LITERAL(13, 170, 14), // "TrainingStats*"
QT_MOC_LITERAL(14, 185, 5), // "stats"
QT_MOC_LITERAL(15, 191, 8), // "courseId"
QT_MOC_LITERAL(16, 200, 8), // "lessonId"
QT_MOC_LITERAL(17, 209, 17), // "saveTrainingStats"
QT_MOC_LITERAL(18, 227, 14), // "courseProgress"
QT_MOC_LITERAL(19, 242, 18), // "CourseProgressType"
QT_MOC_LITERAL(20, 261, 4), // "type"
QT_MOC_LITERAL(21, 266, 18), // "saveCourseProgress"
QT_MOC_LITERAL(22, 285, 14), // "lessonsTrained"
QT_MOC_LITERAL(23, 300, 17), // "totalTrainingTime"
QT_MOC_LITERAL(24, 318, 19), // "lastTrainingSession"
QT_MOC_LITERAL(25, 338, 17), // "loadCustomLessons"
QT_MOC_LITERAL(26, 356, 24), // "keyboardLayoutNameFilter"
QT_MOC_LITERAL(27, 381, 7), // "Course*"
QT_MOC_LITERAL(28, 389, 6), // "target"
QT_MOC_LITERAL(29, 396, 17), // "storeCustomLesson"
QT_MOC_LITERAL(30, 414, 7), // "Lesson*"
QT_MOC_LITERAL(31, 422, 6), // "lesson"
QT_MOC_LITERAL(32, 429, 18), // "keyboardLayoutName"
QT_MOC_LITERAL(33, 448, 18), // "deleteCustomLesson"
QT_MOC_LITERAL(34, 467, 2), // "id"
QT_MOC_LITERAL(35, 470, 12), // "profileCount"
QT_MOC_LITERAL(36, 483, 18), // "LastUnlockedLesson"
QT_MOC_LITERAL(37, 502, 18) // "LastSelectedLesson"

    },
    "ProfileDataAccess\0profileCountChanged\0"
    "\0loadProfiles\0profile\0Profile*\0index\0"
    "createProfile\0addProfile\0updateProfile\0"
    "removeProfile\0indexOfProfile\0"
    "loadReferenceTrainingStats\0TrainingStats*\0"
    "stats\0courseId\0lessonId\0saveTrainingStats\0"
    "courseProgress\0CourseProgressType\0"
    "type\0saveCourseProgress\0lessonsTrained\0"
    "totalTrainingTime\0lastTrainingSession\0"
    "loadCustomLessons\0keyboardLayoutNameFilter\0"
    "Course*\0target\0storeCustomLesson\0"
    "Lesson*\0lesson\0keyboardLayoutName\0"
    "deleteCustomLesson\0id\0profileCount\0"
    "LastUnlockedLesson\0LastSelectedLesson"
};
#undef QT_MOC_LITERAL

static const uint qt_meta_data_ProfileDataAccess[] = {

 // content:
       7,       // revision
       0,       // classname
       0,    0, // classinfo
      18,   14, // methods
       1,  182, // properties
       1,  186, // enums/sets
       0,    0, // constructors
       0,       // flags
       1,       // signalCount

 // signals: name, argc, parameters, tag, flags
       1,    0,  104,    2, 0x06 /* Public */,

 // methods: name, argc, parameters, tag, flags
       3,    0,  105,    2, 0x02 /* Public */,
       4,    1,  106,    2, 0x02 /* Public */,
       7,    0,  109,    2, 0x02 /* Public */,
       8,    1,  110,    2, 0x02 /* Public */,
       9,    1,  113,    2, 0x02 /* Public */,
      10,    1,  116,    2, 0x02 /* Public */,
      11,    1,  119,    2, 0x02 /* Public */,
      12,    4,  122,    2, 0x02 /* Public */,
      17,    4,  131,    2, 0x02 /* Public */,
      18,    3,  140,    2, 0x02 /* Public */,
      21,    4,  147,    2, 0x02 /* Public */,
      22,    1,  156,    2, 0x02 /* Public */,
      23,    1,  159,    2, 0x02 /* Public */,
      24,    1,  162,    2, 0x02 /* Public */,
      25,    3,  165,    2, 0x02 /* Public */,
      29,    3,  172,    2, 0x02 /* Public */,
      33,    1,  179,    2, 0x02 /* Public */,

 // signals: parameters
    QMetaType::Void,

 // methods: parameters
    QMetaType::Void,
    0x80000000 | 5, QMetaType::Int,    6,
    0x80000000 | 5,
    QMetaType::Void, 0x80000000 | 5,    4,
    QMetaType::Void, QMetaType::Int,    6,
    QMetaType::Void, QMetaType::Int,    6,
    QMetaType::Int, 0x80000000 | 5,    4,
    QMetaType::Void, 0x80000000 | 13, 0x80000000 | 5, QMetaType::QString, QMetaType::QString,   14,    4,   15,   16,
    QMetaType::Void, 0x80000000 | 13, 0x80000000 | 5, QMetaType::QString, QMetaType::QString,   14,    4,   15,   16,
    QMetaType::QString, 0x80000000 | 5, QMetaType::QString, 0x80000000 | 19,    4,   15,   20,
    QMetaType::Void, QMetaType::QString, 0x80000000 | 5, QMetaType::QString, 0x80000000 | 19,   16,    4,   15,   20,
    QMetaType::Int, 0x80000000 | 5,    4,
    QMetaType::ULongLong, 0x80000000 | 5,    4,
    QMetaType::QDateTime, 0x80000000 | 5,    4,
    QMetaType::Bool, 0x80000000 | 5, QMetaType::QString, 0x80000000 | 27,    4,   26,   28,
    QMetaType::Bool, 0x80000000 | 30, 0x80000000 | 5, QMetaType::QString,   31,    4,   32,
    QMetaType::Bool, QMetaType::QString,   34,

 // properties: name, type, flags
      35, QMetaType::Int, 0x00495001,

 // properties: notify_signal_id
       0,

 // enums: name, flags, count, data
      19, 0x0,    2,  190,

 // enum data: key, value
      36, uint(ProfileDataAccess::LastUnlockedLesson),
      37, uint(ProfileDataAccess::LastSelectedLesson),

       0        // eod
};

void ProfileDataAccess::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        ProfileDataAccess *_t = static_cast<ProfileDataAccess *>(_o);
        Q_UNUSED(_t)
        switch (_id) {
        case 0: _t->profileCountChanged(); break;
        case 1: _t->loadProfiles(); break;
        case 2: { Profile* _r = _t->profile((*reinterpret_cast< int(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< Profile**>(_a[0]) = std::move(_r); }  break;
        case 3: { Profile* _r = _t->createProfile();
            if (_a[0]) *reinterpret_cast< Profile**>(_a[0]) = std::move(_r); }  break;
        case 4: _t->addProfile((*reinterpret_cast< Profile*(*)>(_a[1]))); break;
        case 5: _t->updateProfile((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 6: _t->removeProfile((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 7: { int _r = _t->indexOfProfile((*reinterpret_cast< Profile*(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = std::move(_r); }  break;
        case 8: _t->loadReferenceTrainingStats((*reinterpret_cast< TrainingStats*(*)>(_a[1])),(*reinterpret_cast< Profile*(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4]))); break;
        case 9: _t->saveTrainingStats((*reinterpret_cast< TrainingStats*(*)>(_a[1])),(*reinterpret_cast< Profile*(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4]))); break;
        case 10: { QString _r = _t->courseProgress((*reinterpret_cast< Profile*(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< CourseProgressType(*)>(_a[3])));
            if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = std::move(_r); }  break;
        case 11: _t->saveCourseProgress((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< Profile*(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])),(*reinterpret_cast< CourseProgressType(*)>(_a[4]))); break;
        case 12: { int _r = _t->lessonsTrained((*reinterpret_cast< Profile*(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = std::move(_r); }  break;
        case 13: { quint64 _r = _t->totalTrainingTime((*reinterpret_cast< Profile*(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< quint64*>(_a[0]) = std::move(_r); }  break;
        case 14: { QDateTime _r = _t->lastTrainingSession((*reinterpret_cast< Profile*(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< QDateTime*>(_a[0]) = std::move(_r); }  break;
        case 15: { bool _r = _t->loadCustomLessons((*reinterpret_cast< Profile*(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Course*(*)>(_a[3])));
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); }  break;
        case 16: { bool _r = _t->storeCustomLesson((*reinterpret_cast< Lesson*(*)>(_a[1])),(*reinterpret_cast< Profile*(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])));
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); }  break;
        case 17: { bool _r = _t->deleteCustomLesson((*reinterpret_cast< const QString(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); }  break;
        default: ;
        }
    } else if (_c == QMetaObject::IndexOfMethod) {
        int *result = reinterpret_cast<int *>(_a[0]);
        {
            typedef void (ProfileDataAccess::*_t)();
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ProfileDataAccess::profileCountChanged)) {
                *result = 0;
                return;
            }
        }
    }
#ifndef QT_NO_PROPERTIES
    else if (_c == QMetaObject::ReadProperty) {
        ProfileDataAccess *_t = static_cast<ProfileDataAccess *>(_o);
        Q_UNUSED(_t)
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< int*>(_v) = _t->profileCount(); break;
        default: break;
        }
    } else if (_c == QMetaObject::WriteProperty) {
    } else if (_c == QMetaObject::ResetProperty) {
    }
#endif // QT_NO_PROPERTIES
}

const QMetaObject ProfileDataAccess::staticMetaObject = {
    { &DbAccess::staticMetaObject, qt_meta_stringdata_ProfileDataAccess.data,
      qt_meta_data_ProfileDataAccess,  qt_static_metacall, nullptr, nullptr}
};


const QMetaObject *ProfileDataAccess::metaObject() const
{
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}

void *ProfileDataAccess::qt_metacast(const char *_clname)
{
    if (!_clname) return nullptr;
    if (!strcmp(_clname, qt_meta_stringdata_ProfileDataAccess.stringdata0))
        return static_cast<void*>(this);
    return DbAccess::qt_metacast(_clname);
}

int ProfileDataAccess::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = DbAccess::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 18)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 18;
    } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
        if (_id < 18)
            *reinterpret_cast<int*>(_a[0]) = -1;
        _id -= 18;
    }
#ifndef QT_NO_PROPERTIES
   else if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty
            || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) {
        qt_static_metacall(this, _c, _id, _a);
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 1;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 1;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}

// SIGNAL 0
void ProfileDataAccess::profileCountChanged()
{
    QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE
