diff --git a/MainForm.vb b/MainForm.vb index ab5f213a..b1b6f859 100644 --- a/MainForm.vb +++ b/MainForm.vb @@ -862,7 +862,7 @@ Public Class MainForm imageStatus = ImageWatcher.Status.Invalid End Select Dim imageVersion As New Version() - imageVersion = New Version(FileVersionInfo.GetVersionInfo(Path.Combine(imageInfo.MountPath, "\Windows\system32\ntoskrnl.exe")).ProductVersion) + imageVersion = New Version(FileVersionInfo.GetVersionInfo(imageInfo.MountPath & "\Windows\system32\ntoskrnl.exe").ProductVersion) MountedImages.Add(New MountedImage(imageInfo.ImageFilePath, imageInfo.ImageIndex, imageInfo.MountPath, imageStatus, (imageInfo.MountMode = DismMountMode.ReadWrite), imageVersion)) Next MountedImageImgFiles = MountedImageImgFileList.ToArray() diff --git a/Panels/Img_Ops/MountedImgMgr.vb b/Panels/Img_Ops/MountedImgMgr.vb index 1b03d85e..060a7ed1 100644 --- a/Panels/Img_Ops/MountedImgMgr.vb +++ b/Panels/Img_Ops/MountedImgMgr.vb @@ -209,10 +209,10 @@ Public Class MountedImgMgr ' Enable buttons according to the image conditions If ListView1.SelectedItems.Count > 0 Then Button1.Enabled = True - If MainForm.MountedImageImgStatuses(ListView1.FocusedItem.Index) > 0 Then + If MainForm.MountedImages(ListView1.FocusedItem.Index).ImageStatus <> Utilities.ImageWatcher.Status.OK Then Button2.Enabled = True - Select Case MainForm.MountedImageImgStatuses(ListView1.FocusedItem.Index) - Case 1 + Select Case MainForm.MountedImages(ListView1.FocusedItem.Index).ImageStatus + Case Utilities.ImageWatcher.Status.NeedsRemount Select Case MainForm.Language Case 0 Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName @@ -238,7 +238,7 @@ Public Class MountedImgMgr Case 5 Button2.Text = "Ricarica servizio" End Select - Case 2 + Case Utilities.ImageWatcher.Status.Invalid Select Case MainForm.Language Case 0 Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName @@ -268,7 +268,7 @@ Public Class MountedImgMgr Else Button2.Enabled = False End If - Button3.Enabled = If(MainForm.MountedImageMountedReWr(ListView1.FocusedItem.Index) = 1, True, False) + Button3.Enabled = Not MainForm.MountedImages(ListView1.FocusedItem.Index).ImageReadWrite Button4.Enabled = True Button5.Enabled = True If MainForm.isProjectLoaded And MainForm.MountDir = "N/A" Or Not Directory.Exists(MainForm.MountDir & "\Windows") Then @@ -306,25 +306,25 @@ Public Class MountedImgMgr End If If useAlternateMethod Then Try - For x = 0 To Array.LastIndexOf(MainForm.MountedImageMountDirs, MainForm.MountedImageMountDirs.Last) - If MainForm.MountedImageMountDirs(x) = ListView1.FocusedItem.SubItems(2).Text Then - MainForm.MountDir = MainForm.MountedImageMountDirs(x) - MainForm.ImgIndex = MainForm.MountedImageImgIndexes(x) - MainForm.SourceImg = MainForm.MountedImageImgFiles(x) - IIf(MainForm.MountedImageMountedReWr(x) = "Yes", MainForm.isReadOnly = True, MainForm.isReadOnly = False) + For x = 0 To Array.LastIndexOf(MainForm.MountedImages.ToArray(), MainForm.MountedImages.ToArray().Last) + If MainForm.MountedImages(x).ImageMountDir = ListView1.FocusedItem.SubItems(2).Text Then + MainForm.MountDir = MainForm.MountedImages(x).ImageMountDir + MainForm.ImgIndex = MainForm.MountedImages(x).ImageIndex + MainForm.SourceImg = MainForm.MountedImages(x).ImageFile + MainForm.isReadOnly = Not MainForm.MountedImages(x).ImageReadWrite End If Next Catch ex As Exception Exit Try End Try - MainForm.UpdateProjProperties(True, If(MainForm.isReadOnly, True, False)) + MainForm.UpdateProjProperties(True, MainForm.isReadOnly) MainForm.SaveDTProj() Else MainForm.MountDir = ListView1.FocusedItem.SubItems(2).Text MainForm.ImgIndex = ListView1.FocusedItem.SubItems(1).Text MainForm.SourceImg = ListView1.FocusedItem.SubItems(0).Text - IIf(ListView1.FocusedItem.SubItems(4).Text = "Yes", MainForm.isReadOnly = False, MainForm.isReadOnly = True) - MainForm.UpdateProjProperties(True, If(MainForm.isReadOnly, True, False)) + MainForm.isReadOnly = Not MainForm.MountedImages(ListView1.FocusedItem.Index).ImageReadWrite + MainForm.UpdateProjProperties(True, MainForm.isReadOnly) MainForm.SaveDTProj() End If Button6.Enabled = False @@ -332,23 +332,24 @@ Public Class MountedImgMgr Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() - If MainForm.MountedImageImgStatuses(ListView1.FocusedItem.Index) = 1 Then - ProgressPanel.MountDir = ListView1.FocusedItem.SubItems(2).Text - ProgressPanel.OperationNum = 18 - ProgressPanel.ShowDialog() - Button2.Enabled = False - ElseIf MainForm.MountedImageImgStatuses(ListView1.FocusedItem.Index) = 2 Then - Visible = False - ImgCleanup.ComboBox1.SelectedIndex = 6 - ImgCleanup.ShowDialog(MainForm) - Visible = True - End If + Select Case MainForm.MountedImages(ListView1.FocusedItem.Index).ImageStatus + Case Utilities.ImageWatcher.Status.NeedsRemount + ProgressPanel.MountDir = ListView1.FocusedItem.SubItems(2).Text + ProgressPanel.OperationNum = 18 + ProgressPanel.ShowDialog() + Button2.Enabled = False + Case Utilities.ImageWatcher.Status.Invalid + Visible = False + ImgCleanup.ComboBox1.SelectedIndex = 6 + ImgCleanup.ShowDialog(MainForm) + Visible = True + End Select End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - If MainForm.MountedImageMountedReWr(ListView1.FocusedItem.Index) = 0 Then + If MainForm.MountedImages(ListView1.FocusedItem.Index).ImageReadWrite Then MainForm.ImgUMountPopupCMS.Show(sender, New Point(24, Button1.Height * 0.75)) - ElseIf MainForm.MountedImageMountedReWr(ListView1.FocusedItem.Index) = 1 Then + Else ' Unmount the image discarding changes If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() ProgressPanel.OperationNum = 21 @@ -376,95 +377,78 @@ Public Class MountedImgMgr Private Sub DetectorBW_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles DetectorBW.ProgressChanged If DetectorBW.CancellationPending Then Exit Sub - If MainForm.MountedImageImgFiles.Count <= 0 Then + If MainForm.MountedImages.Count <= 0 Then ListView1.Items.Clear() Exit Sub End If Try - For x = 0 To Array.LastIndexOf(MainForm.MountedImageImgFiles, MainForm.MountedImageImgFiles.Last) - If ignoreRepeats Then - If ListView1.Items.Count <> MainForm.MountedImageImgFiles.Count Then - ListView1.Items.Clear() - PopupImageManager.ListView1.Items.Clear() - ignoreRepeats = False - Exit Sub - End If - ' Thanks ChatGPT for providing a little help on this - For Each item As ListViewItem In ListView1.Items - If Not MainForm.MountedImageImgFiles.Contains(item.Text) Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - End Select - End If - Next - End If + For x = 0 To Array.LastIndexOf(MainForm.MountedImages.ToArray(), MainForm.MountedImages.ToArray().Last) + Dim mountedImage As Elements.MountedImage = MainForm.MountedImages(x) + Dim imageStatuses() As String = New String(2) {"OK", "Needs Remount", "Invalid"} + Dim imageRWStatuses() As String = New String(1) {"Yes", "No"} + Dim imageStatus As String = "" + Dim imageRWStatus As String = "" Select Case MainForm.Language Case 0 Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName Case "ENU", "ENG" - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Needs Remount", "Invalid"} + imageRWStatuses = New String(1) {"Yes", "No"} Case "ESN" - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"Correcto", "Necesita recarga", "Inválido"} + imageRWStatuses = New String(1) {"Sí", "No"} Case "FRA" - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Nécessite un remontage", "Invalide"} + imageRWStatuses = New String(1) {"Oui", "Non"} Case "PTB", "PTG" - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Necessita de remontagem", "Inválido"} + imageRWStatuses = New String(1) {"Sim", "Não"} Case "ITA" - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Necessità di rimontaggio", "Non valido"} + imageRWStatuses = New String(1) {"Sì", "No"} End Select Case 1 - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Needs Remount", "Invalid")), If(MainForm.MountedImageMountedReWr(x) = 0, "Yes", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Needs Remount", "Invalid"} + imageRWStatuses = New String(1) {"Yes", "No"} Case 2 - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "Correcto", If(MainForm.MountedImageImgStatuses(x) = 1, "Necesita recarga", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sí", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"Correcto", "Necesita recarga", "Inválido"} + imageRWStatuses = New String(1) {"Sí", "No"} Case 3 - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Nécessite un remontage", "Invalide")), If(MainForm.MountedImageMountedReWr(x) = 0, "Oui", "Non"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Nécessite un remontage", "Invalide"} + imageRWStatuses = New String(1) {"Oui", "Non"} Case 4 - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessita de remontagem", "Inválido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sim", "Não"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Necessita de remontagem", "Inválido"} + imageRWStatuses = New String(1) {"Sim", "Não"} Case 5 - If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) - If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {MainForm.MountedImageImgFiles(x), MainForm.MountedImageImgIndexes(x), MainForm.MountedImageMountDirs(x), If(MainForm.MountedImageImgStatuses(x) = 0, "OK", If(MainForm.MountedImageImgStatuses(x) = 1, "Necessità di rimontaggio", "Non valido")), If(MainForm.MountedImageMountedReWr(x) = 0, "Sì", "No"), MainForm.MountedImageImgVersions(x)})) + imageStatuses = New String(2) {"OK", "Necessità di rimontaggio", "Non valido"} + imageRWStatuses = New String(1) {"Sì", "No"} + End Select + Select Case mountedImage.ImageStatus + Case Utilities.ImageWatcher.Status.OK + imageStatus = imageStatuses(0) + Case Utilities.ImageWatcher.Status.NeedsRemount + imageStatus = imageStatuses(1) + Case Utilities.ImageWatcher.Status.Invalid + imageStatus = imageStatuses(2) End Select + imageRWStatus = If(mountedImage.ImageReadWrite, imageRWStatuses(0), imageRWStatuses(1)) + If ignoreRepeats Then + If ListView1.Items.Count <> MainForm.MountedImages.Count Then + ListView1.Items.Clear() + PopupImageManager.ListView1.Items.Clear() + ignoreRepeats = False + Exit Sub + End If + ' Thanks ChatGPT for providing a little help on this + For Each item As ListViewItem In ListView1.Items + If Not MainForm.MountedImageImgFiles.Contains(item.Text) Then + ListView1.Items.Add(New ListViewItem(New String() {mountedImage.ImageFile, mountedImage.ImageIndex, mountedImage.ImageMountDir, imageStatus, imageRWStatus, mountedImage.ImageVersion.ToString()})) + PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {mountedImage.ImageFile, mountedImage.ImageIndex, mountedImage.ImageMountDir, imageStatus, imageRWStatus, mountedImage.ImageVersion.ToString()})) + End If + Next + End If + If Not ignoreRepeats Then ListView1.Items.Add(New ListViewItem(New String() {mountedImage.ImageFile, mountedImage.ImageIndex, mountedImage.ImageMountDir, imageStatus, imageRWStatus, mountedImage.ImageVersion.ToString()})) + If Not ignoreRepeats Then PopupImageManager.ListView1.Items.Add(New ListViewItem(New String() {mountedImage.ImageFile, mountedImage.ImageIndex, mountedImage.ImageMountDir, imageStatus, imageRWStatus, mountedImage.ImageVersion.ToString()})) Next ignoreRepeats = True Catch ex As Exception @@ -500,7 +484,8 @@ Public Class MountedImgMgr Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If MainForm.MountedImageMountDirs.Count > 0 Then - MainForm.EnableWritePermissions(ListView1.FocusedItem.SubItems(0).Text, CInt(ListView1.FocusedItem.SubItems(1).Text), ListView1.FocusedItem.SubItems(2).Text) + Dim targetedImage As Elements.MountedImage = MainForm.MountedImages(ListView1.FocusedItem.Index) + MainForm.EnableWritePermissions(targetedImage.ImageFile, targetedImage.ImageIndex, targetedImage.ImageMountDir) End If End Sub