@@ -171,20 +171,12 @@ private void newClassToolStripButton_Click(object sender, EventArgs e)
171
171
172
172
private void openProjectToolStripMenuItem_Click ( object sender , EventArgs e )
173
173
{
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
+ }
182
176
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 ) ;
188
180
}
189
181
190
182
private void clearProjectToolStripMenuItem_Click ( object sender , EventArgs e )
@@ -396,7 +388,7 @@ private void MainForm_DragDrop(object sender, DragEventArgs e)
396
388
var files = e . Data . GetData ( DataFormats . FileDrop ) as string [ ] ;
397
389
if ( files != null && files . Any ( ) )
398
390
{
399
- LoadFileFromPath ( files . First ( ) ) ;
391
+ LoadFileFromPath ( files . First ( ) , null ) ;
400
392
}
401
393
}
402
394
@@ -435,10 +427,17 @@ private void memoryViewControl_SelectionChanged(object sender, EventArgs e)
435
427
436
428
#endregion
437
429
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 )
439
433
{
440
434
Contract . Requires ( newProject != null ) ;
441
435
436
+ if ( currentProject == newProject )
437
+ {
438
+ return ;
439
+ }
440
+
442
441
if ( currentProject != null )
443
442
{
444
443
ClassNode . ClassCreated -= currentProject . AddClass ;
@@ -528,9 +527,29 @@ private void AskAddOrInsertBytes(string title, Action<int> callback)
528
527
}
529
528
}
530
529
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 )
532
549
{
533
- var loadProject = new ReClassNetProject ( ) ;
550
+ Contract . Requires ( filePath != null ) ;
551
+
552
+ var loadProject = project ?? new ReClassNetProject ( ) ;
534
553
535
554
IReClassImport import = null ;
536
555
switch ( Path . GetExtension ( filePath ) )
@@ -559,13 +578,6 @@ private void LoadFileFromPath(string filePath)
559
578
import . Load ( filePath , Program . Logger ) ;
560
579
561
580
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();*/
569
581
}
570
582
catch ( Exception ex )
571
583
{
0 commit comments