diff options
Diffstat (limited to 'api/logic/minecraft/ComponentList_p.h')
-rw-r--r-- | api/logic/minecraft/ComponentList_p.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/api/logic/minecraft/ComponentList_p.h b/api/logic/minecraft/ComponentList_p.h new file mode 100644 index 00000000..26ca5049 --- /dev/null +++ b/api/logic/minecraft/ComponentList_p.h @@ -0,0 +1,42 @@ +#pragma once + +#include "Component.h" +#include <map> +#include <QTimer> +#include <QList> +#include <QMap> + +class MinecraftInstance; +using ComponentContainer = QList<ComponentPtr>; +using ComponentIndex = QMap<QString, ComponentPtr>; +using ConnectionList = QList<QMetaObject::Connection>; + +struct ComponentListData +{ + // the instance this belongs to + MinecraftInstance *m_instance; + + // the launch profile (volatile, temporary thing created on demand) + std::shared_ptr<LaunchProfile> m_profile; + + // version information migrated from instance.cfg file. Single use on migration! + std::map<QString, QString> 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<Task> m_updateTask; + bool loaded = false; +}; + |