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

#include "../../../../ktouch-26.08.0/src/core/profiledataaccess.h"
#include <QtCore/qmetatype.h>

#include <QtCore/qtmochelpers.h>

#include <memory>


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

#ifndef Q_CONSTINIT
#define Q_CONSTINIT
#endif

QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QT_WARNING_DISABLE_GCC("-Wuseless-cast")
namespace {
struct qt_meta_tag_ZN17ProfileDataAccessE_t {};
} // unnamed namespace

template <> constexpr inline auto ProfileDataAccess::qt_create_metaobjectdata<qt_meta_tag_ZN17ProfileDataAccessE_t>()
{
    namespace QMC = QtMocConstants;
    QtMocHelpers::StringRefStorage qt_stringData {
        "ProfileDataAccess",
        "profileCountChanged",
        "",
        "loadProfiles",
        "profile",
        "Profile*",
        "index",
        "createProfile",
        "addProfile",
        "updateProfile",
        "removeProfile",
        "indexOfProfile",
        "loadReferenceTrainingStats",
        "TrainingStats*",
        "stats",
        "courseId",
        "lessonId",
        "saveTrainingStats",
        "courseProgress",
        "CourseProgressType",
        "type",
        "saveCourseProgress",
        "lessonsTrained",
        "totalTrainingTime",
        "lastTrainingSession",
        "loadCustomLessons",
        "keyboardLayoutNameFilter",
        "Course*",
        "target",
        "storeCustomLesson",
        "Lesson*",
        "lesson",
        "keyboardLayoutName",
        "deleteCustomLesson",
        "id",
        "profileCount",
        "LastUnlockedLesson",
        "LastSelectedLesson"
    };

    QtMocHelpers::UintData qt_methods {
        // Signal 'profileCountChanged'
        QtMocHelpers::SignalData<void()>(1, 2, QMC::AccessPublic, QMetaType::Void),
        // Method 'loadProfiles'
        QtMocHelpers::MethodData<void()>(3, 2, QMC::AccessPublic, QMetaType::Void),
        // Method 'profile'
        QtMocHelpers::MethodData<Profile *(int)>(4, 2, QMC::AccessPublic, 0x80000000 | 5, {{
            { QMetaType::Int, 6 },
        }}),
        // Method 'createProfile'
        QtMocHelpers::MethodData<Profile *()>(7, 2, QMC::AccessPublic, 0x80000000 | 5),
        // Method 'addProfile'
        QtMocHelpers::MethodData<void(Profile *)>(8, 2, QMC::AccessPublic, QMetaType::Void, {{
            { 0x80000000 | 5, 4 },
        }}),
        // Method 'updateProfile'
        QtMocHelpers::MethodData<void(int)>(9, 2, QMC::AccessPublic, QMetaType::Void, {{
            { QMetaType::Int, 6 },
        }}),
        // Method 'removeProfile'
        QtMocHelpers::MethodData<void(int)>(10, 2, QMC::AccessPublic, QMetaType::Void, {{
            { QMetaType::Int, 6 },
        }}),
        // Method 'indexOfProfile'
        QtMocHelpers::MethodData<int(Profile *)>(11, 2, QMC::AccessPublic, QMetaType::Int, {{
            { 0x80000000 | 5, 4 },
        }}),
        // Method 'loadReferenceTrainingStats'
        QtMocHelpers::MethodData<void(TrainingStats *, Profile *, const QString &, const QString &)>(12, 2, QMC::AccessPublic, QMetaType::Void, {{
            { 0x80000000 | 13, 14 }, { 0x80000000 | 5, 4 }, { QMetaType::QString, 15 }, { QMetaType::QString, 16 },
        }}),
        // Method 'saveTrainingStats'
        QtMocHelpers::MethodData<void(TrainingStats *, Profile *, const QString &, const QString &)>(17, 2, QMC::AccessPublic, QMetaType::Void, {{
            { 0x80000000 | 13, 14 }, { 0x80000000 | 5, 4 }, { QMetaType::QString, 15 }, { QMetaType::QString, 16 },
        }}),
        // Method 'courseProgress'
        QtMocHelpers::MethodData<QString(Profile *, const QString &, enum CourseProgressType)>(18, 2, QMC::AccessPublic, QMetaType::QString, {{
            { 0x80000000 | 5, 4 }, { QMetaType::QString, 15 }, { 0x80000000 | 19, 20 },
        }}),
        // Method 'saveCourseProgress'
        QtMocHelpers::MethodData<void(const QString &, Profile *, const QString &, enum CourseProgressType)>(21, 2, QMC::AccessPublic, QMetaType::Void, {{
            { QMetaType::QString, 16 }, { 0x80000000 | 5, 4 }, { QMetaType::QString, 15 }, { 0x80000000 | 19, 20 },
        }}),
        // Method 'lessonsTrained'
        QtMocHelpers::MethodData<int(Profile *)>(22, 2, QMC::AccessPublic, QMetaType::Int, {{
            { 0x80000000 | 5, 4 },
        }}),
        // Method 'totalTrainingTime'
        QtMocHelpers::MethodData<quint64(Profile *)>(23, 2, QMC::AccessPublic, QMetaType::ULongLong, {{
            { 0x80000000 | 5, 4 },
        }}),
        // Method 'lastTrainingSession'
        QtMocHelpers::MethodData<QDateTime(Profile *)>(24, 2, QMC::AccessPublic, QMetaType::QDateTime, {{
            { 0x80000000 | 5, 4 },
        }}),
        // Method 'loadCustomLessons'
        QtMocHelpers::MethodData<bool(Profile *, const QString &, Course *)>(25, 2, QMC::AccessPublic, QMetaType::Bool, {{
            { 0x80000000 | 5, 4 }, { QMetaType::QString, 26 }, { 0x80000000 | 27, 28 },
        }}),
        // Method 'storeCustomLesson'
        QtMocHelpers::MethodData<bool(Lesson *, Profile *, const QString &)>(29, 2, QMC::AccessPublic, QMetaType::Bool, {{
            { 0x80000000 | 30, 31 }, { 0x80000000 | 5, 4 }, { QMetaType::QString, 32 },
        }}),
        // Method 'deleteCustomLesson'
        QtMocHelpers::MethodData<bool(const QString &)>(33, 2, QMC::AccessPublic, QMetaType::Bool, {{
            { QMetaType::QString, 34 },
        }}),
    };
    QtMocHelpers::UintData qt_properties {
        // property 'profileCount'
        QtMocHelpers::PropertyData<int>(35, QMetaType::Int, QMC::DefaultPropertyFlags, 0),
    };
    QtMocHelpers::UintData qt_enums {
        // enum 'CourseProgressType'
        QtMocHelpers::EnumData<enum CourseProgressType>(19, 19, QMC::EnumFlags{}).add({
            {   36, CourseProgressType::LastUnlockedLesson },
            {   37, CourseProgressType::LastSelectedLesson },
        }),
    };
    return QtMocHelpers::metaObjectData<ProfileDataAccess, qt_meta_tag_ZN17ProfileDataAccessE_t>(QMC::MetaObjectFlag{}, qt_stringData,
            qt_methods, qt_properties, qt_enums);
}
Q_CONSTINIT const QMetaObject ProfileDataAccess::staticMetaObject = { {
    QMetaObject::SuperData::link<DbAccess::staticMetaObject>(),
    qt_staticMetaObjectStaticContent<qt_meta_tag_ZN17ProfileDataAccessE_t>.stringdata,
    qt_staticMetaObjectStaticContent<qt_meta_tag_ZN17ProfileDataAccessE_t>.data,
    qt_static_metacall,
    nullptr,
    qt_staticMetaObjectRelocatingContent<qt_meta_tag_ZN17ProfileDataAccessE_t>.metaTypes,
    nullptr
} };

