Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions ReClass.NET/DataExchange/ReClass/ReClassNetFile.Constants.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
namespace ReClassNET.DataExchange.ReClass
namespace ReClassNET.DataExchange.ReClass
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are these changes here and in ReClass.NET_Launcher/Program.cs? BOM or something?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems so? Idk why those got added. I tried to revert them and vscode wasn't showing those lines as changed.

{
public partial class ReClassNetFile
{
public const string FormatName = "ReClass.NET File";
public const string FileExtension = ".rcnet";
public const string DefaultFileExtension = ".rcnet";
public const string AlternateFormatName = "ReClass.NET XML File";
public const string AlternateFileExtension = ".rcnetxml";
public const string FileExtensionId = "rcnetfile";

private const uint FileVersion = 0x00010001;
Expand Down
31 changes: 20 additions & 11 deletions ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,33 @@ public partial class ReClassNetFile
public void Load(string filePath, ILogger logger)
{
using var fs = new FileStream(filePath, FileMode.Open);

Load(fs, logger);

var ext = Path.GetExtension(filePath);
if (ext == DefaultFileExtension)
{
using var archive = new ZipArchive(fs, ZipArchiveMode.Read);
var dataEntry = archive.GetEntry(DataFileName);
if (dataEntry == null)
{
throw new FormatException();
}

using var entryStream = dataEntry.Open();

Load(entryStream, logger);
}
else if (ext == AlternateFileExtension)
{
Load(fs, logger);
}
}

public void Load(Stream input, ILogger logger)
{
Contract.Requires(input != null);
Contract.Requires(logger != null);

using var archive = new ZipArchive(input, ZipArchiveMode.Read);
var dataEntry = archive.GetEntry(DataFileName);
if (dataEntry == null)
{
throw new FormatException();
}

using var entryStream = dataEntry.Open();
var document = XDocument.Load(entryStream);
var document = XDocument.Load(input);
if (document.Root?.Element(XmlClassesElement) == null)
{
throw new FormatException("The data has not the correct format.");
Expand Down
22 changes: 14 additions & 8 deletions ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,24 @@ public partial class ReClassNetFile
public void Save(string filePath, ILogger logger)
{
using var fs = new FileStream(filePath, FileMode.Create);
var ext = Path.GetExtension(filePath);
if(ext == DefaultFileExtension)
{
using var archive = new ZipArchive(fs, ZipArchiveMode.Create);

var dataEntry = archive.CreateEntry(DataFileName);
using var entryStream = dataEntry.Open();

Save(fs, logger);
Save(entryStream, logger);
}
else if(ext == AlternateFileExtension)
{
Save(fs, logger);
}
}

public void Save(Stream output, ILogger logger)
{
using var archive = new ZipArchive(output, ZipArchiveMode.Create);

var dataEntry = archive.CreateEntry(DataFileName);
using var entryStream = dataEntry.Open();

var document = new XDocument(
new XComment($"{Constants.ApplicationName} {Constants.ApplicationVersion} by {Constants.Author}"),
new XComment($"Website: {Constants.HomepageUrl}"),
Expand All @@ -40,8 +47,7 @@ public void Save(Stream output, ILogger logger)
new XElement(XmlClassesElement, CreateClassElements(project.Classes, logger))
)
);

document.Save(entryStream);
document.Save(output);
}

private static IEnumerable<XElement> CreateEnumElements(IEnumerable<EnumDescription> enums)
Expand Down
12 changes: 8 additions & 4 deletions ReClass.NET/Forms/MainForm.Functions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,9 @@ public static string ShowOpenProjectFileDialog()
using var ofd = new OpenFileDialog
{
CheckFileExists = true,
Filter = $"All ReClass Types |*{ReClassNetFile.FileExtension};*{ReClassFile.FileExtension};*{ReClassQtFile.FileExtension}"
+ $"|{ReClassNetFile.FormatName} (*{ReClassNetFile.FileExtension})|*{ReClassNetFile.FileExtension}"
Filter = $"All ReClass Types |*{ReClassNetFile.DefaultFileExtension};*{ReClassNetFile.AlternateFileExtension};*{ReClassFile.FileExtension};*{ReClassQtFile.FileExtension}"
+ $"|{ReClassNetFile.FormatName} (*{ReClassNetFile.DefaultFileExtension})|*{ReClassNetFile.DefaultFileExtension}"
+ $"|{ReClassNetFile.AlternateFormatName} (*{ReClassNetFile.AlternateFileExtension})|*{ReClassNetFile.AlternateFileExtension}"
+ $"|{ReClassFile.FormatName} (*{ReClassFile.FileExtension})|*{ReClassFile.FileExtension}"
+ $"|{ReClassQtFile.FormatName} (*{ReClassQtFile.FileExtension})|*{ReClassQtFile.FileExtension}"
};
Expand All @@ -218,7 +219,9 @@ public void LoadProjectFromPath(string path)
LoadProjectFromPath(path, ref project);

// If the file is a ReClass.NET file remember the path.
if (Path.GetExtension(path) == ReClassNetFile.FileExtension)
var ext = Path.GetExtension(path);
if (ext == ReClassNetFile.DefaultFileExtension
|| ext == ReClassNetFile.AlternateFileExtension)
{
project.Path = path;
}
Expand All @@ -238,7 +241,8 @@ private static void LoadProjectFromPath(string path, ref ReClassNetProject proje
IReClassImport import;
switch (Path.GetExtension(path)?.ToLower())
{
case ReClassNetFile.FileExtension:
case ReClassNetFile.DefaultFileExtension:
case ReClassNetFile.AlternateFileExtension:
import = new ReClassNetFile(project);
break;
case ReClassQtFile.FileExtension:
Expand Down
8 changes: 5 additions & 3 deletions ReClass.NET/Forms/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,9 @@ private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)

using var sfd = new SaveFileDialog
{
DefaultExt = ReClassNetFile.FileExtension,
Filter = $"{ReClassNetFile.FormatName} (*{ReClassNetFile.FileExtension})|*{ReClassNetFile.FileExtension}"
DefaultExt = ReClassNetFile.DefaultFileExtension,
Filter = $"{ReClassNetFile.FormatName} (*{ReClassNetFile.DefaultFileExtension})|*{ReClassNetFile.DefaultFileExtension}"
+ $"|{ReClassNetFile.AlternateFormatName} (*{ReClassNetFile.AlternateFileExtension})|*{ReClassNetFile.AlternateFileExtension}"
};

if (sfd.ShowDialog() == DialogResult.OK)
Expand Down Expand Up @@ -755,7 +756,8 @@ private void MainForm_DragEnter(object sender, DragEventArgs e)
{
switch (Path.GetExtension(files.First()))
{
case ReClassNetFile.FileExtension:
case ReClassNetFile.DefaultFileExtension:
case ReClassNetFile.AlternateFileExtension:
case ReClassQtFile.FileExtension:
case ReClassFile.FileExtension:
e.Effect = DragDropEffects.Copy;
Expand Down
6 changes: 3 additions & 3 deletions ReClass.NET_Launcher/Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
Expand All @@ -19,13 +19,13 @@ static void Main(string[] args)
// Register the files with the launcher.
if (commandLineArgs[Constants.CommandLineOptions.FileExtRegister] != null)
{
NativeMethods.RegisterExtension(ReClassNetFile.FileExtension, ReClassNetFile.FileExtensionId, PathUtil.ExecutablePath, Constants.ApplicationName);
NativeMethods.RegisterExtension(ReClassNetFile.DefaultFileExtension, ReClassNetFile.FileExtensionId, PathUtil.ExecutablePath, Constants.ApplicationName);

return;
}
if (commandLineArgs[Constants.CommandLineOptions.FileExtUnregister] != null)
{
NativeMethods.UnregisterExtension(ReClassNetFile.FileExtension, ReClassNetFile.FileExtensionId);
NativeMethods.UnregisterExtension(ReClassNetFile.DefaultFileExtension, ReClassNetFile.FileExtensionId);

return;
}
Expand Down