@@ -182,44 +182,7 @@ private void openProjectToolStripMenuItem_Click(object sender, EventArgs e)
182182
183183 if ( ofd . ShowDialog ( ) == DialogResult . OK )
184184 {
185- IReClassImport import = null ;
186- switch ( Path . GetExtension ( ofd . SafeFileName ) )
187- {
188- case ReClassNetFile . FileExtension :
189- import = new ReClassNetFile ( ) ;
190- break ;
191- case ReClassQtFile . FileExtension :
192- import = new ReClassQtFile ( ) ;
193- break ;
194- case ReClassFile . FileExtension :
195- import = new ReClassFile ( ) ;
196- break ;
197- case ReClass2007File . FileExtension :
198- import = new ReClass2007File ( ) ;
199- break ;
200- default :
201- Program . Logger . Log ( LogLevel . Error , $ "The file '{ ofd . SafeFileName } ' has an unknown type.") ;
202- break ;
203- }
204- if ( import != null )
205- {
206- var schema = import . Load ( ofd . FileName , Program . Logger ) ;
207- if ( schema != null )
208- {
209- // If we have our filetype save the path to skip the Save As dialog.
210- if ( import is ReClassNetFile )
211- {
212- projectPath = ofd . FileName ;
213- }
214-
215- var classes = schema . BuildNodes ( Program . Logger ) ;
216-
217- ClassManager . Clear ( ) ;
218- classes . ForEach ( c => ClassManager . AddClass ( c ) ) ;
219-
220- memoryViewControl . ClassNode = classes . FirstOrDefault ( ) ;
221- }
222- }
185+ LoadFileFromPath ( ofd . SafeFileName ) ;
223186 }
224187 }
225188 }
@@ -408,6 +371,35 @@ private void memoryTypeToolStripButton_Click(object sender, EventArgs e)
408371
409372 #endregion
410373
374+ private void MainForm_DragEnter ( object sender , DragEventArgs e )
375+ {
376+ if ( e . Data . GetDataPresent ( DataFormats . FileDrop ) )
377+ {
378+ var files = e . Data . GetData ( DataFormats . FileDrop ) as string [ ] ;
379+ if ( files != null && files . Any ( ) )
380+ {
381+ switch ( Path . GetExtension ( files . First ( ) ) )
382+ {
383+ case ReClassNetFile . FileExtension :
384+ case ReClassQtFile . FileExtension :
385+ case ReClassFile . FileExtension :
386+ case ReClass2007File . FileExtension :
387+ e . Effect = DragDropEffects . Copy ;
388+ break ;
389+ }
390+ }
391+ }
392+ }
393+
394+ private void MainForm_DragDrop ( object sender , DragEventArgs e )
395+ {
396+ var files = e . Data . GetData ( DataFormats . FileDrop ) as string [ ] ;
397+ if ( files != null && files . Any ( ) )
398+ {
399+ LoadFileFromPath ( files . First ( ) ) ;
400+ }
401+ }
402+
411403 private void processUpdateTimer_Tick ( object sender , EventArgs e )
412404 {
413405 if ( updateProcessInformationsTask == null || updateProcessInformationsTask . IsCompleted )
@@ -514,5 +506,47 @@ private void AskAddOrInsertBytes(string title, Action<int> callback)
514506 }
515507 }
516508 }
509+
510+ private void LoadFileFromPath ( string filePath )
511+ {
512+ IReClassImport import = null ;
513+ switch ( Path . GetExtension ( filePath ) )
514+ {
515+ case ReClassNetFile . FileExtension :
516+ import = new ReClassNetFile ( ) ;
517+ break ;
518+ case ReClassQtFile . FileExtension :
519+ import = new ReClassQtFile ( ) ;
520+ break ;
521+ case ReClassFile . FileExtension :
522+ import = new ReClassFile ( ) ;
523+ break ;
524+ case ReClass2007File . FileExtension :
525+ import = new ReClass2007File ( ) ;
526+ break ;
527+ default :
528+ Program . Logger . Log ( LogLevel . Error , $ "The file '{ filePath } ' has an unknown type.") ;
529+ break ;
530+ }
531+ if ( import != null )
532+ {
533+ var schema = import . Load ( filePath , Program . Logger ) ;
534+ if ( schema != null )
535+ {
536+ // If we have our filetype save the path to skip the Save As dialog.
537+ if ( import is ReClassNetFile )
538+ {
539+ projectPath = filePath ;
540+ }
541+
542+ var classes = schema . BuildNodes ( Program . Logger ) ;
543+
544+ ClassManager . Clear ( ) ;
545+ classes . ForEach ( c => ClassManager . AddClass ( c ) ) ;
546+
547+ memoryViewControl . ClassNode = classes . FirstOrDefault ( ) ;
548+ }
549+ }
550+ }
517551 }
518552}
0 commit comments