Add copy/paste context actions to the sprite properties panel

#2643
This commit is contained in:
Wojtek Figat
2024-09-19 10:34:46 +02:00
parent be395304ec
commit 6924042452

View File

@@ -153,6 +153,14 @@ namespace FlaxEditor.Windows.Assets
{
var menu = new ContextMenu();
var copySprite = menu.AddButton("Copy sprite");
copySprite.Tag = groupPanel.Tag;
copySprite.ButtonClicked += OnCopySpriteClicked;
var pasteSprite = menu.AddButton("Paste sprite");
pasteSprite.Tag = groupPanel.Tag;
pasteSprite.ButtonClicked += OnPasteSpriteClicked;
var deleteSprite = menu.AddButton("Delete sprite");
deleteSprite.Tag = groupPanel.Tag;
deleteSprite.ButtonClicked += OnDeleteSpriteClicked;
@@ -160,6 +168,24 @@ namespace FlaxEditor.Windows.Assets
menu.Show(groupPanel, location);
}
private void OnCopySpriteClicked(ContextMenuButton button)
{
var window = ((PropertiesProxy)ParentEditor.Values[0])._window;
var index = (int)button.Tag;
var sprite = window.Asset.GetSprite(index);
Clipboard.Text = FlaxEngine.Json.JsonSerializer.Serialize(sprite, typeof(Sprite));
}
private void OnPasteSpriteClicked(ContextMenuButton button)
{
var window = ((PropertiesProxy)ParentEditor.Values[0])._window;
var index = (int)button.Tag;
var sprite = window.Asset.GetSprite(index);
var pasted = FlaxEngine.Json.JsonSerializer.Deserialize<Sprite>(Clipboard.Text);
sprite.Area = pasted.Area;
window.Asset.SetSprite(index, ref sprite);
}
private void OnDeleteSpriteClicked(ContextMenuButton button)
{
var window = ((PropertiesProxy)ParentEditor.Values[0])._window;