43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#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;
|
|
};
|
|
|