modstatemodel.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * modstatemodel.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "modstatemodel.h"
  12. #include "../../lib/modding/ModManager.h"
  13. ModStateModel::ModStateModel()
  14. :modManager(std::make_unique<ModManager>())
  15. {}
  16. ModStateModel::~ModStateModel() = default;
  17. void ModStateModel::setRepositories(QVector<JsonNode> repositoriesList)
  18. {
  19. //TODO
  20. }
  21. ModState ModStateModel::getMod(QString modName) const
  22. {
  23. return ModState(modManager->getModDescription(modName.toStdString()));
  24. }
  25. template<typename Container>
  26. QStringList stringListStdToQt(const Container & container)
  27. {
  28. QStringList result;
  29. for (const auto & str : container)
  30. result.push_back(QString::fromStdString(str));
  31. return result;
  32. }
  33. QStringList ModStateModel::getAllMods() const
  34. {
  35. return stringListStdToQt(modManager->getActiveMods());
  36. }
  37. QStringList ModStateModel::getSubmods(QString modName) const
  38. {
  39. return {}; //TODO
  40. }
  41. bool ModStateModel::isModExists(QString modName) const
  42. {
  43. return vstd::contains(modManager->getAllMods(), modName.toStdString());
  44. }
  45. bool ModStateModel::isModInstalled(QString modName) const
  46. {
  47. return getMod(modName).isInstalled();
  48. }
  49. bool ModStateModel::isModEnabled(QString modName) const
  50. {
  51. return getMod(modName).isEnabled(); // TODO
  52. }
  53. bool ModStateModel::isModUpdateAvailable(QString modName) const
  54. {
  55. return getMod(modName).isUpdateAvailable();
  56. }
  57. bool ModStateModel::isModVisible(QString modName) const
  58. {
  59. return getMod(modName).isVisible();
  60. }