#pragma once #include "Component.h" #include #include #include #include class MinecraftInstance; using ComponentContainer = QList; using ComponentIndex = QMap; using ConnectionList = QList; struct ComponentListData { // the instance this belongs to MinecraftInstance *m_instance; // the launch profile (volatile, temporary thing created on demand) std::shared_ptr m_profile; // version information migrated from instance.cfg file. Single use on migration! std::map m_oldConfigVersions; QString getOldConfigVersion(const QString& uid) const { const auto iter = m_oldConfigVersions.find(uid); if(iter != m_oldConfigVersions.cend()) { return (*iter).second; } return QString(); } // persistent list of components and related machinery ComponentContainer components; ComponentIndex componentIndex; bool dirty = false; QTimer m_saveTimer; shared_qobject_ptr m_updateTask; bool loaded = false; bool interactionDisabled = true; };