aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Template
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-06-11 22:19:23 -0700
committerrtk0c <[email protected]>2021-06-11 22:19:23 -0700
commitbdee9dd0c92865e0cec2f4bbf170959df282a930 (patch)
treeaf9d40cb4378ee2166574faed9cc16e283110f31 /core/src/Model/Template
parent8f7daa9bd100345d7e23639604c9a3a50ce6448b (diff)
More UI polishing and fix asset saving/reloading
Diffstat (limited to 'core/src/Model/Template')
-rw-r--r--core/src/Model/Template/TableTemplate.cpp10
-rw-r--r--core/src/Model/Template/Template.hpp4
-rw-r--r--core/src/Model/Template/Template_Main.cpp14
3 files changed, 14 insertions, 14 deletions
diff --git a/core/src/Model/Template/TableTemplate.cpp b/core/src/Model/Template/TableTemplate.cpp
index 28a4d6e..f2524a0 100644
--- a/core/src/Model/Template/TableTemplate.cpp
+++ b/core/src/Model/Template/TableTemplate.cpp
@@ -88,17 +88,15 @@ void TableTemplate::Resize(int newWidth, int newHeight)
int tableWidth = GetTableWidth();
int tableHeight = GetTableHeight();
- int yEnd = std::min(tableHeight, newHeight);
- int xEnd = std::min(tableWidth, newWidth);
- for (int y = 0; y < yEnd; ++y) {
+ for (int y = 0; y < newHeight; ++y) {
if (y >= tableHeight) {
- for (int x = 0; x < xEnd; ++x) {
+ for (int x = 0; x < newWidth; ++x) {
cells.push_back(TableCell{});
}
continue;
}
- for (int x = 0; x < xEnd; ++x) {
+ for (int x = 0; x < newWidth; ++x) {
if (x >= tableWidth) {
cells.push_back(TableCell{});
} else {
@@ -109,6 +107,8 @@ void TableTemplate::Resize(int newWidth, int newHeight)
}
mCells = std::move(cells);
+ mColumnWidths.resize(newWidth);
+ mRowHeights.resize(newHeight);
}
int TableTemplate::GetRowHeight(int row) const
diff --git a/core/src/Model/Template/Template.hpp b/core/src/Model/Template/Template.hpp
index 7cfbb8b..7d43130 100644
--- a/core/src/Model/Template/Template.hpp
+++ b/core/src/Model/Template/Template.hpp
@@ -52,6 +52,10 @@ private:
NameSelectionError mACNewNameError = NameSelectionError::Empty;
Template::Kind mACNewKind = Template::InvalidKind;
+public:
+ // Inherit constructors
+ using AssetListTyped::AssetListTyped;
+
protected:
virtual void DiscoverFiles(const std::function<void(SavedAsset)>& callback) const override;
diff --git a/core/src/Model/Template/Template_Main.cpp b/core/src/Model/Template/Template_Main.cpp
index 7dd5f87..8b659cf 100644
--- a/core/src/Model/Template/Template_Main.cpp
+++ b/core/src/Model/Template/Template_Main.cpp
@@ -25,8 +25,8 @@ Template::Kind Template::GetKind() const
void TemplateAssetList::DiscoverFiles(const std::function<void(SavedAsset)>& callback) const
{
- auto& gs = GlobalStates::GetInstance();
- DiscoverFilesByExtension(callback, gs.GetCurrentProject()->GetTemplatesDirectory(), ".cplt-template"sv);
+ auto dir = GetConnectedProject().GetTemplatesDirectory();
+ DiscoverFilesByExtension(callback, dir, ".cplt-template"sv);
}
std::string TemplateAssetList::RetrieveNameFromFile(const fs::path& file) const
@@ -46,12 +46,8 @@ uuids::uuid TemplateAssetList::RetrieveUuidFromFile(const fs::path& file) const
fs::path TemplateAssetList::RetrievePathFromAsset(const SavedAsset& asset) const
{
- auto uuid = uuids::uuid_random_generator{}();
- auto fileName = uuids::to_string(uuid);
- fileName.append(".cplt-template");
-
- auto& gs = GlobalStates::GetInstance();
- return gs.GetCurrentProject()->GetTemplatePath(fileName);
+ auto fileName = uuids::to_string(asset.Uuid);
+ return GetConnectedProject().GetTemplatePath(fileName);
}
void TemplateAssetList::SaveEmptyInstance(const SavedAsset& asset) const
@@ -183,7 +179,7 @@ void TemplateAssetList::DrawBigIcon(ListState& state, const SavedAsset& asset) c
void TemplateAssetList::DrawDetailsTableRow(ListState& state, const SavedAsset& asset) const
{
ImGui::TableNextColumn();
- if (ImGui::Selectable(asset.Name.c_str(), state.SelectedAsset == &asset, ImGuiSelectableFlags_SpanAllColumns)) {
+ if (ImGui::Selectable(asset.Name.c_str(), state.SelectedAsset == &asset, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_DontClosePopups)) {
state.SelectedAsset = &asset;
}