mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-09-23 09:53:12 +00:00
Added skin file drag and drop sorting (:
This commit is contained in:
@@ -687,12 +687,12 @@ namespace PckStudio.Controls
|
|||||||
node.ImageKey = node.SelectedImageKey = GetNodeIconKey(asset, resetNodes);
|
node.ImageKey = node.SelectedImageKey = GetNodeIconKey(asset, resetNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
treeViewMain.Sort();
|
||||||
TreeNode[] selectedNodes = treeViewMain.FindPath(selectedNodeText);
|
TreeNode[] selectedNodes = treeViewMain.FindPath(selectedNodeText);
|
||||||
if (selectedNodes.Length > 0)
|
if (selectedNodes.Length > 0)
|
||||||
{
|
{
|
||||||
treeViewMain.SelectedNode = selectedNodes[0];
|
treeViewMain.SelectedNode = selectedNodes[0];
|
||||||
}
|
}
|
||||||
treeViewMain.Sort();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetDefaultSkinNodeIconKey(SkinANIM anim)
|
private string GetDefaultSkinNodeIconKey(SkinANIM anim)
|
||||||
@@ -1254,6 +1254,13 @@ namespace PckStudio.Controls
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool targetNodeIsFile = targetNode.TryGetTagData(out PckAsset targetAsset);
|
||||||
|
bool draggedNodeIsFile = draggedNode.TryGetTagData(out PckAsset draggedAsset);
|
||||||
|
bool draggedNodeIsSkinAsset = draggedNodeIsFile && (draggedAsset.Type == PckAssetType.SkinFile || draggedAsset.Type == PckAssetType.CapeFile);
|
||||||
|
bool targetNodeIsSkinAsset = targetNodeIsFile && (targetAsset.Type == PckAssetType.SkinFile || targetAsset.Type == PckAssetType.CapeFile);
|
||||||
|
|
||||||
|
if(!(draggedNodeIsSkinAsset && targetNodeIsSkinAsset))
|
||||||
|
{
|
||||||
if (targetNode.Parent == null && isTargetPckFile && draggedNode.Parent == null)
|
if (targetNode.Parent == null && isTargetPckFile && draggedNode.Parent == null)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("target node is file and is in the root... nothing done.");
|
Debug.WriteLine("target node is file and is in the root... nothing done.");
|
||||||
@@ -1265,13 +1272,23 @@ namespace PckStudio.Controls
|
|||||||
Debug.WriteLine("target node and dragged node have the same parent... nothing done.");
|
Debug.WriteLine("target node and dragged node have the same parent... nothing done.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Debug.WriteLine($"Target drop location is {(isTargetPckFile ? "file" : "folder")}.");
|
Debug.WriteLine($"Target drop location is {(isTargetPckFile ? "file" : "folder")}.");
|
||||||
|
|
||||||
// Retrieve the node that was dragged.
|
|
||||||
if (draggedNode.TryGetTagData(out PckAsset draggedAsset) &&
|
|
||||||
string selectedNodePath = "";
|
string selectedNodePath = "";
|
||||||
|
|
||||||
|
if (draggedNodeIsSkinAsset && targetNodeIsSkinAsset)
|
||||||
|
{
|
||||||
|
// I overthought this for so long, I guess this works lol - May
|
||||||
|
int draggedIndex = EditorValue.File.IndexOfAsset(draggedAsset);
|
||||||
|
int targetIndex = EditorValue.File.IndexOfAsset(targetAsset);
|
||||||
|
|
||||||
|
EditorValue.File.RemoveAsset(draggedAsset);
|
||||||
|
EditorValue.File.InsertAsset(targetIndex, draggedAsset);
|
||||||
|
selectedNodePath = draggedAsset.Filename;
|
||||||
|
}
|
||||||
|
if (draggedNodeIsFile &&
|
||||||
targetNode.FullPath != draggedAsset.Filename)
|
targetNode.FullPath != draggedAsset.Filename)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(draggedAsset.Filename + " was dropped onto " + targetNode.FullPath);
|
Debug.WriteLine(draggedAsset.Filename + " was dropped onto " + targetNode.FullPath);
|
||||||
|
|||||||
Reference in New Issue
Block a user