@@ -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 {
0 commit comments