Changes for issue #98

This commit is contained in:
MikeMaximus
2018-02-05 12:50:13 -06:00
parent 7d4514c677
commit 66d280df49
12 changed files with 223 additions and 84 deletions
+10
View File
@@ -9,6 +9,7 @@
Private sExcludeList As String
Private bMonitorOnly As Boolean
Private sComments As String
Private bIsRegEx As Boolean
Private oTags As List(Of Tag)
Property Name As String
@@ -101,6 +102,15 @@
End Get
End Property
Property IsRegEx As Boolean
Set(value As Boolean)
bIsRegEx = value
End Set
Get
Return bIsRegEx
End Get
End Property
Property Tags As List(Of Tag)
Get
Return oTags
+13
View File
@@ -20,6 +20,7 @@ Public Class clsGame
Private bEnabled As Boolean = True
Private bMonitorOnly As Boolean = False
Private sComments As String = String.Empty
Private bIsRegEx As Boolean = False
Private bDuplicate As Boolean = False
Private bTempGame As Boolean = False
Private oImportTags As New List(Of Tag)
@@ -230,6 +231,15 @@ Public Class clsGame
End Set
End Property
Property IsRegEx As Boolean
Get
Return bIsRegEx
End Get
Set(value As Boolean)
bIsRegEx = value
End Set
End Property
Property Duplicate As Boolean
Get
Return bDuplicate
@@ -337,6 +347,9 @@ Public Class clsGame
If Comments <> oGame.Comments Then
Return False
End If
If IsRegEx <> oGame.IsRegEx Then
Return False
End If
'Optional Sync Fields
If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then
+8
View File
@@ -223,6 +223,14 @@ Public Class frmFilter
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'IsRegEx
oField = New clsGameFilterField
oField.FieldName = "IsRegEx"
oField.FriendlyFieldName = frmFilter_FieldIsRegEx
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Game Path
oField = New clsGameFilterField
oField.FieldName = "ProcessPath"
+68 -55
View File
@@ -28,6 +28,7 @@ Partial Class frmGameManager
Me.btnBackup = New System.Windows.Forms.Button()
Me.btnClose = New System.Windows.Forms.Button()
Me.grpConfig = New System.Windows.Forms.GroupBox()
Me.chkRegEx = New System.Windows.Forms.CheckBox()
Me.lblComments = New System.Windows.Forms.Label()
Me.txtComments = New System.Windows.Forms.TextBox()
Me.txtParameter = New System.Windows.Forms.TextBox()
@@ -115,7 +116,7 @@ Partial Class frmGameManager
'
Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnAdd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnAdd.Location = New System.Drawing.Point(12, 586)
Me.btnAdd.Location = New System.Drawing.Point(12, 626)
Me.btnAdd.Name = "btnAdd"
Me.btnAdd.Size = New System.Drawing.Size(30, 23)
Me.btnAdd.TabIndex = 4
@@ -126,7 +127,7 @@ Partial Class frmGameManager
'
Me.btnDelete.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnDelete.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnDelete.Location = New System.Drawing.Point(48, 586)
Me.btnDelete.Location = New System.Drawing.Point(48, 626)
Me.btnDelete.Name = "btnDelete"
Me.btnDelete.Size = New System.Drawing.Size(30, 23)
Me.btnDelete.TabIndex = 5
@@ -136,7 +137,7 @@ Partial Class frmGameManager
'btnBackup
'
Me.btnBackup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnBackup.Location = New System.Drawing.Point(616, 586)
Me.btnBackup.Location = New System.Drawing.Point(616, 626)
Me.btnBackup.Name = "btnBackup"
Me.btnBackup.Size = New System.Drawing.Size(75, 23)
Me.btnBackup.TabIndex = 18
@@ -146,7 +147,7 @@ Partial Class frmGameManager
'btnClose
'
Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnClose.Location = New System.Drawing.Point(697, 586)
Me.btnClose.Location = New System.Drawing.Point(697, 626)
Me.btnClose.Name = "btnClose"
Me.btnClose.Size = New System.Drawing.Size(75, 23)
Me.btnClose.TabIndex = 19
@@ -156,6 +157,7 @@ Partial Class frmGameManager
'grpConfig
'
Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.grpConfig.Controls.Add(Me.chkRegEx)
Me.grpConfig.Controls.Add(Me.lblComments)
Me.grpConfig.Controls.Add(Me.txtComments)
Me.grpConfig.Controls.Add(Me.txtParameter)
@@ -181,15 +183,25 @@ Partial Class frmGameManager
Me.grpConfig.Enabled = False
Me.grpConfig.Location = New System.Drawing.Point(247, 12)
Me.grpConfig.Name = "grpConfig"
Me.grpConfig.Size = New System.Drawing.Size(525, 215)
Me.grpConfig.Size = New System.Drawing.Size(525, 258)
Me.grpConfig.TabIndex = 8
Me.grpConfig.TabStop = False
Me.grpConfig.Text = "Configuration"
'
'chkRegEx
'
Me.chkRegEx.AutoSize = True
Me.chkRegEx.Location = New System.Drawing.Point(402, 47)
Me.chkRegEx.Name = "chkRegEx"
Me.chkRegEx.Size = New System.Drawing.Size(117, 17)
Me.chkRegEx.TabIndex = 5
Me.chkRegEx.Text = "Regular Expression"
Me.chkRegEx.UseVisualStyleBackColor = True
'
'lblComments
'
Me.lblComments.AutoSize = True
Me.lblComments.Location = New System.Drawing.Point(7, 157)
Me.lblComments.Location = New System.Drawing.Point(7, 181)
Me.lblComments.Name = "lblComments"
Me.lblComments.Size = New System.Drawing.Size(59, 13)
Me.lblComments.TabIndex = 18
@@ -197,24 +209,24 @@ Partial Class frmGameManager
'
'txtComments
'
Me.txtComments.Location = New System.Drawing.Point(70, 154)
Me.txtComments.Location = New System.Drawing.Point(70, 181)
Me.txtComments.Multiline = True
Me.txtComments.Name = "txtComments"
Me.txtComments.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtComments.Size = New System.Drawing.Size(413, 54)
Me.txtComments.TabIndex = 17
Me.txtComments.Size = New System.Drawing.Size(413, 71)
Me.txtComments.TabIndex = 19
'
'txtParameter
'
Me.txtParameter.Location = New System.Drawing.Point(333, 45)
Me.txtParameter.Location = New System.Drawing.Point(70, 71)
Me.txtParameter.Name = "txtParameter"
Me.txtParameter.Size = New System.Drawing.Size(150, 20)
Me.txtParameter.Size = New System.Drawing.Size(414, 20)
Me.txtParameter.TabIndex = 7
'
'lblParameter
'
Me.lblParameter.AutoSize = True
Me.lblParameter.Location = New System.Drawing.Point(269, 48)
Me.lblParameter.Location = New System.Drawing.Point(7, 74)
Me.lblParameter.Name = "lblParameter"
Me.lblParameter.Size = New System.Drawing.Size(58, 13)
Me.lblParameter.TabIndex = 6
@@ -223,48 +235,48 @@ Partial Class frmGameManager
'chkCleanFolder
'
Me.chkCleanFolder.AutoSize = True
Me.chkCleanFolder.Location = New System.Drawing.Point(329, 101)
Me.chkCleanFolder.Location = New System.Drawing.Point(330, 127)
Me.chkCleanFolder.Name = "chkCleanFolder"
Me.chkCleanFolder.Size = New System.Drawing.Size(136, 17)
Me.chkCleanFolder.TabIndex = 13
Me.chkCleanFolder.TabIndex = 14
Me.chkCleanFolder.Text = "Delete folder on restore"
Me.chkCleanFolder.UseVisualStyleBackColor = True
'
'lblLimit
'
Me.lblLimit.AutoSize = True
Me.lblLimit.Location = New System.Drawing.Point(375, 130)
Me.lblLimit.Location = New System.Drawing.Point(376, 160)
Me.lblLimit.Name = "lblLimit"
Me.lblLimit.Size = New System.Drawing.Size(68, 13)
Me.lblLimit.TabIndex = 16
Me.lblLimit.TabIndex = 17
Me.lblLimit.Text = "Backup Limit"
Me.lblLimit.Visible = False
'
'nudLimit
'
Me.nudLimit.Location = New System.Drawing.Point(329, 128)
Me.nudLimit.Location = New System.Drawing.Point(330, 155)
Me.nudLimit.Minimum = New Decimal(New Integer() {2, 0, 0, 0})
Me.nudLimit.Name = "nudLimit"
Me.nudLimit.Size = New System.Drawing.Size(40, 20)
Me.nudLimit.TabIndex = 15
Me.nudLimit.TabIndex = 16
Me.nudLimit.Value = New Decimal(New Integer() {2, 0, 0, 0})
Me.nudLimit.Visible = False
'
'btnExclude
'
Me.btnExclude.Location = New System.Drawing.Point(9, 125)
Me.btnExclude.Location = New System.Drawing.Point(10, 152)
Me.btnExclude.Name = "btnExclude"
Me.btnExclude.Size = New System.Drawing.Size(175, 23)
Me.btnExclude.TabIndex = 11
Me.btnExclude.TabIndex = 12
Me.btnExclude.Text = "E&xclude Items..."
Me.btnExclude.UseVisualStyleBackColor = True
'
'btnInclude
'
Me.btnInclude.Location = New System.Drawing.Point(9, 97)
Me.btnInclude.Location = New System.Drawing.Point(10, 123)
Me.btnInclude.Name = "btnInclude"
Me.btnInclude.Size = New System.Drawing.Size(175, 23)
Me.btnInclude.TabIndex = 10
Me.btnInclude.TabIndex = 11
Me.btnInclude.Text = "In&clude Items..."
Me.btnInclude.UseVisualStyleBackColor = True
'
@@ -280,29 +292,29 @@ Partial Class frmGameManager
'
'btnSavePathBrowse
'
Me.btnSavePathBrowse.Location = New System.Drawing.Point(489, 71)
Me.btnSavePathBrowse.Location = New System.Drawing.Point(490, 97)
Me.btnSavePathBrowse.Name = "btnSavePathBrowse"
Me.btnSavePathBrowse.Size = New System.Drawing.Size(30, 20)
Me.btnSavePathBrowse.TabIndex = 9
Me.btnSavePathBrowse.TabIndex = 10
Me.btnSavePathBrowse.Text = "..."
Me.btnSavePathBrowse.UseVisualStyleBackColor = True
'
'btnProcessBrowse
'
Me.btnProcessBrowse.Location = New System.Drawing.Point(225, 44)
Me.btnProcessBrowse.Location = New System.Drawing.Point(366, 43)
Me.btnProcessBrowse.Name = "btnProcessBrowse"
Me.btnProcessBrowse.Size = New System.Drawing.Size(30, 20)
Me.btnProcessBrowse.TabIndex = 5
Me.btnProcessBrowse.TabIndex = 4
Me.btnProcessBrowse.Text = "..."
Me.btnProcessBrowse.UseVisualStyleBackColor = True
'
'lblSavePath
'
Me.lblSavePath.AutoSize = True
Me.lblSavePath.Location = New System.Drawing.Point(6, 74)
Me.lblSavePath.Location = New System.Drawing.Point(7, 100)
Me.lblSavePath.Name = "lblSavePath"
Me.lblSavePath.Size = New System.Drawing.Size(60, 13)
Me.lblSavePath.TabIndex = 2
Me.lblSavePath.TabIndex = 8
Me.lblSavePath.Text = "Save Path:"
'
'lblProcess
@@ -311,7 +323,7 @@ Partial Class frmGameManager
Me.lblProcess.Location = New System.Drawing.Point(6, 48)
Me.lblProcess.Name = "lblProcess"
Me.lblProcess.Size = New System.Drawing.Size(48, 13)
Me.lblProcess.TabIndex = 1
Me.lblProcess.TabIndex = 2
Me.lblProcess.Text = "Process:"
'
'lblName
@@ -325,7 +337,7 @@ Partial Class frmGameManager
'
'txtExclude
'
Me.txtExclude.Location = New System.Drawing.Point(489, 122)
Me.txtExclude.Location = New System.Drawing.Point(489, 154)
Me.txtExclude.Name = "txtExclude"
Me.txtExclude.Size = New System.Drawing.Size(30, 20)
Me.txtExclude.TabIndex = 0
@@ -334,7 +346,7 @@ Partial Class frmGameManager
'
'txtFileType
'
Me.txtFileType.Location = New System.Drawing.Point(489, 99)
Me.txtFileType.Location = New System.Drawing.Point(489, 125)
Me.txtFileType.Name = "txtFileType"
Me.txtFileType.Size = New System.Drawing.Size(30, 20)
Me.txtFileType.TabIndex = 0
@@ -344,48 +356,48 @@ Partial Class frmGameManager
'chkTimeStamp
'
Me.chkTimeStamp.AutoSize = True
Me.chkTimeStamp.Location = New System.Drawing.Point(190, 129)
Me.chkTimeStamp.Location = New System.Drawing.Point(191, 156)
Me.chkTimeStamp.Name = "chkTimeStamp"
Me.chkTimeStamp.Size = New System.Drawing.Size(133, 17)
Me.chkTimeStamp.TabIndex = 14
Me.chkTimeStamp.TabIndex = 15
Me.chkTimeStamp.Text = "Save multiple backups"
Me.chkTimeStamp.UseVisualStyleBackColor = True
'
'chkFolderSave
'
Me.chkFolderSave.AutoSize = True
Me.chkFolderSave.Location = New System.Drawing.Point(190, 101)
Me.chkFolderSave.Location = New System.Drawing.Point(191, 127)
Me.chkFolderSave.Name = "chkFolderSave"
Me.chkFolderSave.Size = New System.Drawing.Size(109, 17)
Me.chkFolderSave.TabIndex = 12
Me.chkFolderSave.TabIndex = 13
Me.chkFolderSave.Text = "Save entire folder"
Me.chkFolderSave.UseVisualStyleBackColor = True
'
'txtSavePath
'
Me.txtSavePath.Location = New System.Drawing.Point(69, 71)
Me.txtSavePath.Location = New System.Drawing.Point(70, 97)
Me.txtSavePath.Name = "txtSavePath"
Me.txtSavePath.Size = New System.Drawing.Size(414, 20)
Me.txtSavePath.TabIndex = 8
Me.txtSavePath.TabIndex = 9
'
'txtProcess
'
Me.txtProcess.Location = New System.Drawing.Point(69, 45)
Me.txtProcess.Location = New System.Drawing.Point(70, 44)
Me.txtProcess.Name = "txtProcess"
Me.txtProcess.Size = New System.Drawing.Size(150, 20)
Me.txtProcess.TabIndex = 4
Me.txtProcess.Size = New System.Drawing.Size(290, 20)
Me.txtProcess.TabIndex = 3
'
'txtName
'
Me.txtName.Location = New System.Drawing.Point(69, 19)
Me.txtName.Location = New System.Drawing.Point(70, 19)
Me.txtName.Name = "txtName"
Me.txtName.Size = New System.Drawing.Size(414, 20)
Me.txtName.TabIndex = 3
Me.txtName.TabIndex = 1
'
'chkMonitorOnly
'
Me.chkMonitorOnly.AutoSize = True
Me.chkMonitorOnly.Location = New System.Drawing.Point(363, 398)
Me.chkMonitorOnly.Location = New System.Drawing.Point(363, 441)
Me.chkMonitorOnly.Name = "chkMonitorOnly"
Me.chkMonitorOnly.Size = New System.Drawing.Size(83, 17)
Me.chkMonitorOnly.TabIndex = 11
@@ -409,7 +421,7 @@ Partial Class frmGameManager
Me.grpExtra.Controls.Add(Me.txtAppPath)
Me.grpExtra.Controls.Add(Me.nudHours)
Me.grpExtra.Controls.Add(Me.lblHours)
Me.grpExtra.Location = New System.Drawing.Point(248, 233)
Me.grpExtra.Location = New System.Drawing.Point(248, 276)
Me.grpExtra.Name = "grpExtra"
Me.grpExtra.Size = New System.Drawing.Size(525, 155)
Me.grpExtra.TabIndex = 9
@@ -540,7 +552,7 @@ Partial Class frmGameManager
'
'btnTags
'
Me.btnTags.Location = New System.Drawing.Point(535, 394)
Me.btnTags.Location = New System.Drawing.Point(535, 437)
Me.btnTags.Name = "btnTags"
Me.btnTags.Size = New System.Drawing.Size(75, 23)
Me.btnTags.TabIndex = 12
@@ -561,7 +573,7 @@ Partial Class frmGameManager
Me.grpStats.Controls.Add(Me.lblBackupFile)
Me.grpStats.Controls.Add(Me.lblRemote)
Me.grpStats.Controls.Add(Me.lblLocalData)
Me.grpStats.Location = New System.Drawing.Point(247, 423)
Me.grpStats.Location = New System.Drawing.Point(248, 466)
Me.grpStats.Name = "grpStats"
Me.grpStats.Size = New System.Drawing.Size(525, 154)
Me.grpStats.TabIndex = 15
@@ -676,7 +688,7 @@ Partial Class frmGameManager
'btnMarkAsRestored
'
Me.btnMarkAsRestored.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnMarkAsRestored.Location = New System.Drawing.Point(429, 586)
Me.btnMarkAsRestored.Location = New System.Drawing.Point(429, 626)
Me.btnMarkAsRestored.Name = "btnMarkAsRestored"
Me.btnMarkAsRestored.Size = New System.Drawing.Size(100, 23)
Me.btnMarkAsRestored.TabIndex = 16
@@ -686,7 +698,7 @@ Partial Class frmGameManager
'btnRestore
'
Me.btnRestore.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnRestore.Location = New System.Drawing.Point(535, 586)
Me.btnRestore.Location = New System.Drawing.Point(535, 626)
Me.btnRestore.Name = "btnRestore"
Me.btnRestore.Size = New System.Drawing.Size(75, 23)
Me.btnRestore.TabIndex = 17
@@ -696,7 +708,7 @@ Partial Class frmGameManager
'btnSave
'
Me.btnSave.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnSave.Location = New System.Drawing.Point(616, 394)
Me.btnSave.Location = New System.Drawing.Point(616, 437)
Me.btnSave.Name = "btnSave"
Me.btnSave.Size = New System.Drawing.Size(75, 23)
Me.btnSave.TabIndex = 13
@@ -709,13 +721,13 @@ Partial Class frmGameManager
Me.lstGames.Location = New System.Drawing.Point(12, 160)
Me.lstGames.Name = "lstGames"
Me.lstGames.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
Me.lstGames.Size = New System.Drawing.Size(228, 420)
Me.lstGames.Size = New System.Drawing.Size(228, 459)
Me.lstGames.TabIndex = 3
'
'btnCancel
'
Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnCancel.Location = New System.Drawing.Point(697, 394)
Me.btnCancel.Location = New System.Drawing.Point(697, 437)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
Me.btnCancel.TabIndex = 14
@@ -725,7 +737,7 @@ Partial Class frmGameManager
'chkEnabled
'
Me.chkEnabled.AutoSize = True
Me.chkEnabled.Location = New System.Drawing.Point(248, 398)
Me.chkEnabled.Location = New System.Drawing.Point(248, 441)
Me.chkEnabled.Name = "chkEnabled"
Me.chkEnabled.Size = New System.Drawing.Size(109, 17)
Me.chkEnabled.TabIndex = 10
@@ -791,7 +803,7 @@ Partial Class frmGameManager
'
'btnImport
'
Me.btnImport.Location = New System.Drawing.Point(84, 586)
Me.btnImport.Location = New System.Drawing.Point(84, 626)
Me.btnImport.Name = "btnImport"
Me.btnImport.Size = New System.Drawing.Size(75, 23)
Me.btnImport.TabIndex = 6
@@ -800,7 +812,7 @@ Partial Class frmGameManager
'
'btnExport
'
Me.btnExport.Location = New System.Drawing.Point(165, 586)
Me.btnExport.Location = New System.Drawing.Point(165, 626)
Me.btnExport.Name = "btnExport"
Me.btnExport.Size = New System.Drawing.Size(75, 23)
Me.btnExport.TabIndex = 7
@@ -865,7 +877,7 @@ Partial Class frmGameManager
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(784, 621)
Me.ClientSize = New System.Drawing.Size(784, 661)
Me.Controls.Add(Me.lblQuickFilter)
Me.Controls.Add(Me.txtQuickFilter)
Me.Controls.Add(Me.btnExport)
@@ -987,4 +999,5 @@ Partial Class frmGameManager
Friend WithEvents lblParameter As Label
Friend WithEvents lblComments As Label
Friend WithEvents txtComments As TextBox
Friend WithEvents chkRegEx As CheckBox
End Class
+4
View File
@@ -757,6 +757,7 @@ Public Class frmGameManager
txtID.Text = oApp.ID
txtName.Text = oApp.Name
txtProcess.Text = oApp.TrueProcess
chkRegEx.Checked = oApp.IsRegEx
txtParameter.Text = oApp.Parameter
txtSavePath.Text = oApp.Path
txtFileType.Text = oApp.FileType
@@ -1180,6 +1181,7 @@ Public Class frmGameManager
oApp.AppendTimeStamp = chkTimeStamp.Checked
oApp.BackupLimit = nudLimit.Value
oApp.Comments = txtComments.Text
oApp.IsRegEx = chkRegEx.Checked
oApp.Enabled = chkEnabled.Checked
oApp.MonitorOnly = chkMonitorOnly.Checked
oApp.ProcessPath = txtAppPath.Text
@@ -1553,6 +1555,8 @@ Public Class frmGameManager
lblLimit.Text = frmGameManager_lblLimit
cmsDeleteOne.Text = frmGameManager_cmsDeleteOne
cmsDeleteAll.Text = frmGameManager_cmsDeleteAll
lblComments.Text = frmGameManager_lblComments
chkRegEx.Text = frmGameManager_chkRegEx
'Init Filter Timer
tmFilterTimer = New Timer()
+11 -5
View File
@@ -34,6 +34,7 @@ Public Class mgrMonitorList
oGame.CleanFolder = CBool(dr("CleanFolder"))
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx"))
Return oGame
End Function
@@ -61,6 +62,7 @@ Public Class mgrMonitorList
hshParams.Add("CleanFolder", oGame.CleanFolder)
hshParams.Add("Parameter", oGame.Parameter)
hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx)
Return hshParams
End Function
@@ -101,7 +103,8 @@ Public Class mgrMonitorList
Dim hshParams As Hashtable
sSQL = "INSERT INTO monitorlist VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, @TimeStamp, "
sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder, @Parameter, @Comments)"
sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder, "
sSQL &= "@Parameter, @Comments, @IsRegEx)"
'Parameters
hshParams = SetCoreParameters(oGame)
@@ -117,7 +120,8 @@ Public Class mgrMonitorList
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 &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments WHERE MonitorID=@ID"
sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, "
sSQL &= "CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments, IsRegEx=@IsRegEx WHERE MonitorID=@ID"
'Parameters
hshParams = SetCoreParameters(oGame)
@@ -365,11 +369,11 @@ Public Class mgrMonitorList
sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)"
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) "
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 &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
sSQL &= sTimeStamp & ", @ExcludeList, " & sGamePath & ", "
sSQL &= sIcon & ", @Hours, " & sVersion & ", "
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, " & sBackupLimit & ", @CleanFolder, @Parameter, @Comments);"
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, " & sBackupLimit & ", @CleanFolder, @Parameter, @Comments, @IsRegEx);"
For Each oGame As clsGame In hshGames.Values
hshParams = New Hashtable
@@ -388,6 +392,7 @@ Public Class mgrMonitorList
hshParams.Add("CleanFolder", oGame.CleanFolder)
hshParams.Add("Parameter", oGame.Parameter)
hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx)
'Optional Parameters
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
@@ -527,7 +532,7 @@ Public Class mgrMonitorList
ByRef hshParams As Hashtable) As String
Dim sSQL As String = String.Empty
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 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 FROM monitorlist"
Dim sSort As String = " ORDER BY " & sSortField
If bSortAsc Then
@@ -722,6 +727,7 @@ Public Class mgrMonitorList
oGame.MonitorOnly = CBool(dr("MonitorOnly"))
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx"))
oGame.Tags = mgrGameTags.GetTagsByGameForExport(sID)
oList.Add(oGame)
Next
+43 -20
View File
@@ -1,5 +1,6 @@
Imports System.IO
Imports System.Management
Imports System.Text.RegularExpressions
Public Class mgrProcesses
@@ -162,6 +163,27 @@ Public Class mgrProcesses
End Try
End Function
Private Function IsMatch(ByRef oGame As clsGame, ByRef sProcessCheck As String) As Boolean
Dim oProcessRegEx As Regex
If oGame.IsRegEx Then
Try
oProcessRegEx = New Regex(oGame.ProcessName)
If oProcessRegEx.IsMatch(sProcessCheck) Then
Return True
End If
Catch
'Ignore malformed regular expressions
End Try
Else
If oGame.ProcessName = sProcessCheck Then
Return True
End If
End If
Return False
End Function
Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef iErrorCode As Integer, ByVal bDebugMode As Boolean) As Boolean
Dim prsList() As Process = Process.GetProcesses
Dim sProcessCheck As String = String.Empty
@@ -198,32 +220,33 @@ Public Class mgrProcesses
End Try
'Detection Pass 1
If hshScanList.ContainsKey(sProcessCheck) Then
prsFoundProcess = prsCurrent
oGame = DirectCast(hshScanList.Item(sProcessCheck), clsGame).ShallowCopy
bPass = True
For Each oCurrentGame As clsGame In hshScanList.Values
If IsMatch(oCurrentGame, sProcessCheck) Then
prsFoundProcess = prsCurrent
oGame = oCurrentGame.ShallowCopy
bPass = True
If mgrCommon.IsUnix Then
GetUnixCommand(prsCurrent)
Else
GetWindowsCommand(prsCurrent)
End If
If mgrCommon.IsUnix Then
GetUnixCommand(prsCurrent)
Else
GetWindowsCommand(prsCurrent)
End If
If oGame.Duplicate = True Then
If HandleDuplicates(hshScanList) Then
If oGame.Duplicate = True Then
If HandleDuplicates(hshScanList) Then
bDuplicates = False
oDuplicateGames.Clear()
End If
Else
bDuplicates = False
oDuplicateGames.Clear()
End If
Else
bDuplicates = False
oDuplicateGames.Clear()
If Duplicate And DuplicateList.Count = 0 Then bPass = False
If oGame.Parameter <> String.Empty And Not Duplicate And Not FullCommand.Contains(oGame.Parameter) Then bPass = False
End If
If Duplicate And DuplicateList.Count = 0 Then bPass = False
If oGame.Parameter <> String.Empty And Not Duplicate And Not FullCommand.Contains(oGame.Parameter) Then bPass = False
End If
Next
'Detection Pass 2
If bPass Then
+27 -2
View File
@@ -83,7 +83,7 @@ Public Class mgrSQLite
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, " &
"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, PRIMARY KEY(Name, Process));"
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));"
'Add Tables (Tags)
sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); "
@@ -123,7 +123,7 @@ Public Class mgrSQLite
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, " &
"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, PRIMARY KEY(Name, Process));"
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));"
'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, " &
@@ -734,6 +734,31 @@ Public Class mgrSQLite
End If
End If
'1.08 Upgrade
If GetDatabaseVersion() < 108 Then
If eDatabase = Database.Local Then
'Backup DB before starting
BackupDB("v105")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN NOT NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=108"
RunParamQuery(sSQL, New Hashtable)
End If
If eDatabase = Database.Remote Then
'Backup DB before starting
BackupDB("v105")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN NOT NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=108"
RunParamQuery(sSQL, New Hashtable)
End If
End If
End Sub
Public Function GetDBSize() As Long
+1
View File
@@ -35,6 +35,7 @@ Public Class mgrXML
oGame.MonitorOnly = g.MonitorOnly
oGame.Parameter = g.Parameter
oGame.Comments = g.Comments
oGame.IsRegEx = g.IsRegEx
For Each t As Tag In g.Tags
oGame.ImportTags.Add(t)
Next
+2 -2
View File
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.7.*")>
<Assembly: AssemblyFileVersion("1.0.7.0")>
<Assembly: AssemblyVersion("1.0.8.*")>
<Assembly: AssemblyFileVersion("1.0.8.0")>
<Assembly: NeutralResourcesLanguageAttribute("en")>
+27
View File
@@ -1104,6 +1104,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Regular Expression.
'''</summary>
Friend ReadOnly Property frmFilter_FieldIsRegEx() As String
Get
Return ResourceManager.GetString("frmFilter_FieldIsRegEx", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Monitor Only.
'''</summary>
@@ -1617,6 +1626,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Regular Expression.
'''</summary>
Friend ReadOnly Property frmGameManager_chkRegEx() As String
Get
Return ResourceManager.GetString("frmGameManager_chkRegEx", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Save multiple backups.
'''</summary>
@@ -2094,6 +2112,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Comments:.
'''</summary>
Friend ReadOnly Property frmGameManager_lblComments() As String
Get
Return ResourceManager.GetString("frmGameManager_lblComments", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Company:.
'''</summary>
+9
View File
@@ -2008,4 +2008,13 @@
<data name="frmSessions_btnExport" xml:space="preserve">
<value>&amp;Export Grid</value>
</data>
<data name="frmFilter_FieldIsRegEx" xml:space="preserve">
<value>Regular Expression</value>
</data>
<data name="frmGameManager_chkRegEx" xml:space="preserve">
<value>Regular Expression</value>
</data>
<data name="frmGameManager_lblComments" xml:space="preserve">
<value>Comments:</value>
</data>
</root>