Changes for #160 - Pass 1

This commit is contained in:
MikeMaximus
2018-10-14 11:06:14 -06:00
parent 4e1dc101e5
commit 9dc409415f
15 changed files with 199 additions and 41 deletions
+10
View File
@@ -13,6 +13,7 @@
Private bMonitorOnly As Boolean Private bMonitorOnly As Boolean
Private sComments As String Private sComments As String
Private bIsRegEx As Boolean Private bIsRegEx As Boolean
Private bRecurseSubFolders As Boolean
Private oTags As List(Of Tag) Private oTags As List(Of Tag)
Property ID As String Property ID As String
@@ -141,6 +142,15 @@
End Get End Get
End Property End Property
Property RecurseSubFolders As Boolean
Set(value As Boolean)
bRecurseSubFolders = value
End Set
Get
Return bRecurseSubFolders
End Get
End Property
Property Tags As List(Of Tag) Property Tags As List(Of Tag)
Get Get
Return oTags Return oTags
+16
View File
@@ -21,6 +21,7 @@ Public Class clsGame
Private bMonitorOnly As Boolean = False Private bMonitorOnly As Boolean = False
Private sComments As String = String.Empty Private sComments As String = String.Empty
Private bIsRegEx As Boolean = False Private bIsRegEx As Boolean = False
Private bRecurseSubFolders As Boolean = True
Private oImportTags As New List(Of Tag) Private oImportTags As New List(Of Tag)
Private bImportUpdate As Boolean = False Private bImportUpdate As Boolean = False
@@ -241,6 +242,15 @@ Public Class clsGame
End Set End Set
End Property End Property
Property RecurseSubFolders As Boolean
Get
Return bRecurseSubFolders
End Get
Set(value As Boolean)
bRecurseSubFolders = value
End Set
End Property
Property TruePath As String Property TruePath As String
Set(value As String) Set(value As String)
sPath = value sPath = value
@@ -342,6 +352,9 @@ Public Class clsGame
If IsRegEx <> oGame.IsRegEx Then If IsRegEx <> oGame.IsRegEx Then
Return False Return False
End If End If
If RecurseSubFolders <> oGame.RecurseSubFolders Then
Return False
End If
'Optional Sync Fields 'Optional Sync Fields
If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then
@@ -418,6 +431,9 @@ Public Class clsGame
If IsRegEx <> oGame.IsRegEx Then If IsRegEx <> oGame.IsRegEx Then
Return False Return False
End If End If
If RecurseSubFolders <> oGame.RecurseSubFolders Then
Return False
End If
Return True Return True
End If End If
End Function End Function
+8
View File
@@ -202,6 +202,14 @@ Public Class frmFilter
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField) oValidFields.Add(oField)
'Include Sub Folders
oField = New clsGameFilterField
oField.FieldName = "RecurseSubFolders"
oField.FriendlyFieldName = frmFilter_FieldRecurseSubFolders
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Delete Folder on Restore 'Delete Folder on Restore
oField = New clsGameFilterField oField = New clsGameFilterField
oField.FieldName = "CleanFolder" oField.FieldName = "CleanFolder"
+16 -2
View File
@@ -107,6 +107,7 @@ Partial Class frmGameManager
Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem() Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem()
Me.btnProcesses = New System.Windows.Forms.Button() Me.btnProcesses = New System.Windows.Forms.Button()
Me.ttFullPath = New System.Windows.Forms.ToolTip(Me.components) Me.ttFullPath = New System.Windows.Forms.ToolTip(Me.components)
Me.chkRecurseSubFolders = 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()
@@ -163,6 +164,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.chkRecurseSubFolders)
Me.grpConfig.Controls.Add(Me.btnGameID) Me.grpConfig.Controls.Add(Me.btnGameID)
Me.grpConfig.Controls.Add(Me.chkRegEx) Me.grpConfig.Controls.Add(Me.chkRegEx)
Me.grpConfig.Controls.Add(Me.lblComments) Me.grpConfig.Controls.Add(Me.lblComments)
@@ -860,13 +862,13 @@ Partial Class frmGameManager
'cmsOfficialWindows 'cmsOfficialWindows
' '
Me.cmsOfficialWindows.Name = "cmsOfficialWindows" Me.cmsOfficialWindows.Name = "cmsOfficialWindows"
Me.cmsOfficialWindows.Size = New System.Drawing.Size(180, 22) Me.cmsOfficialWindows.Size = New System.Drawing.Size(132, 22)
Me.cmsOfficialWindows.Text = "&Windows..." Me.cmsOfficialWindows.Text = "&Windows..."
' '
'cmsOfficialLinux 'cmsOfficialLinux
' '
Me.cmsOfficialLinux.Name = "cmsOfficialLinux" Me.cmsOfficialLinux.Name = "cmsOfficialLinux"
Me.cmsOfficialLinux.Size = New System.Drawing.Size(180, 22) Me.cmsOfficialLinux.Size = New System.Drawing.Size(132, 22)
Me.cmsOfficialLinux.Text = "&Linux..." Me.cmsOfficialLinux.Text = "&Linux..."
' '
'cmsFile 'cmsFile
@@ -925,6 +927,17 @@ Partial Class frmGameManager
Me.ttFullPath.InitialDelay = 300 Me.ttFullPath.InitialDelay = 300
Me.ttFullPath.ReshowDelay = 60 Me.ttFullPath.ReshowDelay = 60
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(489, 206)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(15, 14)
Me.chkRecurseSubFolders.TabIndex = 0
Me.chkRecurseSubFolders.TabStop = False
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
Me.chkRecurseSubFolders.Visible = False
'
'frmGameManager 'frmGameManager
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1059,4 +1072,5 @@ Partial Class frmGameManager
Friend WithEvents btnImportBackup As Button Friend WithEvents btnImportBackup As Button
Friend WithEvents cmsOfficialWindows As ToolStripMenuItem Friend WithEvents cmsOfficialWindows As ToolStripMenuItem
Friend WithEvents cmsOfficialLinux As ToolStripMenuItem Friend WithEvents cmsOfficialLinux As ToolStripMenuItem
Friend WithEvents chkRecurseSubFolders As CheckBox
End Class End Class
+6 -1
View File
@@ -585,10 +585,11 @@ Public Class frmGameManager
frm.FormName = sFormText frm.FormName = sFormText
frm.BuilderString = txtBox.Text frm.BuilderString = txtBox.Text
frm.RootFolder = GetBuilderRoot() frm.RootFolder = GetBuilderRoot()
frm.RecurseSubFolders = chkRecurseSubFolders.Checked
frm.ShowDialog() frm.ShowDialog()
txtBox.Text = frm.BuilderString txtBox.Text = frm.BuilderString
chkRecurseSubFolders.Checked = frm.RecurseSubFolders
VerifyCleanFolder() VerifyCleanFolder()
End Sub End Sub
@@ -923,6 +924,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
chkRecurseSubFolders.Checked = oApp.RecurseSubFolders
chkCleanFolder.Checked = oApp.CleanFolder chkCleanFolder.Checked = oApp.CleanFolder
chkTimeStamp.Checked = oApp.AppendTimeStamp chkTimeStamp.Checked = oApp.AppendTimeStamp
nudLimit.Value = oApp.BackupLimit nudLimit.Value = oApp.BackupLimit
@@ -1062,6 +1064,7 @@ Public Class frmGameManager
btnOpenRestorePath.Enabled = False btnOpenRestorePath.Enabled = False
chkEnabled.Checked = True chkEnabled.Checked = True
chkMonitorOnly.Checked = False chkMonitorOnly.Checked = False
chkRecurseSubFolders.Checked = True
btnTags.Enabled = True btnTags.Enabled = True
btnProcesses.Enabled = True btnProcesses.Enabled = True
lblTags.Text = String.Empty lblTags.Text = String.Empty
@@ -1185,6 +1188,7 @@ Public Class frmGameManager
Private Sub FolderSaveModeChange() Private Sub FolderSaveModeChange()
If chkFolderSave.Checked Then If chkFolderSave.Checked Then
btnInclude.Enabled = False btnInclude.Enabled = False
chkRecurseSubFolders.Checked = False
If txtFileType.Text <> String.Empty Then If txtFileType.Text <> String.Empty Then
txtFileType.Text = String.Empty txtFileType.Text = String.Empty
UpdateBuilderButtonLabel(txtFileType.Text, frmGameManager_IncludeShortcut, btnInclude, False) UpdateBuilderButtonLabel(txtFileType.Text, frmGameManager_IncludeShortcut, btnInclude, False)
@@ -1348,6 +1352,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.RecurseSubFolders = chkRecurseSubFolders.Checked
oApp.CleanFolder = chkCleanFolder.Checked oApp.CleanFolder = chkCleanFolder.Checked
oApp.AppendTimeStamp = chkTimeStamp.Checked oApp.AppendTimeStamp = chkTimeStamp.Checked
oApp.BackupLimit = nudLimit.Value oApp.BackupLimit = nudLimit.Value
+28 -14
View File
@@ -37,15 +37,16 @@ Partial Class frmIncludeExclude
Me.cmsAdd = New System.Windows.Forms.ToolStripMenuItem() Me.cmsAdd = New System.Windows.Forms.ToolStripMenuItem()
Me.btnRemove = New System.Windows.Forms.Button() Me.btnRemove = New System.Windows.Forms.Button()
Me.btnAdd = New System.Windows.Forms.Button() Me.btnAdd = New System.Windows.Forms.Button()
Me.grpFileOptions = New System.Windows.Forms.GroupBox() Me.grpOptions = New System.Windows.Forms.GroupBox()
Me.optFileTypes = New System.Windows.Forms.RadioButton() Me.optFileTypes = New System.Windows.Forms.RadioButton()
Me.optIndividualFiles = New System.Windows.Forms.RadioButton() Me.optIndividualFiles = New System.Windows.Forms.RadioButton()
Me.lblItems = New System.Windows.Forms.Label() Me.lblItems = New System.Windows.Forms.Label()
Me.btnRawEdit = New System.Windows.Forms.Button() Me.btnRawEdit = New System.Windows.Forms.Button()
Me.lblSaveFolder = New System.Windows.Forms.Label() Me.lblSaveFolder = New System.Windows.Forms.Label()
Me.ttWarning = New System.Windows.Forms.ToolTip(Me.components) Me.ttWarning = New System.Windows.Forms.ToolTip(Me.components)
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.cmsItems.SuspendLayout() Me.cmsItems.SuspendLayout()
Me.grpFileOptions.SuspendLayout() Me.grpOptions.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'treFiles 'treFiles
@@ -157,16 +158,17 @@ Partial Class frmIncludeExclude
Me.btnAdd.Text = ">" Me.btnAdd.Text = ">"
Me.btnAdd.UseVisualStyleBackColor = True Me.btnAdd.UseVisualStyleBackColor = True
' '
'grpFileOptions 'grpOptions
' '
Me.grpFileOptions.Controls.Add(Me.optFileTypes) Me.grpOptions.Controls.Add(Me.chkRecurseSubFolders)
Me.grpFileOptions.Controls.Add(Me.optIndividualFiles) Me.grpOptions.Controls.Add(Me.optFileTypes)
Me.grpFileOptions.Location = New System.Drawing.Point(12, 403) Me.grpOptions.Controls.Add(Me.optIndividualFiles)
Me.grpFileOptions.Name = "grpFileOptions" Me.grpOptions.Location = New System.Drawing.Point(12, 403)
Me.grpFileOptions.Size = New System.Drawing.Size(194, 46) Me.grpOptions.Name = "grpOptions"
Me.grpFileOptions.TabIndex = 2 Me.grpOptions.Size = New System.Drawing.Size(317, 46)
Me.grpFileOptions.TabStop = False Me.grpOptions.TabIndex = 2
Me.grpFileOptions.Text = "File Options" Me.grpOptions.TabStop = False
Me.grpOptions.Text = "Options"
' '
'optFileTypes 'optFileTypes
' '
@@ -222,6 +224,16 @@ Partial Class frmIncludeExclude
Me.ttWarning.ReshowDelay = 50 Me.ttWarning.ReshowDelay = 50
Me.ttWarning.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Warning Me.ttWarning.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Warning
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(185, 20)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(120, 17)
Me.chkRecurseSubFolders.TabIndex = 2
Me.chkRecurseSubFolders.Text = "Recurse sub-folders"
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
'
'frmIncludeExclude 'frmIncludeExclude
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -230,7 +242,7 @@ Partial Class frmIncludeExclude
Me.Controls.Add(Me.lblSaveFolder) Me.Controls.Add(Me.lblSaveFolder)
Me.Controls.Add(Me.btnRawEdit) Me.Controls.Add(Me.btnRawEdit)
Me.Controls.Add(Me.lblItems) Me.Controls.Add(Me.lblItems)
Me.Controls.Add(Me.grpFileOptions) Me.Controls.Add(Me.grpOptions)
Me.Controls.Add(Me.btnRemove) Me.Controls.Add(Me.btnRemove)
Me.Controls.Add(Me.btnAdd) Me.Controls.Add(Me.btnAdd)
Me.Controls.Add(Me.lstBuilder) Me.Controls.Add(Me.lstBuilder)
@@ -247,7 +259,8 @@ Partial Class frmIncludeExclude
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Include / Exclude Builder" Me.Text = "Include / Exclude Builder"
Me.cmsItems.ResumeLayout(False) Me.cmsItems.ResumeLayout(False)
Me.grpFileOptions.ResumeLayout(False) Me.grpOptions.ResumeLayout(False)
Me.grpOptions.PerformLayout()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
@@ -261,7 +274,7 @@ Partial Class frmIncludeExclude
Friend WithEvents lstBuilder As System.Windows.Forms.ListView Friend WithEvents lstBuilder As System.Windows.Forms.ListView
Friend WithEvents btnRemove As System.Windows.Forms.Button Friend WithEvents btnRemove As System.Windows.Forms.Button
Friend WithEvents btnAdd As System.Windows.Forms.Button Friend WithEvents btnAdd As System.Windows.Forms.Button
Friend WithEvents grpFileOptions As System.Windows.Forms.GroupBox Friend WithEvents grpOptions As System.Windows.Forms.GroupBox
Friend WithEvents optFileTypes As System.Windows.Forms.RadioButton Friend WithEvents optFileTypes As System.Windows.Forms.RadioButton
Friend WithEvents optIndividualFiles As System.Windows.Forms.RadioButton Friend WithEvents optIndividualFiles As System.Windows.Forms.RadioButton
Friend WithEvents lblItems As System.Windows.Forms.Label Friend WithEvents lblItems As System.Windows.Forms.Label
@@ -272,4 +285,5 @@ Partial Class frmIncludeExclude
Friend WithEvents btnRawEdit As Button Friend WithEvents btnRawEdit As Button
Friend WithEvents lblSaveFolder As Label Friend WithEvents lblSaveFolder As Label
Friend WithEvents ttWarning As ToolTip Friend WithEvents ttWarning As ToolTip
Friend WithEvents chkRecurseSubFolders As CheckBox
End Class End Class
+1 -1
View File
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6
CQAAAk1TRnQBSQFMAgEBAwEAAbgBAAG4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CQAAAk1TRnQBSQFMAgEBAwEAAcABAAHAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+14 -1
View File
@@ -6,6 +6,7 @@ Public Class frmIncludeExclude
Dim sFormName As String = String.Empty Dim sFormName As String = String.Empty
Dim sRootFolder As String = String.Empty Dim sRootFolder As String = String.Empty
Dim sBuilderString As String Dim sBuilderString As String
Dim bRecurseSubFolders As Boolean
Public Property BuilderString As String Public Property BuilderString As String
Get Get
@@ -34,6 +35,15 @@ Public Class frmIncludeExclude
End Set End Set
End Property End Property
Public Property RecurseSubFolders As Boolean
Get
Return bRecurseSubFolders
End Get
Set(value As Boolean)
bRecurseSubFolders = value
End Set
End Property
Private Sub BuildBranch(ByVal sDirectory As String, ByVal oNode As TreeNode) Private Sub BuildBranch(ByVal sDirectory As String, ByVal oNode As TreeNode)
Dim sFolders As String() Dim sFolders As String()
Dim sFiles As String() Dim sFiles As String()
@@ -239,9 +249,10 @@ Public Class frmIncludeExclude
lblSaveFolder.Text = frmIncludeExclude_lblSaveFolder lblSaveFolder.Text = frmIncludeExclude_lblSaveFolder
btnRawEdit.Text = frmIncludeExclude_btnRawEdit btnRawEdit.Text = frmIncludeExclude_btnRawEdit
lblItems.Text = mgrCommon.FormatString(frmIncludeExclude_lblItems, FormName) lblItems.Text = mgrCommon.FormatString(frmIncludeExclude_lblItems, FormName)
grpFileOptions.Text = mgrCommon.FormatString(frmIncludeExclude_grpFileOptions, FormName) grpOptions.Text = mgrCommon.FormatString(frmIncludeExclude_grpOptions, FormName)
optFileTypes.Text = frmIncludeExclude_optFileTypes optFileTypes.Text = frmIncludeExclude_optFileTypes
optIndividualFiles.Text = frmIncludeExclude_optIndividualFiles optIndividualFiles.Text = frmIncludeExclude_optIndividualFiles
chkRecurseSubFolders.Text = frmIncludeExclude_chkRecurseSubFolders
btnRemove.Text = frmIncludeExclude_btnRemove btnRemove.Text = frmIncludeExclude_btnRemove
btnAdd.Text = frmIncludeExclude_btnAdd btnAdd.Text = frmIncludeExclude_btnAdd
btnBrowse.Text = frmIncludeExclude_btnBrowse btnBrowse.Text = frmIncludeExclude_btnBrowse
@@ -254,6 +265,7 @@ Public Class frmIncludeExclude
'Set Defaults 'Set Defaults
txtRootFolder.Text = RootFolder txtRootFolder.Text = RootFolder
optFileTypes.Checked = True optFileTypes.Checked = True
chkRecurseSubFolders.Checked = bRecurseSubFolders
If BuilderString <> String.Empty Then ParseBuilderString(BuilderString) If BuilderString <> String.Empty Then ParseBuilderString(BuilderString)
If txtRootFolder.Text <> String.Empty Then BuildTrunk() If txtRootFolder.Text <> String.Empty Then BuildTrunk()
End Sub End Sub
@@ -285,6 +297,7 @@ Public Class frmIncludeExclude
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
BuilderString = CreateNewBuilderString() BuilderString = CreateNewBuilderString()
RecurseSubFolders = chkRecurseSubFolders.Checked
Me.Close() Me.Close()
End Sub End Sub
+7 -2
View File
@@ -128,7 +128,7 @@ Public Class mgrBackup
'Calculate space 'Calculate space
lAvailableSpace = mgrCommon.GetAvailableDiskSpace(oSettings.BackupFolder) lAvailableSpace = mgrCommon.GetAvailableDiskSpace(oSettings.BackupFolder)
lFolderSize = mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray) lFolderSize = mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
'Show Available Space 'Show Available Space
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_AvailableDiskSpace, mgrCommon.FormatDiskSpace(lAvailableSpace)), False, ToolTipIcon.Info, True) RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_AvailableDiskSpace, mgrCommon.FormatDiskSpace(lAvailableSpace)), False, ToolTipIcon.Info, True)
@@ -283,6 +283,7 @@ Public Class mgrBackup
Dim dTimeStamp As DateTime Dim dTimeStamp As DateTime
Dim sTimeStamp As String Dim sTimeStamp As String
Dim sHash As String Dim sHash As String
Dim sArguments As String
For Each oGame In oBackupList For Each oGame In oBackupList
'Init 'Init
@@ -321,6 +322,10 @@ Public Class mgrBackup
BuildFileList(oGame.ExcludeList, mgrPath.ExcludeFileLocation) BuildFileList(oGame.ExcludeList, mgrPath.ExcludeFileLocation)
sArguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """"
If oGame.RecurseSubFolders Then sArguments &= " -r"
Try Try
If Directory.Exists(sSavePath) Then If Directory.Exists(sSavePath) Then
If Settings.Is7zUtilityValid Then If Settings.Is7zUtilityValid Then
@@ -330,7 +335,7 @@ Public Class mgrBackup
File.Delete(sBackupFile) File.Delete(sBackupFile)
End If End If
prs7z.StartInfo.Arguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r" prs7z.StartInfo.Arguments = sArguments
prs7z.StartInfo.FileName = oSettings.Utility7zLocation prs7z.StartInfo.FileName = oSettings.Utility7zLocation
prs7z.StartInfo.WorkingDirectory = sSavePath prs7z.StartInfo.WorkingDirectory = sSavePath
prs7z.StartInfo.UseShellExecute = False prs7z.StartInfo.UseShellExecute = False
+28 -8
View File
@@ -300,7 +300,7 @@ Public Class mgrCommon
Public Shared Function CompareValueToArrayRegEx(ByVal sValue As String, ByVal sValues As String()) As Boolean Public Shared Function CompareValueToArrayRegEx(ByVal sValue As String, ByVal sValues As String()) As Boolean
For Each se As String In sValues For Each se As String In sValues
If Regex.IsMatch(sValue, WildcardToRegex(se)) Then If Regex.IsMatch(sValue, Regex.Escape(WildcardToRegex(se))) Then
Return True Return True
End If End If
Next Next
@@ -318,7 +318,7 @@ Public Class mgrCommon
End Function End Function
'Calculate the current size of a folder 'Calculate the current size of a folder
Public Shared Function GetFolderSize(ByVal sPath As String, ByVal sInclude As String(), ByVal sExclude As String()) As Long Public Shared Function GetFolderSize(ByVal sPath As String, ByVal sInclude As String(), ByVal sExclude As String(), Optional ByVal b7zStyleRecurse As Boolean = True) As Long
Dim oFolder As DirectoryInfo Dim oFolder As DirectoryInfo
Dim bInclude As Boolean Dim bInclude As Boolean
Dim bExclude As Boolean Dim bExclude As Boolean
@@ -351,16 +351,36 @@ Public Class mgrCommon
'Sub Folders 'Sub Folders
For Each di As DirectoryInfo In oFolder.EnumerateDirectories() For Each di As DirectoryInfo In oFolder.EnumerateDirectories()
If Not ((di.Attributes And FileAttributes.ReparsePoint) = FileAttributes.ReparsePoint) Then If Not ((di.Attributes And FileAttributes.ReparsePoint) = FileAttributes.ReparsePoint) Then
If sExclude.Length > 0 Then If b7zStyleRecurse Then
bExclude = CompareValueToArrayRegEx(di.Name, sExclude) If sExclude.Length > 0 Then
bExclude = CompareValueToArrayRegEx(di.FullName, sExclude)
Else
bExclude = False
End If
If Not bExclude Then
lSize += GetFolderSize(di.FullName, sInclude, sExclude)
End If
Else Else
bExclude = False If sInclude.Length > 0 Then
End If bInclude = CompareValueToArrayRegEx(di.FullName, sInclude)
If Not bExclude Then Else
lSize += GetFolderSize(di.FullName, sInclude, sExclude) bInclude = True
End If
If sExclude.Length > 0 Then
bExclude = CompareValueToArrayRegEx(di.FullName, sExclude)
Else
bExclude = False
End If
If bInclude And Not bExclude Then
lSize += GetFolderSize(di.FullName, sInclude, sExclude)
End If
End If End If
End If End If
Next Next
Catch Catch
'Do Nothing 'Do Nothing
End Try End Try
+9 -5
View File
@@ -36,6 +36,7 @@ Public Class mgrMonitorList
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter")) If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments")) If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx")) oGame.IsRegEx = CBool(dr("IsRegEx"))
oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders"))
Return oGame Return oGame
End Function End Function
@@ -64,6 +65,7 @@ Public Class mgrMonitorList
hshParams.Add("Parameter", oGame.Parameter) hshParams.Add("Parameter", oGame.Parameter)
hshParams.Add("Comments", oGame.Comments) hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx) hshParams.Add("IsRegEx", oGame.IsRegEx)
hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders)
Return hshParams Return hshParams
End Function End Function
@@ -99,7 +101,7 @@ Public Class mgrMonitorList
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, @CleanFolder, " sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder, "
sSQL &= "@Parameter, @Comments, @IsRegEx)" sSQL &= "@Parameter, @Comments, @IsRegEx, @RecurseSubFolders)"
'Parameters 'Parameters
hshParams = SetCoreParameters(oGame) hshParams = SetCoreParameters(oGame)
@@ -116,7 +118,7 @@ Public Class mgrMonitorList
sSQL = "UPDATE monitorlist SET MonitorID=@ID, Name=@Name, Process=@Process, Path=@Path, AbsolutePath=@AbsolutePath, FolderSave=@FolderSave, " sSQL = "UPDATE monitorlist SET MonitorID=@ID, 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, " sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, "
sSQL &= "CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments, IsRegEx=@IsRegEx WHERE MonitorID=@QueryID;" sSQL &= "CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments, IsRegEx=@IsRegEx, RecurseSubFolders=@RecurseSubFolders WHERE MonitorID=@QueryID;"
sSQL &= "UPDATE gametags SET MonitorID=@ID WHERE MonitorID=@QueryID;" sSQL &= "UPDATE gametags SET MonitorID=@ID WHERE MonitorID=@QueryID;"
If iSelectDB = mgrSQLite.Database.Local Then If iSelectDB = mgrSQLite.Database.Local Then
@@ -367,11 +369,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, CleanFolder, Parameter, Comments, IsRegEx) " sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders) "
sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, " sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
sSQL &= "@TimeStamp, @ExcludeList, " & sGamePath & ", " sSQL &= "@TimeStamp, @ExcludeList, " & sGamePath & ", "
sSQL &= sIcon & ", @Hours, " & sVersion & ", " sSQL &= sIcon & ", @Hours, " & sVersion & ", "
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, @BackupLimit, @CleanFolder, @Parameter, @Comments, @IsRegEx);" sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, @BackupLimit, @CleanFolder, @Parameter, @Comments, @IsRegEx, @RecurseSubFolders);"
For Each oGame As clsGame In hshGames.Values For Each oGame As clsGame In hshGames.Values
hshParams = New Hashtable hshParams = New Hashtable
@@ -393,6 +395,7 @@ Public Class mgrMonitorList
hshParams.Add("Parameter", oGame.Parameter) hshParams.Add("Parameter", oGame.Parameter)
hshParams.Add("Comments", oGame.Comments) hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx) hshParams.Add("IsRegEx", oGame.IsRegEx)
hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders)
'Optional Parameters 'Optional Parameters
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
@@ -548,7 +551,7 @@ Public Class mgrMonitorList
ByRef hshParams As Hashtable) As String ByRef hshParams As Hashtable) As String
Dim sSQL As String = String.Empty Dim sSQL As String = String.Empty
Dim iCounter As Integer = 0 Dim iCounter As Integer = 0
Dim sBaseSelect As String = "MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx FROM monitorlist" Dim sBaseSelect As String = "MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders FROM monitorlist"
Dim sSort As String = " ORDER BY " & sSortField Dim sSort As String = " ORDER BY " & sSortField
If bSortAsc Then If bSortAsc Then
@@ -745,6 +748,7 @@ Public Class mgrMonitorList
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter")) If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments")) If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx")) oGame.IsRegEx = CBool(dr("IsRegEx"))
oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders"))
oGame.Tags = mgrGameTags.GetTagsByGameForExport(oGame.ID) oGame.Tags = mgrGameTags.GetTagsByGameForExport(oGame.ID)
oList.Add(oGame) oList.Add(oGame)
Next Next
+28 -4
View File
@@ -84,7 +84,7 @@ Public Class mgrSQLite
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, 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, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL);" "BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL);"
'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); "
@@ -130,7 +130,7 @@ Public Class mgrSQLite
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, 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, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL);" "BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL);"
'Add Tables (Remote Manifest) 'Add Tables (Remote Manifest)
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL PRIMARY KEY, MonitorID TEXT NOT NULL, FileName TEXT NOT NULL, " & sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL PRIMARY KEY, MonitorID TEXT NOT NULL, FileName TEXT NOT NULL, " &
@@ -889,9 +889,33 @@ Public Class mgrSQLite
sSQL &= "PRAGMA user_version=115" sSQL &= "PRAGMA user_version=115"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
End If
End If End If
End If
'1.16 Upgrade
If GetDatabaseVersion() < 116 Then
If eDatabase = Database.Local Then
'Backup DB before starting
BackupDB("v115")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN RecurseSubFolders BOOLEAN NOT NULL DEFAULT 1;"
sSQL &= "PRAGMA user_version=116"
RunParamQuery(sSQL, New Hashtable)
End If
If eDatabase = Database.Remote Then
'Backup DB before starting
BackupDB("v115")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN RecurseSubFolders BOOLEAN NOT NULL DEFAULT 1;"
sSQL &= "PRAGMA user_version=116"
RunParamQuery(sSQL, New Hashtable)
End If
End If
End Sub End Sub
Public Function GetDBSize() As Long Public Function GetDBSize() As Long
+1
View File
@@ -41,6 +41,7 @@ Public Class mgrXML
oGame.Parameter = g.Parameter oGame.Parameter = g.Parameter
oGame.Comments = g.Comments oGame.Comments = g.Comments
oGame.IsRegEx = g.IsRegEx oGame.IsRegEx = g.IsRegEx
oGame.RecurseSubFolders = g.RecurseSubFolders
For Each t As Tag In g.Tags For Each t As Tag In g.Tags
oGame.ImportTags.Add(t) oGame.ImportTags.Add(t)
Next Next
+20 -2
View File
@@ -1203,6 +1203,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Recurse Sub-Folders.
'''</summary>
Friend ReadOnly Property frmFilter_FieldRecurseSubFolders() As String
Get
Return ResourceManager.GetString("frmFilter_FieldRecurseSubFolders", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Save Multiple Backups. ''' Looks up a localized string similar to Save Multiple Backups.
'''</summary> '''</summary>
@@ -2715,6 +2724,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Recurse sub-folders.
'''</summary>
Friend ReadOnly Property frmIncludeExclude_chkRecurseSubFolders() As String
Get
Return ResourceManager.GetString("frmIncludeExclude_chkRecurseSubFolders", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Add Custom Item. ''' Looks up a localized string similar to Add Custom Item.
'''</summary> '''</summary>
@@ -2772,9 +2790,9 @@ Namespace My.Resources
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] Options. ''' Looks up a localized string similar to [PARAM] Options.
'''</summary> '''</summary>
Friend ReadOnly Property frmIncludeExclude_grpFileOptions() As String Friend ReadOnly Property frmIncludeExclude_grpOptions() As String
Get Get
Return ResourceManager.GetString("frmIncludeExclude_grpFileOptions", resourceCulture) Return ResourceManager.GetString("frmIncludeExclude_grpOptions", resourceCulture)
End Get End Get
End Property End Property
+7 -1
View File
@@ -967,7 +967,7 @@
<data name="frmIncludeExclude_FormName" xml:space="preserve"> <data name="frmIncludeExclude_FormName" xml:space="preserve">
<value>[PARAM] Builder</value> <value>[PARAM] Builder</value>
</data> </data>
<data name="frmIncludeExclude_grpFileOptions" xml:space="preserve"> <data name="frmIncludeExclude_grpOptions" xml:space="preserve">
<value>[PARAM] Options</value> <value>[PARAM] Options</value>
</data> </data>
<data name="frmIncludeExclude_lblItems" xml:space="preserve"> <data name="frmIncludeExclude_lblItems" xml:space="preserve">
@@ -2269,4 +2269,10 @@
<data name="frmGameManager_ConfirmBackupImportOverwriteSingle" xml:space="preserve"> <data name="frmGameManager_ConfirmBackupImportOverwriteSingle" xml:space="preserve">
<value>Importing this backup file will overwrite the current backup file for [PARAM].[BR][BR]Do you want to continue? This will close the form.</value> <value>Importing this backup file will overwrite the current backup file for [PARAM].[BR][BR]Do you want to continue? This will close the form.</value>
</data> </data>
<data name="frmFilter_FieldRecurseSubFolders" xml:space="preserve">
<value>Recurse Sub-Folders</value>
</data>
<data name="frmIncludeExclude_chkRecurseSubFolders" xml:space="preserve">
<value>Recurse sub-folders</value>
</data>
</root> </root>