ProjectUserPrefs.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. //
  2. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  3. // LICENSE: Atomic Game Engine Editor and Tools EULA
  4. // Please see LICENSE_ATOMIC_EDITOR_AND_TOOLS.md in repository root for
  5. // license information: https://github.com/AtomicGameEngine/AtomicGameEngine
  6. //
  7. #include "ProjectEvents.h"
  8. #include "ProjectUserPrefs.h"
  9. #include <Atomic/IO/File.h>
  10. #include <Atomic/Resource/JSONFile.h>
  11. namespace ToolCore
  12. {
  13. ProjectUserPrefs::ProjectUserPrefs(Context* context) : Object(context),
  14. snapTranslationX_(1.0f),
  15. snapTranslationY_(1.0f),
  16. snapTranslationZ_(1.0f),
  17. snapRotation_(15.0f),
  18. snapScale_(0.1f)
  19. {
  20. #ifdef ATOMIC_PLATFORM_OSX
  21. defaultPlatform_ = PLATFORMID_MAC;
  22. #else
  23. defaultPlatform_ = PLATFORMID_WINDOWS;
  24. #endif
  25. }
  26. ProjectUserPrefs::~ProjectUserPrefs()
  27. {
  28. }
  29. float ProjectUserPrefs::GetSnapTranslationX() const
  30. {
  31. return snapTranslationX_;
  32. }
  33. float ProjectUserPrefs::GetSnapTranslationY() const
  34. {
  35. return snapTranslationY_;
  36. }
  37. float ProjectUserPrefs::GetSnapTranslationZ() const
  38. {
  39. return snapTranslationZ_;
  40. }
  41. float ProjectUserPrefs::GetSnapRotation() const
  42. {
  43. return snapRotation_;
  44. }
  45. float ProjectUserPrefs::GetSnapScale() const
  46. {
  47. return snapScale_;
  48. }
  49. void ProjectUserPrefs::SetSnapTranslationX(float value)
  50. {
  51. snapTranslationX_ = value;
  52. }
  53. void ProjectUserPrefs::SetSnapTranslationY(float value)
  54. {
  55. snapTranslationY_ = value;
  56. }
  57. void ProjectUserPrefs::SetSnapTranslationZ(float value)
  58. {
  59. snapTranslationZ_ = value;
  60. }
  61. void ProjectUserPrefs::SetSnapRotation(float value)
  62. {
  63. snapRotation_ = value;
  64. }
  65. void ProjectUserPrefs::SetSnapScale(float value)
  66. {
  67. snapScale_ = value;
  68. }
  69. bool ProjectUserPrefs::Load(const String& path)
  70. {
  71. SharedPtr<File> file(new File(context_, path));
  72. if (!file->IsOpen())
  73. return false;
  74. SharedPtr<JSONFile> jsonFile(new JSONFile(context_));
  75. bool result = jsonFile->Load(*file);
  76. file->Close();
  77. if (!result)
  78. return false;
  79. JSONValue& root = jsonFile->GetRoot();
  80. if (!root.IsObject())
  81. return false;
  82. lastBuildPath_ = root.Get("lastBuildPath").GetString();
  83. if (root.Contains("snapTransX"))
  84. SetSnapTranslationX(root.Get("snapTransX").GetFloat());
  85. if (root.Contains("snapTransY"))
  86. SetSnapTranslationY(root.Get("snapTransY").GetFloat());
  87. if (root.Contains("snapTransZ"))
  88. SetSnapTranslationZ(root.Get("snapTransZ").GetFloat());
  89. if (root.Contains("snapRotation"))
  90. SetSnapRotation(root.Get("snapRotation").GetFloat());
  91. if (root.Contains("snapScale"))
  92. SetSnapScale(root.Get("snapScale").GetFloat());
  93. return true;
  94. }
  95. void ProjectUserPrefs::Save(const String& path)
  96. {
  97. SharedPtr<JSONFile> jsonFile(new JSONFile(context_));
  98. JSONValue& root = jsonFile->GetRoot();
  99. SharedPtr<File> file(new File(context_, path, FILE_WRITE));
  100. root.Set("lastBuildPath", lastBuildPath_);
  101. // Snap settings
  102. root.Set("snapTransX", snapTranslationX_);
  103. root.Set("snapTransY", snapTranslationY_);
  104. root.Set("snapTransZ", snapTranslationZ_);
  105. root.Set("snapRotation", snapRotation_);
  106. root.Set("snapScale", snapScale_);
  107. jsonFile->Save(*file, String(" "));
  108. file->Close();
  109. VariantMap evData;
  110. evData[ProjectUserPrefSaved::P_PREFS] = this;
  111. SendEvent(E_PROJECTUSERPREFSAVED);
  112. }
  113. }