void ProfileDataAccess::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    auto *_t = static_cast<ProfileDataAccess *>(_o);
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: _t->profileCountChanged(); break;
        case 1: _t->loadProfiles(); break;
        case 2: { Profile* _r = _t->profile((*reinterpret_cast<std::add_pointer_t<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<std::add_pointer_t<Profile*>>(_a[1]))); break;
        case 5: _t->updateProfile((*reinterpret_cast<std::add_pointer_t<int>>(_a[1]))); break;
        case 6: _t->removeProfile((*reinterpret_cast<std::add_pointer_t<int>>(_a[1]))); break;
        case 7: { int _r = _t->indexOfProfile((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])));
            if (_a[0]) *reinterpret_cast<int*>(_a[0]) = std::move(_r); }  break;
        case 8: _t->loadReferenceTrainingStats((*reinterpret_cast<std::add_pointer_t<TrainingStats*>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[3])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[4]))); break;
        case 9: _t->saveTrainingStats((*reinterpret_cast<std::add_pointer_t<TrainingStats*>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[3])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[4]))); break;
        case 10: { QString _r = _t->courseProgress((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<enum CourseProgressType>>(_a[3])));
            if (_a[0]) *reinterpret_cast<QString*>(_a[0]) = std::move(_r); }  break;
        case 11: _t->saveCourseProgress((*reinterpret_cast<std::add_pointer_t<QString>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[3])),(*reinterpret_cast<std::add_pointer_t<enum CourseProgressType>>(_a[4]))); break;
        case 12: { int _r = _t->lessonsTrained((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])));
            if (_a[0]) *reinterpret_cast<int*>(_a[0]) = std::move(_r); }  break;
        case 13: { quint64 _r = _t->totalTrainingTime((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])));
            if (_a[0]) *reinterpret_cast<quint64*>(_a[0]) = std::move(_r); }  break;
        case 14: { QDateTime _r = _t->lastTrainingSession((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])));
            if (_a[0]) *reinterpret_cast<QDateTime*>(_a[0]) = std::move(_r); }  break;
        case 15: { bool _r = _t->loadCustomLessons((*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<Course*>>(_a[3])));
            if (_a[0]) *reinterpret_cast<bool*>(_a[0]) = std::move(_r); }  break;
        case 16: { bool _r = _t->storeCustomLesson((*reinterpret_cast<std::add_pointer_t<Lesson*>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<Profile*>>(_a[2])),(*reinterpret_cast<std::add_pointer_t<QString>>(_a[3])));
            if (_a[0]) *reinterpret_cast<bool*>(_a[0]) = std::move(_r); }  break;
        case 17: { bool _r = _t->deleteCustomLesson((*reinterpret_cast<std::add_pointer_t<QString>>(_a[1])));
            if (_a[0]) *reinterpret_cast<bool*>(_a[0]) = std::move(_r); }  break;
        default: ;
        }
    }
    if (_c == QMetaObject::IndexOfMethod) {
        if (QtMocHelpers::indexOfMethod<void (ProfileDataAccess::*)()>(_a, &ProfileDataAccess::profileCountChanged, 0))
            return;
    }
    if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast<int*>(_v) = _t->profileCount(); break;
        default: break;
        }
    }
}

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_staticMetaObjectStaticContent<qt_meta_tag_ZN17ProfileDataAccessE_t>.strings))
        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;
    }
    if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
        if (_id < 18)
            *reinterpret_cast<QMetaType *>(_a[0]) = QMetaType();
        _id -= 18;
    }
    if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty
            || _c == QMetaObject::ResetProperty || _c == QMetaObject::BindableProperty
            || _c == QMetaObject::RegisterPropertyMetaType) {
        qt_static_metacall(this, _c, _id, _a);
        _id -= 1;
    }
    return _id;
}

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