Properties Window: Combined "Save"- and "Apply"-Buttons into one "Save"-Button

This commit is contained in:
Simon Lübeß
2023-09-29 18:51:21 +02:00
parent 688046fcf9
commit d32bc6c475
@@ -107,21 +107,31 @@ class PropertiesWindow : EditorWindow
_currentPropertiesEditor.ShowEditor(); _currentPropertiesEditor.ShowEditor();
if (ImGui.Button("Save Asset")) bool assetConfigChanged = assetFile.AssetConfig.Config.Changed;
{ bool hasAssetSaver = (_editor.ContentManager.[Friend]GetAssetLoader(assetFile) is IAssetSaver);
Asset asset = _editor.ContentManager.GetAsset(null, _currentAssetHandle);
_editor.ContentManager.SaveAsset(asset);
}
if (!assetFile.AssetConfig.Config.Changed) // If the asset can't be saved and it's config didn't change disable save button
if (!hasAssetSaver && !assetConfigChanged)
{ {
ImGui.BeginDisabled(); ImGui.BeginDisabled();
defer:: { ImGui.EndDisabled(); } defer:: { ImGui.EndDisabled(); }
} }
ImGui.Separator(); if (ImGui.Button("Save"))
{
if (ImGui.Button("Apply")) // Only save config if it changed
if (assetConfigChanged)
{
assetFile.SaveAssetConfig(); assetFile.SaveAssetConfig();
} }
// If the asset type has an asset saver, also save the asset
// TODO: Check whether or not the asset was changed?
if (hasAssetSaver)
{
Asset asset = _editor.ContentManager.GetAsset(null, _currentAssetHandle);
_editor.ContentManager.SaveAsset(asset);
}
}
}
} }