Added experimental "Clean folder on restore" feature
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
Private sFileType As String = String.Empty
|
Private sFileType As String = String.Empty
|
||||||
Private bAppendTimeStamp As Boolean = False
|
Private bAppendTimeStamp As Boolean = False
|
||||||
Private iBackupLimit As Integer = 2
|
Private iBackupLimit As Integer = 2
|
||||||
|
Private bCleanFolder As Boolean = False
|
||||||
Private sExcludeList As String = String.Empty
|
Private sExcludeList As String = String.Empty
|
||||||
Private sProcessPath As String = String.Empty
|
Private sProcessPath As String = String.Empty
|
||||||
Private sIcon As String = String.Empty
|
Private sIcon As String = String.Empty
|
||||||
@@ -127,6 +128,15 @@
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Property CleanFolder As Boolean
|
||||||
|
Get
|
||||||
|
Return bCleanFolder
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
bCleanFolder = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
Property ExcludeList As String
|
Property ExcludeList As String
|
||||||
Set(value As String)
|
Set(value As String)
|
||||||
sExcludeList = value
|
sExcludeList = value
|
||||||
@@ -268,6 +278,9 @@
|
|||||||
If FolderSave <> oGame.FolderSave Then
|
If FolderSave <> oGame.FolderSave Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
If CleanFolder <> oGame.CleanFolder Then
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
If AppendTimeStamp <> oGame.AppendTimeStamp Then
|
If AppendTimeStamp <> oGame.AppendTimeStamp Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|||||||
Generated
+16
-3
@@ -95,6 +95,7 @@ Partial Class frmGameManager
|
|||||||
Me.cmsDeleteBackup = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
Me.cmsDeleteBackup = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||||
Me.cmsDeleteOne = New System.Windows.Forms.ToolStripMenuItem()
|
Me.cmsDeleteOne = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem()
|
Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.chkCleanFolder = New System.Windows.Forms.CheckBox()
|
||||||
Me.grpConfig.SuspendLayout()
|
Me.grpConfig.SuspendLayout()
|
||||||
CType(Me.nudLimit, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.nudLimit, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.grpExtra.SuspendLayout()
|
Me.grpExtra.SuspendLayout()
|
||||||
@@ -151,6 +152,7 @@ Partial Class frmGameManager
|
|||||||
'grpConfig
|
'grpConfig
|
||||||
'
|
'
|
||||||
Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.grpConfig.Controls.Add(Me.chkCleanFolder)
|
||||||
Me.grpConfig.Controls.Add(Me.lblLimit)
|
Me.grpConfig.Controls.Add(Me.lblLimit)
|
||||||
Me.grpConfig.Controls.Add(Me.nudLimit)
|
Me.grpConfig.Controls.Add(Me.nudLimit)
|
||||||
Me.grpConfig.Controls.Add(Me.btnExclude)
|
Me.grpConfig.Controls.Add(Me.btnExclude)
|
||||||
@@ -182,7 +184,7 @@ Partial Class frmGameManager
|
|||||||
Me.lblLimit.Location = New System.Drawing.Point(375, 130)
|
Me.lblLimit.Location = New System.Drawing.Point(375, 130)
|
||||||
Me.lblLimit.Name = "lblLimit"
|
Me.lblLimit.Name = "lblLimit"
|
||||||
Me.lblLimit.Size = New System.Drawing.Size(68, 13)
|
Me.lblLimit.Size = New System.Drawing.Size(68, 13)
|
||||||
Me.lblLimit.TabIndex = 13
|
Me.lblLimit.TabIndex = 14
|
||||||
Me.lblLimit.Text = "Backup Limit"
|
Me.lblLimit.Text = "Backup Limit"
|
||||||
Me.lblLimit.Visible = False
|
Me.lblLimit.Visible = False
|
||||||
'
|
'
|
||||||
@@ -192,7 +194,7 @@ Partial Class frmGameManager
|
|||||||
Me.nudLimit.Minimum = New Decimal(New Integer() {2, 0, 0, 0})
|
Me.nudLimit.Minimum = New Decimal(New Integer() {2, 0, 0, 0})
|
||||||
Me.nudLimit.Name = "nudLimit"
|
Me.nudLimit.Name = "nudLimit"
|
||||||
Me.nudLimit.Size = New System.Drawing.Size(40, 20)
|
Me.nudLimit.Size = New System.Drawing.Size(40, 20)
|
||||||
Me.nudLimit.TabIndex = 12
|
Me.nudLimit.TabIndex = 13
|
||||||
Me.nudLimit.Value = New Decimal(New Integer() {2, 0, 0, 0})
|
Me.nudLimit.Value = New Decimal(New Integer() {2, 0, 0, 0})
|
||||||
Me.nudLimit.Visible = False
|
Me.nudLimit.Visible = False
|
||||||
'
|
'
|
||||||
@@ -293,7 +295,7 @@ Partial Class frmGameManager
|
|||||||
Me.chkTimeStamp.Location = New System.Drawing.Point(190, 129)
|
Me.chkTimeStamp.Location = New System.Drawing.Point(190, 129)
|
||||||
Me.chkTimeStamp.Name = "chkTimeStamp"
|
Me.chkTimeStamp.Name = "chkTimeStamp"
|
||||||
Me.chkTimeStamp.Size = New System.Drawing.Size(133, 17)
|
Me.chkTimeStamp.Size = New System.Drawing.Size(133, 17)
|
||||||
Me.chkTimeStamp.TabIndex = 11
|
Me.chkTimeStamp.TabIndex = 12
|
||||||
Me.chkTimeStamp.Text = "Save multiple backups"
|
Me.chkTimeStamp.Text = "Save multiple backups"
|
||||||
Me.chkTimeStamp.UseVisualStyleBackColor = True
|
Me.chkTimeStamp.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
@@ -807,6 +809,16 @@ Partial Class frmGameManager
|
|||||||
Me.cmsDeleteAll.Size = New System.Drawing.Size(114, 22)
|
Me.cmsDeleteAll.Size = New System.Drawing.Size(114, 22)
|
||||||
Me.cmsDeleteAll.Text = "&All Files"
|
Me.cmsDeleteAll.Text = "&All Files"
|
||||||
'
|
'
|
||||||
|
'chkCleanFolder
|
||||||
|
'
|
||||||
|
Me.chkCleanFolder.AutoSize = True
|
||||||
|
Me.chkCleanFolder.Location = New System.Drawing.Point(329, 101)
|
||||||
|
Me.chkCleanFolder.Name = "chkCleanFolder"
|
||||||
|
Me.chkCleanFolder.Size = New System.Drawing.Size(132, 17)
|
||||||
|
Me.chkCleanFolder.TabIndex = 11
|
||||||
|
Me.chkCleanFolder.Text = "Clean folder on restore"
|
||||||
|
Me.chkCleanFolder.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'frmGameManager
|
'frmGameManager
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -928,4 +940,5 @@ Partial Class frmGameManager
|
|||||||
Friend WithEvents cmsDeleteBackup As ContextMenuStrip
|
Friend WithEvents cmsDeleteBackup As ContextMenuStrip
|
||||||
Friend WithEvents cmsDeleteOne As ToolStripMenuItem
|
Friend WithEvents cmsDeleteOne As ToolStripMenuItem
|
||||||
Friend WithEvents cmsDeleteAll As ToolStripMenuItem
|
Friend WithEvents cmsDeleteAll As ToolStripMenuItem
|
||||||
|
Friend WithEvents chkCleanFolder As CheckBox
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -470,6 +470,7 @@ Public Class frmGameManager
|
|||||||
frm.ShowDialog()
|
frm.ShowDialog()
|
||||||
|
|
||||||
txtBox.Text = frm.BuilderString
|
txtBox.Text = frm.BuilderString
|
||||||
|
VerifyCleanFolder()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function FindRestorePath() As Boolean
|
Private Function FindRestorePath() As Boolean
|
||||||
@@ -714,6 +715,7 @@ Public Class frmGameManager
|
|||||||
txtFileType.Text = oApp.FileType
|
txtFileType.Text = oApp.FileType
|
||||||
txtExclude.Text = oApp.ExcludeList
|
txtExclude.Text = oApp.ExcludeList
|
||||||
chkFolderSave.Checked = oApp.FolderSave
|
chkFolderSave.Checked = oApp.FolderSave
|
||||||
|
chkCleanFolder.Checked = oApp.CleanFolder
|
||||||
chkTimeStamp.Checked = oApp.AppendTimeStamp
|
chkTimeStamp.Checked = oApp.AppendTimeStamp
|
||||||
nudLimit.Value = oApp.BackupLimit
|
nudLimit.Value = oApp.BackupLimit
|
||||||
chkEnabled.Checked = oApp.Enabled
|
chkEnabled.Checked = oApp.Enabled
|
||||||
@@ -826,6 +828,7 @@ Public Class frmGameManager
|
|||||||
WipeControls(grpConfig.Controls)
|
WipeControls(grpConfig.Controls)
|
||||||
WipeControls(grpExtra.Controls)
|
WipeControls(grpExtra.Controls)
|
||||||
WipeControls(grpStats.Controls)
|
WipeControls(grpStats.Controls)
|
||||||
|
chkCleanFolder.Enabled = False
|
||||||
pbIcon.Image = Icon_Unknown
|
pbIcon.Image = Icon_Unknown
|
||||||
chkEnabled.Enabled = True
|
chkEnabled.Enabled = True
|
||||||
chkMonitorOnly.Enabled = True
|
chkMonitorOnly.Enabled = True
|
||||||
@@ -982,6 +985,7 @@ Public Class frmGameManager
|
|||||||
Else
|
Else
|
||||||
btnInclude.Enabled = True
|
btnInclude.Enabled = True
|
||||||
End If
|
End If
|
||||||
|
VerifyCleanFolder()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub TimeStampModeChange()
|
Private Sub TimeStampModeChange()
|
||||||
@@ -996,6 +1000,17 @@ Public Class frmGameManager
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub VerifyCleanFolder()
|
||||||
|
If Not bIsLoading Then
|
||||||
|
If chkFolderSave.Checked = True And txtExclude.Text = String.Empty And txtSavePath.Text <> String.Empty Then
|
||||||
|
chkCleanFolder.Enabled = True
|
||||||
|
Else
|
||||||
|
chkCleanFolder.Checked = False
|
||||||
|
chkCleanFolder.Enabled = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub EditApp()
|
Private Sub EditApp()
|
||||||
eCurrentMode = eModes.Edit
|
eCurrentMode = eModes.Edit
|
||||||
ModeChange()
|
ModeChange()
|
||||||
@@ -1062,6 +1077,7 @@ Public Class frmGameManager
|
|||||||
oApp.FileType = txtFileType.Text
|
oApp.FileType = txtFileType.Text
|
||||||
oApp.ExcludeList = txtExclude.Text
|
oApp.ExcludeList = txtExclude.Text
|
||||||
oApp.FolderSave = chkFolderSave.Checked
|
oApp.FolderSave = chkFolderSave.Checked
|
||||||
|
oApp.CleanFolder = chkCleanFolder.Checked
|
||||||
oApp.AppendTimeStamp = chkTimeStamp.Checked
|
oApp.AppendTimeStamp = chkTimeStamp.Checked
|
||||||
oApp.BackupLimit = nudLimit.Value
|
oApp.BackupLimit = nudLimit.Value
|
||||||
oApp.Enabled = chkEnabled.Checked
|
oApp.Enabled = chkEnabled.Checked
|
||||||
@@ -1144,6 +1160,7 @@ Public Class frmGameManager
|
|||||||
eCurrentMode = eModes.View
|
eCurrentMode = eModes.View
|
||||||
FillData()
|
FillData()
|
||||||
ModeChange()
|
ModeChange()
|
||||||
|
VerifyCleanFolder()
|
||||||
ElseIf lstGames.SelectedItems.Count > 1 Then
|
ElseIf lstGames.SelectedItems.Count > 1 Then
|
||||||
eCurrentMode = eModes.MultiSelect
|
eCurrentMode = eModes.MultiSelect
|
||||||
ModeChange()
|
ModeChange()
|
||||||
@@ -1411,6 +1428,7 @@ Public Class frmGameManager
|
|||||||
lblName.Text = frmGameManager_lblName
|
lblName.Text = frmGameManager_lblName
|
||||||
chkTimeStamp.Text = frmGameManager_chkTimeStamp
|
chkTimeStamp.Text = frmGameManager_chkTimeStamp
|
||||||
chkFolderSave.Text = frmGameManager_chkFolderSave
|
chkFolderSave.Text = frmGameManager_chkFolderSave
|
||||||
|
chkCleanFolder.Text = frmGameManager_chkCleanFolder
|
||||||
btnBackup.Text = frmGameManager_btnBackup
|
btnBackup.Text = frmGameManager_btnBackup
|
||||||
btnClose.Text = frmGameManager_btnClose
|
btnClose.Text = frmGameManager_btnClose
|
||||||
btnDelete.Text = frmGameManager_btnDelete
|
btnDelete.Text = frmGameManager_btnDelete
|
||||||
@@ -1607,6 +1625,10 @@ Public Class frmGameManager
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub txtSavePath_TextChanged(sender As Object, e As EventArgs) Handles txtSavePath.TextChanged
|
||||||
|
VerifyCleanFolder()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub tmFilterTimer_Tick(sender As Object, ByVal e As EventArgs) Handles tmFilterTimer.Tick
|
Private Sub tmFilterTimer_Tick(sender As Object, ByVal e As EventArgs) Handles tmFilterTimer.Tick
|
||||||
lstGames.DataSource = Nothing
|
lstGames.DataSource = Nothing
|
||||||
FormatAndFillList()
|
FormatAndFillList()
|
||||||
@@ -1617,5 +1639,4 @@ Public Class frmGameManager
|
|||||||
Private Sub frmGameManager_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
Private Sub frmGameManager_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
||||||
txtQuickFilter.Focus()
|
txtQuickFilter.Focus()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ Public Class frmMain
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If bPathVerified Then
|
If bPathVerified Then
|
||||||
If oRestore.CheckRestorePrereq(oRestoreInfo) Then
|
If oRestore.CheckRestorePrereq(oRestoreInfo, oGame.CleanFolder) Then
|
||||||
oReadyList.Add(oRestoreInfo)
|
oReadyList.Add(oRestoreInfo)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -661,9 +661,9 @@ Public Class frmMain
|
|||||||
|
|
||||||
Private Sub OpenAbout()
|
Private Sub OpenAbout()
|
||||||
Dim iProcessType As System.Reflection.ProcessorArchitecture = System.Reflection.AssemblyName.GetAssemblyName(Application.ExecutablePath()).ProcessorArchitecture
|
Dim iProcessType As System.Reflection.ProcessorArchitecture = System.Reflection.AssemblyName.GetAssemblyName(Application.ExecutablePath()).ProcessorArchitecture
|
||||||
Dim sVersion As String = My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor
|
Dim sVersion As String = My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor & "." & My.Application.Info.Version.Build
|
||||||
Dim sProcessType = [Enum].GetName(GetType(System.Reflection.ProcessorArchitecture), iProcessType)
|
Dim sProcessType = [Enum].GetName(GetType(System.Reflection.ProcessorArchitecture), iProcessType)
|
||||||
Dim sRevision As String = My.Application.Info.Version.Build & "." & My.Application.Info.Version.Revision
|
Dim sRevision As String = My.Application.Info.Version.Revision
|
||||||
Dim sConstCopyright As String = Chr(169) & mgrCommon.FormatString(App_Copyright, Now.Year.ToString)
|
Dim sConstCopyright As String = Chr(169) & mgrCommon.FormatString(App_Copyright, Now.Year.ToString)
|
||||||
|
|
||||||
mgrCommon.ShowMessage(frmMain_About, New String() {sVersion, sProcessType, sRevision, sConstCopyright}, MsgBoxStyle.Information)
|
mgrCommon.ShowMessage(frmMain_About, New String() {sVersion, sProcessType, sRevision, sConstCopyright}, MsgBoxStyle.Information)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ Public Class mgrCommon
|
|||||||
|
|
||||||
Public Shared ReadOnly Property AppVersion As Integer
|
Public Shared ReadOnly Property AppVersion As Integer
|
||||||
Get
|
Get
|
||||||
Return (My.Application.Info.Version.Major * 100) + My.Application.Info.Version.Minor
|
Return (My.Application.Info.Version.Major * 100) + (My.Application.Info.Version.Minor * 10) + My.Application.Info.Version.Build
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ Public Class mgrMonitorList
|
|||||||
oGame.Enabled = CBool(dr("Enabled"))
|
oGame.Enabled = CBool(dr("Enabled"))
|
||||||
oGame.MonitorOnly = CBool(dr("MonitorOnly"))
|
oGame.MonitorOnly = CBool(dr("MonitorOnly"))
|
||||||
oGame.BackupLimit = CInt(dr("BackupLimit"))
|
oGame.BackupLimit = CInt(dr("BackupLimit"))
|
||||||
|
oGame.CleanFolder = CBool(dr("CleanFolder"))
|
||||||
|
|
||||||
Return oGame
|
Return oGame
|
||||||
End Function
|
End Function
|
||||||
@@ -54,6 +55,7 @@ Public Class mgrMonitorList
|
|||||||
hshParams.Add("Enabled", oGame.Enabled)
|
hshParams.Add("Enabled", oGame.Enabled)
|
||||||
hshParams.Add("MonitorOnly", oGame.MonitorOnly)
|
hshParams.Add("MonitorOnly", oGame.MonitorOnly)
|
||||||
hshParams.Add("BackupLimit", oGame.BackupLimit)
|
hshParams.Add("BackupLimit", oGame.BackupLimit)
|
||||||
|
hshParams.Add("CleanFolder", oGame.CleanFolder)
|
||||||
|
|
||||||
Return hshParams
|
Return hshParams
|
||||||
End Function
|
End Function
|
||||||
@@ -94,7 +96,7 @@ Public Class mgrMonitorList
|
|||||||
Dim hshParams As Hashtable
|
Dim hshParams As Hashtable
|
||||||
|
|
||||||
sSQL = "INSERT INTO monitorlist VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, @TimeStamp, "
|
sSQL = "INSERT INTO monitorlist VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, @TimeStamp, "
|
||||||
sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit)"
|
sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder)"
|
||||||
|
|
||||||
'Parameters
|
'Parameters
|
||||||
hshParams = SetCoreParameters(oGame)
|
hshParams = SetCoreParameters(oGame)
|
||||||
@@ -110,7 +112,7 @@ Public Class mgrMonitorList
|
|||||||
|
|
||||||
sSQL = "UPDATE monitorlist SET Name=@Name, Process=@Process, Path=@Path, AbsolutePath=@AbsolutePath, FolderSave=@FolderSave, "
|
sSQL = "UPDATE monitorlist SET Name=@Name, Process=@Process, Path=@Path, AbsolutePath=@AbsolutePath, FolderSave=@FolderSave, "
|
||||||
sSQL &= "FileType=@FileType, TimeStamp=@TimeStamp, ExcludeList=@ExcludeList, ProcessPath=@ProcessPath, Icon=@Icon, "
|
sSQL &= "FileType=@FileType, TimeStamp=@TimeStamp, ExcludeList=@ExcludeList, ProcessPath=@ProcessPath, Icon=@Icon, "
|
||||||
sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit WHERE MonitorID=@ID"
|
sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, CleanFolder=@CleanFolder WHERE MonitorID=@ID"
|
||||||
|
|
||||||
'Parameters
|
'Parameters
|
||||||
hshParams = SetCoreParameters(oGame)
|
hshParams = SetCoreParameters(oGame)
|
||||||
@@ -315,11 +317,11 @@ Public Class mgrMonitorList
|
|||||||
sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)"
|
sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit) "
|
sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder) "
|
||||||
sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
|
sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
|
||||||
sSQL &= sTimeStamp & ", @ExcludeList, " & sGamePath & ", "
|
sSQL &= sTimeStamp & ", @ExcludeList, " & sGamePath & ", "
|
||||||
sSQL &= sIcon & ", @Hours, " & sVersion & ", "
|
sSQL &= sIcon & ", @Hours, " & sVersion & ", "
|
||||||
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, " & sBackupLimit & ");"
|
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, " & sBackupLimit & ",@CleanFolder);"
|
||||||
|
|
||||||
For Each oGame As clsGame In hshGames.Values
|
For Each oGame As clsGame In hshGames.Values
|
||||||
hshParams = New Hashtable
|
hshParams = New Hashtable
|
||||||
@@ -335,6 +337,7 @@ Public Class mgrMonitorList
|
|||||||
hshParams.Add("ExcludeList", oGame.ExcludeList)
|
hshParams.Add("ExcludeList", oGame.ExcludeList)
|
||||||
hshParams.Add("Hours", oGame.Hours)
|
hshParams.Add("Hours", oGame.Hours)
|
||||||
hshParams.Add("MonitorOnly", oGame.MonitorOnly)
|
hshParams.Add("MonitorOnly", oGame.MonitorOnly)
|
||||||
|
hshParams.Add("CleanFolder", oGame.CleanFolder)
|
||||||
|
|
||||||
'Optional Parameters
|
'Optional Parameters
|
||||||
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
|
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
|
||||||
@@ -471,9 +474,9 @@ Public Class mgrMonitorList
|
|||||||
|
|
||||||
Select Case eFilterType
|
Select Case eFilterType
|
||||||
Case frmFilter.eFilterType.NoFilter
|
Case frmFilter.eFilterType.NoFilter
|
||||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit FROM monitorlist ORDER BY Name Asc"
|
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder FROM monitorlist ORDER BY Name Asc"
|
||||||
Case frmFilter.eFilterType.FieldAnd, frmFilter.eFilterType.FieldOr
|
Case frmFilter.eFilterType.FieldAnd, frmFilter.eFilterType.FieldOr
|
||||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit FROM monitorlist"
|
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder FROM monitorlist"
|
||||||
|
|
||||||
If hshStringFilters.Count > 0 Then
|
If hshStringFilters.Count > 0 Then
|
||||||
sSQL &= " WHERE ("
|
sSQL &= " WHERE ("
|
||||||
@@ -495,7 +498,7 @@ Public Class mgrMonitorList
|
|||||||
End If
|
End If
|
||||||
sSQL &= " ORDER BY Name Asc"
|
sSQL &= " ORDER BY Name Asc"
|
||||||
Case frmFilter.eFilterType.AnyTag
|
Case frmFilter.eFilterType.AnyTag
|
||||||
sSQL = "SELECT DISTINCT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit FROM monitorlist "
|
sSQL = "SELECT DISTINCT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder FROM monitorlist "
|
||||||
sSQL &= "NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
sSQL &= "NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||||
|
|
||||||
For Each oTag As clsTag In oTagFilters
|
For Each oTag As clsTag In oTagFilters
|
||||||
@@ -507,7 +510,7 @@ Public Class mgrMonitorList
|
|||||||
sSQL = sSQL.TrimEnd(",")
|
sSQL = sSQL.TrimEnd(",")
|
||||||
sSQL &= ") ORDER BY Name Asc"
|
sSQL &= ") ORDER BY Name Asc"
|
||||||
Case frmFilter.eFilterType.AllTags
|
Case frmFilter.eFilterType.AllTags
|
||||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit FROM monitorlist WHERE MonitorID IN "
|
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder FROM monitorlist WHERE MonitorID IN "
|
||||||
|
|
||||||
For Each oTag As clsTag In oTagFilters
|
For Each oTag As clsTag In oTagFilters
|
||||||
sSQL &= "(SELECT MonitorID FROM gametags WHERE monitorlist.MonitorID = gametags.MonitorID And TagID = @TagID" & iCounter & ")"
|
sSQL &= "(SELECT MonitorID FROM gametags WHERE monitorlist.MonitorID = gametags.MonitorID And TagID = @TagID" & iCounter & ")"
|
||||||
@@ -520,7 +523,7 @@ Public Class mgrMonitorList
|
|||||||
|
|
||||||
sSQL &= " ORDER BY Name Asc"
|
sSQL &= " ORDER BY Name Asc"
|
||||||
Case frmFilter.eFilterType.NoTags
|
Case frmFilter.eFilterType.NoTags
|
||||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit FROM monitorlist WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags) ORDER BY Name Asc"
|
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder FROM monitorlist WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags) ORDER BY Name Asc"
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
Return sSQL
|
Return sSQL
|
||||||
|
|||||||
@@ -161,7 +161,13 @@ Public Class mgrRestore
|
|||||||
Return slRemovedItems
|
Return slRemovedItems
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function CheckRestorePrereq(ByVal oBackupInfo As clsBackup) As Boolean
|
Private Sub CleanFolder(ByVal sExtractPath As String)
|
||||||
|
If Directory.Exists(sExtractPath) Then
|
||||||
|
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Function CheckRestorePrereq(ByVal oBackupInfo As clsBackup, ByVal bCleanFolder As Boolean) As Boolean
|
||||||
Dim sHash As String
|
Dim sHash As String
|
||||||
Dim sExtractPath As String
|
Dim sExtractPath As String
|
||||||
Dim sBackupFile As String = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
|
Dim sBackupFile As String = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
|
||||||
@@ -185,10 +191,15 @@ Public Class mgrRestore
|
|||||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorNoPath, sExtractPath), False, ToolTipIcon.Error, True)
|
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorNoPath, sExtractPath), False, ToolTipIcon.Error, True)
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
If bCleanFolder Then
|
||||||
|
mgrCommon.DeleteDirectory(sExtractPath, True)
|
||||||
|
Directory.CreateDirectory(sExtractPath)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Check file integrity
|
'Check file integrity
|
||||||
If oSettings.CheckSum Then
|
If oSettings.CheckSum Then
|
||||||
If oBackupInfo.CheckSum <> String.Empty Then
|
If oBackupInfo.CheckSum <> String.Empty Then
|
||||||
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
|
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
|
||||||
If sHash <> oBackupInfo.CheckSum Then
|
If sHash <> oBackupInfo.CheckSum Then
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ Public Class mgrSQLite
|
|||||||
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
||||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
||||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
||||||
"BackupLimit INTEGER NOT NULL, PRIMARY KEY(Name, Process));"
|
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));"
|
||||||
|
|
||||||
'Add Tables (Tags)
|
'Add Tables (Tags)
|
||||||
sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); "
|
sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); "
|
||||||
@@ -117,7 +117,7 @@ Public Class mgrSQLite
|
|||||||
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
||||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
||||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
||||||
"BackupLimit INTEGER NOT NULL, PRIMARY KEY(Name, Process));"
|
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));"
|
||||||
|
|
||||||
'Add Tables (Remote Manifest)
|
'Add Tables (Remote Manifest)
|
||||||
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " &
|
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " &
|
||||||
@@ -600,6 +600,30 @@ Public Class mgrSQLite
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'1.01 Upgrade
|
||||||
|
If GetDatabaseVersion() < 101 Then
|
||||||
|
If eDatabase = Database.Local Then
|
||||||
|
'Backup DB before starting
|
||||||
|
BackupDB("v98")
|
||||||
|
|
||||||
|
'Add new field(s)
|
||||||
|
sSQL = "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN NOT NULL DEFAULT 0;"
|
||||||
|
sSQL &= "PRAGMA user_version=101"
|
||||||
|
|
||||||
|
RunParamQuery(sSQL, New Hashtable)
|
||||||
|
End If
|
||||||
|
If eDatabase = Database.Remote Then
|
||||||
|
'Backup DB before starting
|
||||||
|
BackupDB("v98")
|
||||||
|
|
||||||
|
'Add new field(s)
|
||||||
|
sSQL = "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN NOT NULL DEFAULT 0;"
|
||||||
|
sSQL &= "PRAGMA user_version=101"
|
||||||
|
|
||||||
|
RunParamQuery(sSQL, New Hashtable)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function GetDBSize() As Long
|
Public Function GetDBSize() As Long
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.*")>
|
<Assembly: AssemblyVersion("1.0.1.*")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.1.0")>
|
||||||
|
|
||||||
<Assembly: NeutralResourcesLanguageAttribute("en")>
|
<Assembly: NeutralResourcesLanguageAttribute("en")>
|
||||||
Generated
+9
@@ -1293,6 +1293,15 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Clean folder on restore.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmGameManager_chkCleanFolder() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmGameManager_chkCleanFolder", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Monitor this game.
|
''' Looks up a localized string similar to Monitor this game.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
|
|||||||
@@ -1732,4 +1732,7 @@
|
|||||||
<data name="frmGameManager_Unknown" xml:space="preserve">
|
<data name="frmGameManager_Unknown" xml:space="preserve">
|
||||||
<value>Unknown</value>
|
<value>Unknown</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="frmGameManager_chkCleanFolder" xml:space="preserve">
|
||||||
|
<value>Clean folder on restore</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
Reference in New Issue
Block a user