summaryrefslogtreecommitdiff
path: root/core/src/Model/Assets.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-08-15 09:17:02 -0700
committerrtk0c <[email protected]>2021-08-15 09:17:02 -0700
commit64a6dbcfdb89a5f57d93d47a2be0c741dda4662d (patch)
tree241eaba2351f3a7e6343ce93532e19a4b93757d3 /core/src/Model/Assets.cpp
parentf0326e5c5deca0fb719d8522b45c59364b566300 (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.cpp25
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)