Skip to content

Commit d7d6fff

Browse files
committed
Added "Merge with" feature.
1 parent 1db40a8 commit d7d6fff

File tree

6 files changed

+120
-81
lines changed

6 files changed

+120
-81
lines changed

Forms/MainForm.Designer.cs

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Forms/MainForm.cs

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -171,20 +171,12 @@ private void newClassToolStripButton_Click(object sender, EventArgs e)
171171

172172
private void openProjectToolStripMenuItem_Click(object sender, EventArgs e)
173173
{
174-
using (var ofd = new OpenFileDialog())
175-
{
176-
ofd.CheckFileExists = true;
177-
ofd.Filter = $"All ReClass Types |*{ReClassNetFile.FileExtension};*{ReClassFile.FileExtension};*{ReClassQtFile.FileExtension};*{ReClass2007File.FileExtension}"
178-
+ $"|{ReClassNetFile.FormatName} (*{ReClassNetFile.FileExtension})|*{ReClassNetFile.FileExtension}"
179-
+ $"|{ReClassFile.FormatName} (*{ReClassFile.FileExtension})|*{ReClassFile.FileExtension}"
180-
+ $"|{ReClassQtFile.FormatName} (*{ReClassQtFile.FileExtension})|*{ReClassQtFile.FileExtension}"
181-
+ $"|{ReClass2007File.FormatName} (*{ReClass2007File.FileExtension})|*{ReClass2007File.FileExtension}";
174+
SelectAndLoadFileFromPath(null);
175+
}
182176

183-
if (ofd.ShowDialog() == DialogResult.OK)
184-
{
185-
LoadFileFromPath(ofd.FileName);
186-
}
187-
}
177+
private void mergeWithProjectToolStripMenuItem_Click(object sender, EventArgs e)
178+
{
179+
SelectAndLoadFileFromPath(CurrentProject);
188180
}
189181

190182
private void clearProjectToolStripMenuItem_Click(object sender, EventArgs e)
@@ -396,7 +388,7 @@ private void MainForm_DragDrop(object sender, DragEventArgs e)
396388
var files = e.Data.GetData(DataFormats.FileDrop) as string[];
397389
if (files != null && files.Any())
398390
{
399-
LoadFileFromPath(files.First());
391+
LoadFileFromPath(files.First(), null);
400392
}
401393
}
402394

@@ -435,10 +427,17 @@ private void memoryViewControl_SelectionChanged(object sender, EventArgs e)
435427

436428
#endregion
437429

438-
private void SetProject(ReClassNetProject newProject)
430+
/// <summary>Sets the current project.</summary>
431+
/// <param name="newProject">The new project.</param>
432+
public void SetProject(ReClassNetProject newProject)
439433
{
440434
Contract.Requires(newProject != null);
441435

436+
if (currentProject == newProject)
437+
{
438+
return;
439+
}
440+
442441
if (currentProject != null)
443442
{
444443
ClassNode.ClassCreated -= currentProject.AddClass;
@@ -528,9 +527,29 @@ private void AskAddOrInsertBytes(string title, Action<int> callback)
528527
}
529528
}
530529

531-
private void LoadFileFromPath(string filePath)
530+
private void SelectAndLoadFileFromPath(ReClassNetProject project)
531+
{
532+
using (var ofd = new OpenFileDialog())
533+
{
534+
ofd.CheckFileExists = true;
535+
ofd.Filter = $"All ReClass Types |*{ReClassNetFile.FileExtension};*{ReClassFile.FileExtension};*{ReClassQtFile.FileExtension};*{ReClass2007File.FileExtension}"
536+
+ $"|{ReClassNetFile.FormatName} (*{ReClassNetFile.FileExtension})|*{ReClassNetFile.FileExtension}"
537+
+ $"|{ReClassFile.FormatName} (*{ReClassFile.FileExtension})|*{ReClassFile.FileExtension}"
538+
+ $"|{ReClassQtFile.FormatName} (*{ReClassQtFile.FileExtension})|*{ReClassQtFile.FileExtension}"
539+
+ $"|{ReClass2007File.FormatName} (*{ReClass2007File.FileExtension})|*{ReClass2007File.FileExtension}";
540+
541+
if (ofd.ShowDialog() == DialogResult.OK)
542+
{
543+
LoadFileFromPath(ofd.FileName, project);
544+
}
545+
}
546+
}
547+
548+
private void LoadFileFromPath(string filePath, ReClassNetProject project)
532549
{
533-
var loadProject = new ReClassNetProject();
550+
Contract.Requires(filePath != null);
551+
552+
var loadProject = project ?? new ReClassNetProject();
534553

535554
IReClassImport import = null;
536555
switch (Path.GetExtension(filePath))
@@ -559,13 +578,6 @@ private void LoadFileFromPath(string filePath)
559578
import.Load(filePath, Program.Logger);
560579

561580
SetProject(loadProject);
562-
563-
/*var classes = schema.BuildNodes(Program.Logger);
564-
565-
ClassManager.Clear();
566-
classes.ForEach(c => ClassManager.AddClass(c));
567-
568-
memoryViewControl.ClassNode = classes.FirstOrDefault();*/
569581
}
570582
catch (Exception ex)
571583
{

Properties/Resources.Designer.cs

Lines changed: 11 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)