diff options
author | rtk0c <[email protected]> | 2021-08-15 09:17:02 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-08-15 09:17:02 -0700 |
commit | 64a6dbcfdb89a5f57d93d47a2be0c741dda4662d (patch) | |
tree | 241eaba2351f3a7e6343ce93532e19a4b93757d3 /core/src/Model/Assets.cpp | |
parent | f0326e5c5deca0fb719d8522b45c59364b566300 (diff) |
Fix issues and cleanup
- Fix compile error on MSVC where <vector> is not included properly
- Fix creating a workflow actually saves to the templates/ directory
- Fix renaming assets are not saved to disk
- TODO ser/deser still not working
- Cleanup AssetList::* pure virtual setup (fewer splits)
Diffstat (limited to 'core/src/Model/Assets.cpp')
-rw-r--r-- | core/src/Model/Assets.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/core/src/Model/Assets.cpp b/core/src/Model/Assets.cpp index 374995d..dc1ebbd 100644 --- a/core/src/Model/Assets.cpp +++ b/core/src/Model/Assets.cpp @@ -3,10 +3,10 @@ #include "UI/UI.hpp" #include "Utils/I18n.hpp" +#include <IconsFontAwesome.h> #include <imgui.h> #include <imgui_stdlib.h> #include <tsl/array_map.h> -#include <IconsFontAwesome.h> #include <fstream> #include <string> #include <utility> @@ -94,6 +94,11 @@ int AssetList::GetCount() const return mPrivate->Assets.size(); } +const tsl::array_map<char, SavedAsset>& AssetList::GetAssets() const +{ + return mPrivate->Assets; +} + const SavedAsset* AssetList::FindByName(std::string_view name) const { auto iter = mPrivate->Assets.find(name); @@ -114,7 +119,7 @@ const SavedAsset& AssetList::Create(SavedAsset asset) savedAsset.Uuid = uuids::uuid_random_generator{}(); } - SaveEmptyInstance(savedAsset); + SaveInstance(savedAsset, nullptr); return savedAsset; } @@ -122,7 +127,7 @@ const SavedAsset& AssetList::Create(SavedAsset asset) std::unique_ptr<Asset> AssetList::CreateAndLoad(SavedAsset assetIn) { auto& savedAsset = Create(std::move(assetIn)); - auto asset = std::unique_ptr<Asset>(CreateEmptyInstance(savedAsset)); + auto asset = std::unique_ptr<Asset>(CreateInstance(savedAsset)); return asset; } @@ -138,7 +143,7 @@ std::unique_ptr<Asset> AssetList::Load(std::string_view name) const std::unique_ptr<Asset> AssetList::Load(const SavedAsset& asset) const { - return std::unique_ptr<Asset>(LoadImpl(asset)); + return std::unique_ptr<Asset>(LoadInstance(asset)); } const SavedAsset* AssetList::Rename(std::string_view oldName, std::string_view newName) @@ -149,8 +154,10 @@ const SavedAsset* AssetList::Rename(std::string_view oldName, std::string_view n auto info = std::move(iter.value()); info.Name = newName; - auto [newIter, DISCARD] = mPrivate->Assets.insert(newName, std::move(info)); + RenameInstanceOnDisk(info, oldName); + mPrivate->Assets.erase(iter); + auto [newIter, DISCARD] = mPrivate->Assets.insert(newName, std::move(info)); return &newIter.value(); } @@ -186,12 +193,8 @@ void AssetList::DisplayIconsList(ListState& state) void AssetList::DisplayDetailsList(ListState& state) { - SetupDetailsTable("AssetDetailsTable"); - for (auto& asset : mPrivate->Assets) { - ImGui::TableNextRow(); - DrawDetailsTableRow(state, asset); - } - ImGui::EndTable(); + // Note: stub function remained here in case any state processing needs to be done before issuing to implementers + DisplayDetailsTable(state); } void AssetList::DisplayControls(ListState& state) |