#pragma once #include #include #include "position.h" class Config { public: struct StageConfig { StageConfig(); StageConfig(const QJsonObject&); operator QJsonObject() const; std::vector champs; bool enabled = false; }; struct PositionConfig { PositionConfig(); PositionConfig(const QJsonObject&); operator QJsonObject() const; Position position; // top, bot, sup,... StageConfig ban; StageConfig pick; }; struct RootConfig { RootConfig(); RootConfig(const QJsonObject&); operator QJsonObject() const; std::shared_ptr getPositionConfig(Position position); std::vector> positionConfigs; bool enabledAutoAccept; bool enabledSmiteWarn; }; Config(); ~Config(); bool load(); void save(); RootConfig& getConfig(); private: std::string configFolderPath; std::string configFilePath; RootConfig root; };