RARC : Support renaming.

This commit is contained in:
KillzXGaming 2020-12-24 20:05:44 -05:00
parent 6837bc30d1
commit 2fd88ce7eb
2 changed files with 20 additions and 2 deletions

View file

@ -22,7 +22,7 @@ namespace FirstPlugin
public IFileInfo IFileInfo { get; set; }
public bool CanAddFiles { get; set; }
public bool CanRenameFiles { get; set; }
public bool CanRenameFiles { get; set; } = true;
public bool CanReplaceFiles { get; set; }
public bool CanDeleteFiles { get; set; }
@ -456,9 +456,15 @@ namespace FirstPlugin
for (int i = 0; i < parentDir.Children.Count; i++)
{
if (parentDir.Children[i] is FileEntry)
{
((FileEntry)parentDir.Children[i]).NameOffset = (ushort)stringPos;
((FileEntry)parentDir.Children[i]).UpdateHash();
}
else
{
((DirectoryEntry)parentDir.Children[i]).NameOffset = (ushort)stringPos;
((DirectoryEntry)parentDir.Children[i]).UpdateHash();
}
Console.WriteLine($"{parentDir.Children[i].Name} {stringPos}");
@ -628,6 +634,10 @@ namespace FirstPlugin
Offset = reader.ReadUInt32();
Size = reader.ReadUInt32();
}
public void UpdateHash() {
Hash = CalculateHash(Name);
}
}
}
}

View file

@ -174,7 +174,7 @@ namespace Toolbox.Library
private string _fileName = string.Empty;
[Browsable(false)]
public string FileName
public virtual string FileName
{
get
{
@ -363,7 +363,10 @@ namespace Toolbox.Library
{
string NewName = SetFullPath(FileNodes[i].Item2, this);
if (NewName != string.Empty)
{
FileNodes[i].Item1.Name = FileNodes[i].Item2.Text;
FileNodes[i].Item1.FileName = NewName;
}
}
}
@ -548,6 +551,7 @@ namespace Toolbox.Library
if (node is IDirectoryContainer)
{
var folder = new ArchiveFolderNodeWrapper(node.Name, archiveFile, this);
folder.DirectoryContainer = (IDirectoryContainer)node;
parent.Nodes.Add(folder);
if (((IDirectoryContainer)node).Nodes != null)
@ -642,6 +646,8 @@ namespace Toolbox.Library
public virtual object PropertyDisplay { get; set; }
public IDirectoryContainer DirectoryContainer { get; set; }
public bool CanReplace
{
set
@ -758,6 +764,8 @@ namespace Toolbox.Library
if (dialog.ShowDialog() == DialogResult.OK)
{
Text = dialog.textBox1.Text;
if (DirectoryContainer != null)
DirectoryContainer.Name = Text;
}
}