@@ -36,12 +36,12 @@ Public Class MainForm
3636 Private _DriveAEnabled As Boolean = False
3737 Private _DriveBEnabled As Boolean = False
3838 Private _ExportUnknownImages As Boolean = False
39- Private _FileNames As Dictionary( Of String , ImageData)
4039 Private _FileVersion As String = ""
4140 Private _ListViewCheckAll As Boolean = False
4241 Private _ListViewClickedGroup As ListViewGroup = Nothing
4342 Private _ListViewHeader As ListViewHeader
4443 Private _ListViewWidths() As Integer
44+ Private _LoadedFiles As LoadedFiles
4545 Private _ScanRun As Boolean = False
4646 Private _SubFilterDiskType As ComboFilter
4747 Private _SubFilterOEMName As ComboFilter
@@ -1271,7 +1271,7 @@ Public Class MainForm
12711271
12721272 Private Sub FileClose(ImageData As ImageData)
12731273 ItemFiltersRemove(ImageData)
1274- _FileNames .Remove(ImageData.DisplayPath)
1274+ _LoadedFiles.FileNames .Remove(ImageData.DisplayPath)
12751275
12761276 Dim ActiveComboBox As ComboBox = IIf(ImageFilters.FiltersApplied, ComboImagesFiltered, ComboImages)
12771277
@@ -1381,7 +1381,7 @@ Public Class MainForm
13811381 Exit Sub
13821382 End If
13831383
1384- ProcessFileDrop(Dialog.FileNames)
1384+ ProcessFileDrop(Dialog.FileNames, True )
13851385 End Sub
13861386
13871387 Private Sub FiltersApply(ResetSubFilters As Boolean )
@@ -1643,7 +1643,7 @@ Public Class MainForm
16431643 }
16441644
16451645 AddHandler Dialog.FileOk, Sub (sender As Object , e As CancelEventArgs)
1646- If Dialog.FileName <> FilePath AndAlso _FileNames .ContainsKey(Dialog.FileName) Then
1646+ If Dialog.FileName <> FilePath AndAlso _LoadedFiles.FileNames .ContainsKey(Dialog.FileName) Then
16471647 Dim Msg As String = IO.Path.GetFileName(Dialog.FileName) &
16481648 $"{vbCrLf}This file is currently open in {Application.ProductName}." &
16491649 $"Try again with a different file name."
@@ -2257,7 +2257,7 @@ Public Class MainForm
22572257 Dim DiskFormat = frmImageCreationForm.DiskFormat
22582258
22592259 If Data IsNot Nothing Then
2260- Dim FileName = FloppyDiskSaveFile(Data, DiskFormat, _FileNames )
2260+ Dim FileName = FloppyDiskSaveFile(Data, DiskFormat, _LoadedFiles.FileNames )
22612261 If FileName.Length > 0 Then
22622262 ProcessFileDrop(FileName)
22632263 End If
@@ -2934,10 +2934,10 @@ Public Class MainForm
29342934 Dim Files( 0 ) As String
29352935 Files( 0 ) = File
29362936
2937- ProcessFileDrop(Files)
2937+ ProcessFileDrop(Files, False )
29382938 End Sub
29392939
2940- Private Sub ProcessFileDrop(Files() As String )
2940+ Private Sub ProcessFileDrop(Files() As String , ShowDialog As Boolean )
29412941 Cursor.Current = Cursors.WaitCursor
29422942 Dim T = Stopwatch.StartNew
29432943
@@ -2951,12 +2951,18 @@ Public Class MainForm
29512951
29522952 ImageData.StringOffset = 0
29532953
2954- Dim ImageLoadForm As New ImageLoadForm( Me , Files, _FileNames)
2955- ImageLoadForm.ShowDialog( Me )
2954+ Dim ImageLoadForm As New ImageLoadForm( Me , Files, _LoadedFiles)
2955+ If ShowDialog Then
2956+ ImageLoadForm.ShowDialog( Me )
2957+ Else
2958+ ImageLoadForm.ProcessScan( Nothing )
2959+ End If
29562960
29572961 ImageData.StringOffset = GetPathOffset()
29582962
29592963 If ImageLoadForm.SelectedImageData IsNot Nothing Then
2964+ LabelDropMessage.Visible = False
2965+
29602966 RefreshSubFilterEnabled(ComboImages)
29612967 ComboImagesRefreshItemText()
29622968 ImageCountUpdate()
@@ -3353,7 +3359,7 @@ Public Class MainForm
33533359 Me .Text = GetWindowCaption()
33543360 ImageFilters.FiltersApplied = False
33553361 _ListViewCheckAll = False
3356- _FileNames .Clear()
3362+ _LoadedFiles.FileNames .Clear()
33573363 _ScanRun = False
33583364
33593365 MenuOptionsCreateBackup.Checked = My.Settings.CreateBackups
@@ -3589,18 +3595,18 @@ Public Class MainForm
35893595
35903596 Private Sub SetNewFilePath(ImageData As ImageData, NewFilePath As String )
35913597 If ImageData.SourceFile <> NewFilePath Then
3592- _FileNames .Remove(ImageData.DisplayPath)
3598+ _LoadedFiles.FileNames .Remove(ImageData.DisplayPath)
35933599
35943600 ImageData.SourceFile = NewFilePath
35953601 ImageData.Compressed = False
35963602 ImageData.CompressedFile = ""
35973603 ImageData.ReadOnly = IsFileReadOnly(NewFilePath)
35983604
3599- If _FileNames .ContainsKey(ImageData.DisplayPath) Then
3600- FileClose(_FileNames .Item(ImageData.DisplayPath))
3605+ If _LoadedFiles.FileNames .ContainsKey(ImageData.DisplayPath) Then
3606+ FileClose(_LoadedFiles.FileNames .Item(ImageData.DisplayPath))
36013607 End If
36023608
3603- _FileNames .Add(ImageData.DisplayPath, ImageData)
3609+ _LoadedFiles.FileNames .Add(ImageData.DisplayPath, ImageData)
36043610
36053611 ComboImagesRefreshPaths()
36063612 End If
@@ -3911,14 +3917,14 @@ Public Class MainForm
39113917 End Sub
39123918
39133919 Private Sub BtnReadFloppyA_Click(sender As Object , e As EventArgs) Handles MenuDiskReadFloppyA.Click
3914- Dim FileName = FloppyDiskRead( Me , FloppyDriveEnum.FloppyDriveA, _FileNames )
3920+ Dim FileName = FloppyDiskRead( Me , FloppyDriveEnum.FloppyDriveA, _LoadedFiles.FileNames )
39153921 If FileName.Length > 0 Then
39163922 ProcessFileDrop(FileName)
39173923 End If
39183924 End Sub
39193925
39203926 Private Sub BtnReadFloppyB_Click(sender As Object , e As EventArgs) Handles MenuDiskReadFloppyB.Click
3921- Dim FileName = FloppyDiskRead( Me , FloppyDriveEnum.FloppyDriveB, _FileNames )
3927+ Dim FileName = FloppyDiskRead( Me , FloppyDriveEnum.FloppyDriveB, _LoadedFiles.FileNames )
39223928 If FileName.Length > 0 Then
39233929 ProcessFileDrop(FileName)
39243930 End If
@@ -4133,7 +4139,7 @@ Public Class MainForm
41334139
41344140 Private Sub File_DragDrop(sender As Object , e As DragEventArgs) Handles ComboImages.DragDrop, ComboImagesFiltered.DragDrop, LabelDropMessage.DragDrop, ListViewFiles.DragDrop, ListViewHashes.DragDrop, ListViewSummary.DragDrop
41354141 Dim Files As String () = e.Data.GetData(DataFormats.FileDrop)
4136- ProcessFileDrop(Files)
4142+ ProcessFileDrop(Files, True )
41374143 End Sub
41384144
41394145 Private Sub File_DragEnter(sender As Object , e As DragEventArgs) Handles ComboImages.DragEnter, ComboImagesFiltered.DragEnter, LabelDropMessage.DragEnter, ListViewFiles.DragEnter, ListViewHashes.DragEnter, ListViewSummary.DragEnter
@@ -4286,7 +4292,7 @@ Public Class MainForm
42864292 ListViewSummary.AutoResizeColumnsContstrained(ColumnHeaderAutoResizeStyle.None)
42874293 ImageFilters = New Filters.ImageFilters(ContextMenuFilters)
42884294 SubFiltersInitialize()
4289- _FileNames = New Dictionary( Of String , ImageData)
4295+ _LoadedFiles = New LoadedFiles
42904296 _BootStrapDB = New BootstrapDB
42914297 _TitleDB = New FloppyDB
42924298 Debounce = New Timer With {
@@ -4312,7 +4318,7 @@ Public Class MainForm
43124318 Dim Args = Environment.GetCommandLineArgs.Skip( 1 ).ToArray
43134319
43144320 If Args.Length > 0 Then
4315- ProcessFileDrop(Args)
4321+ ProcessFileDrop(Args, True )
43164322 End If
43174323
43184324 If My.Settings.CheckUpdateOnStartup Then
0 commit comments