@@ -7,6 +7,7 @@
|
|||||||
Private bFolderSave As Boolean
|
Private bFolderSave As Boolean
|
||||||
Private sFileType As String
|
Private sFileType As String
|
||||||
Private sExcludeList As String
|
Private sExcludeList As String
|
||||||
|
Private bMonitorOnly As Boolean
|
||||||
Private oTags As List(Of Tag)
|
Private oTags As List(Of Tag)
|
||||||
|
|
||||||
Property Name As String
|
Property Name As String
|
||||||
@@ -81,6 +82,15 @@
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Property MonitorOnly As Boolean
|
||||||
|
Set(value As Boolean)
|
||||||
|
bMonitorOnly = value
|
||||||
|
End Set
|
||||||
|
Get
|
||||||
|
Return bMonitorOnly
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
Property Tags As List(Of Tag)
|
Property Tags As List(Of Tag)
|
||||||
Get
|
Get
|
||||||
Return oTags
|
Return oTags
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Public Class Tag
|
<Serializable()>
|
||||||
|
Public Class Tag
|
||||||
Private sTagName As String
|
Private sTagName As String
|
||||||
|
|
||||||
Property Name As String
|
Property Name As String
|
||||||
|
|||||||
+10
-1
@@ -1,4 +1,5 @@
|
|||||||
Public Class clsGame
|
<Serializable()>
|
||||||
|
Public Class clsGame
|
||||||
Private sGameID As String = Guid.NewGuid.ToString
|
Private sGameID As String = Guid.NewGuid.ToString
|
||||||
Private sGameName As String = String.Empty
|
Private sGameName As String = String.Empty
|
||||||
Private sProcessName As String = String.Empty
|
Private sProcessName As String = String.Empty
|
||||||
@@ -405,4 +406,12 @@
|
|||||||
Return sProcessName
|
Return sProcessName
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Shared Function SetSyncField(ByVal eSyncFields As eOptionalSyncFields, ByVal eSyncField As eOptionalSyncFields) As eOptionalSyncFields
|
||||||
|
Return eSyncFields Or eSyncField
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Shared Function RemoveSyncField(ByVal eSyncFields As eOptionalSyncFields, ByVal eSyncField As eOptionalSyncFields) As eOptionalSyncFields
|
||||||
|
Return eSyncFields And (Not eSyncField)
|
||||||
|
End Function
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
Public Class clsGameFilter
|
||||||
|
|
||||||
|
Private sID As String
|
||||||
|
Private oField As clsGameFilterField
|
||||||
|
Private oData As Object
|
||||||
|
Private eNumericOperator As eNumericOperators = eNumericOperators.Equals
|
||||||
|
|
||||||
|
Public Enum eNumericOperators
|
||||||
|
Equals = 1
|
||||||
|
Greater = 2
|
||||||
|
Lesser = 3
|
||||||
|
GreaterEquals = 4
|
||||||
|
LesserEquals = 5
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Property ID As String
|
||||||
|
Get
|
||||||
|
Return sID
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
sID = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property Field As clsGameFilterField
|
||||||
|
Get
|
||||||
|
Return oField
|
||||||
|
End Get
|
||||||
|
Set(value As clsGameFilterField)
|
||||||
|
oField = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property Data As Object
|
||||||
|
Get
|
||||||
|
Return oData
|
||||||
|
End Get
|
||||||
|
Set(value As Object)
|
||||||
|
oData = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property NumericOperator As eNumericOperators
|
||||||
|
Get
|
||||||
|
Return eNumericOperator
|
||||||
|
End Get
|
||||||
|
Set(value As eNumericOperators)
|
||||||
|
eNumericOperator = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property NumericOperatorAsString As String
|
||||||
|
Get
|
||||||
|
Select Case eNumericOperator
|
||||||
|
Case eNumericOperators.Equals
|
||||||
|
Return "="
|
||||||
|
Case eNumericOperators.Greater
|
||||||
|
Return ">"
|
||||||
|
Case eNumericOperators.GreaterEquals
|
||||||
|
Return ">="
|
||||||
|
Case eNumericOperators.Lesser
|
||||||
|
Return "<"
|
||||||
|
Case eNumericOperators.LesserEquals
|
||||||
|
Return "<="
|
||||||
|
Case Else
|
||||||
|
Return String.Empty
|
||||||
|
End Select
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
Public Class clsGameFilterField
|
||||||
|
|
||||||
|
Public Enum eDataType As Integer
|
||||||
|
fString = 1
|
||||||
|
fNumeric = 2
|
||||||
|
fBool = 3
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
<Flags()> Public Enum eFieldStatus
|
||||||
|
None = 0
|
||||||
|
ValidFilter = 1
|
||||||
|
ValidSort = 2
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Private sFieldName As String
|
||||||
|
Private sFriendlyFieldName As String
|
||||||
|
Private eType As eDataType
|
||||||
|
Private eStatus As eFieldStatus
|
||||||
|
|
||||||
|
Public Property FieldName As String
|
||||||
|
Get
|
||||||
|
Return sFieldName
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
sFieldName = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property FriendlyFieldName As String
|
||||||
|
Get
|
||||||
|
Return sFriendlyFieldName
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
sFriendlyFieldName = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property Type As eDataType
|
||||||
|
Get
|
||||||
|
Return eType
|
||||||
|
End Get
|
||||||
|
Set(value As eDataType)
|
||||||
|
eType = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'This is a flag property - Setting a value will toggle that flag on and off.
|
||||||
|
Public Property Status As eFieldStatus
|
||||||
|
Get
|
||||||
|
Return eStatus
|
||||||
|
End Get
|
||||||
|
Set(value As eFieldStatus)
|
||||||
|
If (eStatus And value) = value Then
|
||||||
|
eStatus = RemoveFieldStatus(value)
|
||||||
|
Else
|
||||||
|
eStatus = SetFieldStatus(value)
|
||||||
|
End If
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private Function SetFieldStatus(ByVal eFlag As eFieldStatus) As eFieldStatus
|
||||||
|
Return eStatus Or eFlag
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function RemoveFieldStatus(ByVal eFlag As eFieldStatus) As eFieldStatus
|
||||||
|
Return eStatus And (Not eFlag)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function CheckStatus(ByVal eFlag As eFieldStatus) As Boolean
|
||||||
|
If (eStatus And eFlag) = eFlag Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
Imports GBM.My.Resources
|
Imports GBM.My.Resources
|
||||||
|
Imports System.IO
|
||||||
|
|
||||||
Public Class frmAdvancedImport
|
Public Class frmAdvancedImport
|
||||||
|
|
||||||
Private hshImportData As Hashtable
|
Private hshImportData As Hashtable
|
||||||
Private hshFinalData As New Hashtable
|
Private hshFinalData As New Hashtable
|
||||||
Private bSelectAll As Boolean = False
|
Private bSelectAll As Boolean = True
|
||||||
Private bIsLoading As Boolean = False
|
Private bIsLoading As Boolean = False
|
||||||
Private iCurrentSort As Integer = 0
|
Private iCurrentSort As Integer = 0
|
||||||
Private WithEvents tmFilterTimer As Timer
|
Private WithEvents tmFilterTimer As Timer
|
||||||
@@ -44,7 +45,7 @@ Public Class frmAdvancedImport
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadData(Optional ByVal sFilter As String = "")
|
Private Sub LoadData(Optional ByVal sFilter As String = "", Optional ByVal bAutoDetect As Boolean = False)
|
||||||
Dim oApp As clsGame
|
Dim oApp As clsGame
|
||||||
Dim oListViewItem As ListViewItem
|
Dim oListViewItem As ListViewItem
|
||||||
Dim sTags As String
|
Dim sTags As String
|
||||||
@@ -79,6 +80,19 @@ Public Class frmAdvancedImport
|
|||||||
oListViewItem.Checked = False
|
oListViewItem.Checked = False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If bAutoDetect Then
|
||||||
|
If oApp.AbsolutePath Then
|
||||||
|
If Directory.Exists(oApp.Path) Then
|
||||||
|
oListViewItem.Checked = True
|
||||||
|
SaveChecked(oListViewItem)
|
||||||
|
Else
|
||||||
|
oListViewItem.Checked = False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
oListViewItem.Checked = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If sFilter = String.Empty Then
|
If sFilter = String.Empty Then
|
||||||
bAddItem = True
|
bAddItem = True
|
||||||
Else
|
Else
|
||||||
@@ -142,8 +156,7 @@ Public Class frmAdvancedImport
|
|||||||
Private Sub frmAdvancedImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub frmAdvancedImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
bIsLoading = True
|
bIsLoading = True
|
||||||
SetForm()
|
SetForm()
|
||||||
LoadData()
|
LoadData(String.Empty, True)
|
||||||
SelectToggle()
|
|
||||||
bIsLoading = False
|
bIsLoading = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -184,6 +197,7 @@ Public Class frmAdvancedImport
|
|||||||
tmFilterTimer.Stop()
|
tmFilterTimer.Stop()
|
||||||
tmFilterTimer.Enabled = False
|
tmFilterTimer.Enabled = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
' Column Sorter
|
' Column Sorter
|
||||||
|
|||||||
Generated
+282
-124
@@ -22,8 +22,6 @@ Partial Class frmFilter
|
|||||||
'Do not modify it using the code editor.
|
'Do not modify it using the code editor.
|
||||||
<System.Diagnostics.DebuggerStepThrough()> _
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
Private Sub InitializeComponent()
|
Private Sub InitializeComponent()
|
||||||
Me.optGameInfo = New System.Windows.Forms.RadioButton()
|
|
||||||
Me.optTag = New System.Windows.Forms.RadioButton()
|
|
||||||
Me.grpTagFilter = New System.Windows.Forms.GroupBox()
|
Me.grpTagFilter = New System.Windows.Forms.GroupBox()
|
||||||
Me.grpTagOptions = New System.Windows.Forms.GroupBox()
|
Me.grpTagOptions = New System.Windows.Forms.GroupBox()
|
||||||
Me.optAll = New System.Windows.Forms.RadioButton()
|
Me.optAll = New System.Windows.Forms.RadioButton()
|
||||||
@@ -32,45 +30,42 @@ Partial Class frmFilter
|
|||||||
Me.lblTags = New System.Windows.Forms.Label()
|
Me.lblTags = New System.Windows.Forms.Label()
|
||||||
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.lstFilter = New System.Windows.Forms.ListBox()
|
Me.lstTagFilter = New System.Windows.Forms.ListBox()
|
||||||
Me.lstTags = New System.Windows.Forms.ListBox()
|
Me.lstTags = New System.Windows.Forms.ListBox()
|
||||||
Me.btnOK = New System.Windows.Forms.Button()
|
Me.btnOK = New System.Windows.Forms.Button()
|
||||||
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
|
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
|
||||||
Me.grpGameInfoOptions = New System.Windows.Forms.GroupBox()
|
Me.cboBoolFilter = New System.Windows.Forms.ComboBox()
|
||||||
|
Me.numFilter = New System.Windows.Forms.NumericUpDown()
|
||||||
|
Me.cboNumericOps = New System.Windows.Forms.ComboBox()
|
||||||
|
Me.lblCurrentFilters = New System.Windows.Forms.Label()
|
||||||
|
Me.lblFilterData = New System.Windows.Forms.Label()
|
||||||
|
Me.lblFields = New System.Windows.Forms.Label()
|
||||||
|
Me.btnRemoveFilter = New System.Windows.Forms.Button()
|
||||||
|
Me.lstFilter = New System.Windows.Forms.ListBox()
|
||||||
|
Me.btnAddFilter = New System.Windows.Forms.Button()
|
||||||
|
Me.cboFilterField = New System.Windows.Forms.ComboBox()
|
||||||
|
Me.grpFilterType = New System.Windows.Forms.GroupBox()
|
||||||
Me.optOr = New System.Windows.Forms.RadioButton()
|
Me.optOr = New System.Windows.Forms.RadioButton()
|
||||||
Me.optAnd = New System.Windows.Forms.RadioButton()
|
Me.optAnd = New System.Windows.Forms.RadioButton()
|
||||||
Me.txtCompany = New System.Windows.Forms.TextBox()
|
Me.txtStringFilter = New System.Windows.Forms.TextBox()
|
||||||
Me.lblCompany = New System.Windows.Forms.Label()
|
Me.grpSorting = New System.Windows.Forms.GroupBox()
|
||||||
Me.txtProcess = New System.Windows.Forms.TextBox()
|
Me.grpSortOptions = New System.Windows.Forms.GroupBox()
|
||||||
Me.lblProcess = New System.Windows.Forms.Label()
|
Me.optSortAsc = New System.Windows.Forms.RadioButton()
|
||||||
Me.lblName = New System.Windows.Forms.Label()
|
Me.optSortDesc = New System.Windows.Forms.RadioButton()
|
||||||
Me.txtName = New System.Windows.Forms.TextBox()
|
Me.lblSortFields = New System.Windows.Forms.Label()
|
||||||
|
Me.cboSortField = New System.Windows.Forms.ComboBox()
|
||||||
|
Me.chkTag = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.chkGameInfo = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
Me.grpTagFilter.SuspendLayout()
|
Me.grpTagFilter.SuspendLayout()
|
||||||
Me.grpTagOptions.SuspendLayout()
|
Me.grpTagOptions.SuspendLayout()
|
||||||
Me.grpGameFilter.SuspendLayout()
|
Me.grpGameFilter.SuspendLayout()
|
||||||
Me.grpGameInfoOptions.SuspendLayout()
|
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.grpFilterType.SuspendLayout()
|
||||||
|
Me.grpSorting.SuspendLayout()
|
||||||
|
Me.grpSortOptions.SuspendLayout()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'optGameInfo
|
|
||||||
'
|
|
||||||
Me.optGameInfo.AutoSize = True
|
|
||||||
Me.optGameInfo.Location = New System.Drawing.Point(12, 12)
|
|
||||||
Me.optGameInfo.Name = "optGameInfo"
|
|
||||||
Me.optGameInfo.Size = New System.Drawing.Size(108, 17)
|
|
||||||
Me.optGameInfo.TabIndex = 0
|
|
||||||
Me.optGameInfo.Text = "Game Information"
|
|
||||||
Me.optGameInfo.UseVisualStyleBackColor = True
|
|
||||||
'
|
|
||||||
'optTag
|
|
||||||
'
|
|
||||||
Me.optTag.AutoSize = True
|
|
||||||
Me.optTag.Location = New System.Drawing.Point(12, 190)
|
|
||||||
Me.optTag.Name = "optTag"
|
|
||||||
Me.optTag.Size = New System.Drawing.Size(44, 17)
|
|
||||||
Me.optTag.TabIndex = 2
|
|
||||||
Me.optTag.Text = "Tag"
|
|
||||||
Me.optTag.UseVisualStyleBackColor = True
|
|
||||||
'
|
|
||||||
'grpTagFilter
|
'grpTagFilter
|
||||||
'
|
'
|
||||||
Me.grpTagFilter.Controls.Add(Me.grpTagOptions)
|
Me.grpTagFilter.Controls.Add(Me.grpTagOptions)
|
||||||
@@ -78,11 +73,11 @@ Partial Class frmFilter
|
|||||||
Me.grpTagFilter.Controls.Add(Me.lblTags)
|
Me.grpTagFilter.Controls.Add(Me.lblTags)
|
||||||
Me.grpTagFilter.Controls.Add(Me.btnRemove)
|
Me.grpTagFilter.Controls.Add(Me.btnRemove)
|
||||||
Me.grpTagFilter.Controls.Add(Me.btnAdd)
|
Me.grpTagFilter.Controls.Add(Me.btnAdd)
|
||||||
Me.grpTagFilter.Controls.Add(Me.lstFilter)
|
Me.grpTagFilter.Controls.Add(Me.lstTagFilter)
|
||||||
Me.grpTagFilter.Controls.Add(Me.lstTags)
|
Me.grpTagFilter.Controls.Add(Me.lstTags)
|
||||||
Me.grpTagFilter.Location = New System.Drawing.Point(12, 213)
|
Me.grpTagFilter.Location = New System.Drawing.Point(12, 236)
|
||||||
Me.grpTagFilter.Name = "grpTagFilter"
|
Me.grpTagFilter.Name = "grpTagFilter"
|
||||||
Me.grpTagFilter.Size = New System.Drawing.Size(385, 265)
|
Me.grpTagFilter.Size = New System.Drawing.Size(385, 198)
|
||||||
Me.grpTagFilter.TabIndex = 3
|
Me.grpTagFilter.TabIndex = 3
|
||||||
Me.grpTagFilter.TabStop = False
|
Me.grpTagFilter.TabStop = False
|
||||||
'
|
'
|
||||||
@@ -90,7 +85,7 @@ Partial Class frmFilter
|
|||||||
'
|
'
|
||||||
Me.grpTagOptions.Controls.Add(Me.optAll)
|
Me.grpTagOptions.Controls.Add(Me.optAll)
|
||||||
Me.grpTagOptions.Controls.Add(Me.optAny)
|
Me.grpTagOptions.Controls.Add(Me.optAny)
|
||||||
Me.grpTagOptions.Location = New System.Drawing.Point(6, 211)
|
Me.grpTagOptions.Location = New System.Drawing.Point(6, 146)
|
||||||
Me.grpTagOptions.Name = "grpTagOptions"
|
Me.grpTagOptions.Name = "grpTagOptions"
|
||||||
Me.grpTagOptions.Size = New System.Drawing.Size(150, 46)
|
Me.grpTagOptions.Size = New System.Drawing.Size(150, 46)
|
||||||
Me.grpTagOptions.TabIndex = 6
|
Me.grpTagOptions.TabIndex = 6
|
||||||
@@ -138,7 +133,7 @@ Partial Class frmFilter
|
|||||||
'
|
'
|
||||||
'btnRemove
|
'btnRemove
|
||||||
'
|
'
|
||||||
Me.btnRemove.Location = New System.Drawing.Point(162, 122)
|
Me.btnRemove.Location = New System.Drawing.Point(162, 88)
|
||||||
Me.btnRemove.Name = "btnRemove"
|
Me.btnRemove.Name = "btnRemove"
|
||||||
Me.btnRemove.Size = New System.Drawing.Size(61, 23)
|
Me.btnRemove.Size = New System.Drawing.Size(61, 23)
|
||||||
Me.btnRemove.TabIndex = 3
|
Me.btnRemove.TabIndex = 3
|
||||||
@@ -147,22 +142,22 @@ Partial Class frmFilter
|
|||||||
'
|
'
|
||||||
'btnAdd
|
'btnAdd
|
||||||
'
|
'
|
||||||
Me.btnAdd.Location = New System.Drawing.Point(162, 93)
|
Me.btnAdd.Location = New System.Drawing.Point(162, 59)
|
||||||
Me.btnAdd.Name = "btnAdd"
|
Me.btnAdd.Name = "btnAdd"
|
||||||
Me.btnAdd.Size = New System.Drawing.Size(61, 23)
|
Me.btnAdd.Size = New System.Drawing.Size(61, 23)
|
||||||
Me.btnAdd.TabIndex = 2
|
Me.btnAdd.TabIndex = 2
|
||||||
Me.btnAdd.Text = ">"
|
Me.btnAdd.Text = ">"
|
||||||
Me.btnAdd.UseVisualStyleBackColor = True
|
Me.btnAdd.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'lstFilter
|
'lstTagFilter
|
||||||
'
|
'
|
||||||
Me.lstFilter.FormattingEnabled = True
|
Me.lstTagFilter.FormattingEnabled = True
|
||||||
Me.lstFilter.Location = New System.Drawing.Point(229, 32)
|
Me.lstTagFilter.Location = New System.Drawing.Point(229, 32)
|
||||||
Me.lstFilter.Name = "lstFilter"
|
Me.lstTagFilter.Name = "lstTagFilter"
|
||||||
Me.lstFilter.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
Me.lstTagFilter.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||||
Me.lstFilter.Size = New System.Drawing.Size(150, 173)
|
Me.lstTagFilter.Size = New System.Drawing.Size(150, 108)
|
||||||
Me.lstFilter.Sorted = True
|
Me.lstTagFilter.Sorted = True
|
||||||
Me.lstFilter.TabIndex = 5
|
Me.lstTagFilter.TabIndex = 5
|
||||||
'
|
'
|
||||||
'lstTags
|
'lstTags
|
||||||
'
|
'
|
||||||
@@ -170,124 +165,270 @@ Partial Class frmFilter
|
|||||||
Me.lstTags.Location = New System.Drawing.Point(6, 32)
|
Me.lstTags.Location = New System.Drawing.Point(6, 32)
|
||||||
Me.lstTags.Name = "lstTags"
|
Me.lstTags.Name = "lstTags"
|
||||||
Me.lstTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
Me.lstTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||||
Me.lstTags.Size = New System.Drawing.Size(150, 173)
|
Me.lstTags.Size = New System.Drawing.Size(150, 108)
|
||||||
Me.lstTags.Sorted = True
|
Me.lstTags.Sorted = True
|
||||||
Me.lstTags.TabIndex = 1
|
Me.lstTags.TabIndex = 1
|
||||||
'
|
'
|
||||||
'btnOK
|
'btnOK
|
||||||
'
|
'
|
||||||
Me.btnOK.Location = New System.Drawing.Point(322, 484)
|
Me.btnOK.Location = New System.Drawing.Point(322, 526)
|
||||||
Me.btnOK.Name = "btnOK"
|
Me.btnOK.Name = "btnOK"
|
||||||
Me.btnOK.Size = New System.Drawing.Size(75, 23)
|
Me.btnOK.Size = New System.Drawing.Size(75, 23)
|
||||||
Me.btnOK.TabIndex = 4
|
Me.btnOK.TabIndex = 6
|
||||||
Me.btnOK.Text = "&OK"
|
Me.btnOK.Text = "&OK"
|
||||||
Me.btnOK.UseVisualStyleBackColor = True
|
Me.btnOK.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'grpGameFilter
|
'grpGameFilter
|
||||||
'
|
'
|
||||||
Me.grpGameFilter.Controls.Add(Me.grpGameInfoOptions)
|
Me.grpGameFilter.Controls.Add(Me.cboBoolFilter)
|
||||||
Me.grpGameFilter.Controls.Add(Me.txtCompany)
|
Me.grpGameFilter.Controls.Add(Me.numFilter)
|
||||||
Me.grpGameFilter.Controls.Add(Me.lblCompany)
|
Me.grpGameFilter.Controls.Add(Me.cboNumericOps)
|
||||||
Me.grpGameFilter.Controls.Add(Me.txtProcess)
|
Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters)
|
||||||
Me.grpGameFilter.Controls.Add(Me.lblProcess)
|
Me.grpGameFilter.Controls.Add(Me.lblFilterData)
|
||||||
Me.grpGameFilter.Controls.Add(Me.lblName)
|
Me.grpGameFilter.Controls.Add(Me.lblFields)
|
||||||
Me.grpGameFilter.Controls.Add(Me.txtName)
|
Me.grpGameFilter.Controls.Add(Me.btnRemoveFilter)
|
||||||
|
Me.grpGameFilter.Controls.Add(Me.lstFilter)
|
||||||
|
Me.grpGameFilter.Controls.Add(Me.btnAddFilter)
|
||||||
|
Me.grpGameFilter.Controls.Add(Me.cboFilterField)
|
||||||
|
Me.grpGameFilter.Controls.Add(Me.grpFilterType)
|
||||||
|
Me.grpGameFilter.Controls.Add(Me.txtStringFilter)
|
||||||
Me.grpGameFilter.Location = New System.Drawing.Point(12, 35)
|
Me.grpGameFilter.Location = New System.Drawing.Point(12, 35)
|
||||||
Me.grpGameFilter.Name = "grpGameFilter"
|
Me.grpGameFilter.Name = "grpGameFilter"
|
||||||
Me.grpGameFilter.Size = New System.Drawing.Size(385, 150)
|
Me.grpGameFilter.Size = New System.Drawing.Size(385, 172)
|
||||||
Me.grpGameFilter.TabIndex = 1
|
Me.grpGameFilter.TabIndex = 1
|
||||||
Me.grpGameFilter.TabStop = False
|
Me.grpGameFilter.TabStop = False
|
||||||
'
|
'
|
||||||
'grpGameInfoOptions
|
'cboBoolFilter
|
||||||
'
|
'
|
||||||
Me.grpGameInfoOptions.Controls.Add(Me.optOr)
|
Me.cboBoolFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||||
Me.grpGameInfoOptions.Controls.Add(Me.optAnd)
|
Me.cboBoolFilter.FormattingEnabled = True
|
||||||
Me.grpGameInfoOptions.Location = New System.Drawing.Point(14, 97)
|
Me.cboBoolFilter.Location = New System.Drawing.Point(162, 36)
|
||||||
Me.grpGameInfoOptions.Name = "grpGameInfoOptions"
|
Me.cboBoolFilter.Name = "cboBoolFilter"
|
||||||
Me.grpGameInfoOptions.Size = New System.Drawing.Size(106, 46)
|
Me.cboBoolFilter.Size = New System.Drawing.Size(136, 21)
|
||||||
Me.grpGameInfoOptions.TabIndex = 6
|
Me.cboBoolFilter.TabIndex = 3
|
||||||
Me.grpGameInfoOptions.TabStop = False
|
'
|
||||||
Me.grpGameInfoOptions.Text = "Options"
|
'numFilter
|
||||||
|
'
|
||||||
|
Me.numFilter.DecimalPlaces = 1
|
||||||
|
Me.numFilter.Location = New System.Drawing.Point(233, 37)
|
||||||
|
Me.numFilter.Maximum = New Decimal(New Integer() {1000000, 0, 0, 0})
|
||||||
|
Me.numFilter.Name = "numFilter"
|
||||||
|
Me.numFilter.Size = New System.Drawing.Size(65, 20)
|
||||||
|
Me.numFilter.TabIndex = 4
|
||||||
|
'
|
||||||
|
'cboNumericOps
|
||||||
|
'
|
||||||
|
Me.cboNumericOps.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||||
|
Me.cboNumericOps.FormattingEnabled = True
|
||||||
|
Me.cboNumericOps.Location = New System.Drawing.Point(162, 36)
|
||||||
|
Me.cboNumericOps.Name = "cboNumericOps"
|
||||||
|
Me.cboNumericOps.Size = New System.Drawing.Size(65, 21)
|
||||||
|
Me.cboNumericOps.TabIndex = 3
|
||||||
|
'
|
||||||
|
'lblCurrentFilters
|
||||||
|
'
|
||||||
|
Me.lblCurrentFilters.AutoSize = True
|
||||||
|
Me.lblCurrentFilters.Location = New System.Drawing.Point(94, 65)
|
||||||
|
Me.lblCurrentFilters.Name = "lblCurrentFilters"
|
||||||
|
Me.lblCurrentFilters.Size = New System.Drawing.Size(71, 13)
|
||||||
|
Me.lblCurrentFilters.TabIndex = 6
|
||||||
|
Me.lblCurrentFilters.Text = "Current Filters"
|
||||||
|
'
|
||||||
|
'lblFilterData
|
||||||
|
'
|
||||||
|
Me.lblFilterData.AutoSize = True
|
||||||
|
Me.lblFilterData.Location = New System.Drawing.Point(214, 20)
|
||||||
|
Me.lblFilterData.Name = "lblFilterData"
|
||||||
|
Me.lblFilterData.Size = New System.Drawing.Size(32, 13)
|
||||||
|
Me.lblFilterData.TabIndex = 2
|
||||||
|
Me.lblFilterData.Text = "Filter "
|
||||||
|
'
|
||||||
|
'lblFields
|
||||||
|
'
|
||||||
|
Me.lblFields.AutoSize = True
|
||||||
|
Me.lblFields.Location = New System.Drawing.Point(41, 20)
|
||||||
|
Me.lblFields.Name = "lblFields"
|
||||||
|
Me.lblFields.Size = New System.Drawing.Size(80, 13)
|
||||||
|
Me.lblFields.TabIndex = 0
|
||||||
|
Me.lblFields.Text = "Available Fields"
|
||||||
|
'
|
||||||
|
'btnRemoveFilter
|
||||||
|
'
|
||||||
|
Me.btnRemoveFilter.Location = New System.Drawing.Point(259, 140)
|
||||||
|
Me.btnRemoveFilter.Name = "btnRemoveFilter"
|
||||||
|
Me.btnRemoveFilter.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.btnRemoveFilter.TabIndex = 9
|
||||||
|
Me.btnRemoveFilter.Text = "Remove"
|
||||||
|
Me.btnRemoveFilter.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'lstFilter
|
||||||
|
'
|
||||||
|
Me.lstFilter.FormattingEnabled = True
|
||||||
|
Me.lstFilter.Location = New System.Drawing.Point(6, 81)
|
||||||
|
Me.lstFilter.Name = "lstFilter"
|
||||||
|
Me.lstFilter.Size = New System.Drawing.Size(247, 82)
|
||||||
|
Me.lstFilter.TabIndex = 7
|
||||||
|
'
|
||||||
|
'btnAddFilter
|
||||||
|
'
|
||||||
|
Me.btnAddFilter.Location = New System.Drawing.Point(304, 34)
|
||||||
|
Me.btnAddFilter.Name = "btnAddFilter"
|
||||||
|
Me.btnAddFilter.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.btnAddFilter.TabIndex = 5
|
||||||
|
Me.btnAddFilter.Text = "Add"
|
||||||
|
Me.btnAddFilter.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'cboFilterField
|
||||||
|
'
|
||||||
|
Me.cboFilterField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||||
|
Me.cboFilterField.FormattingEnabled = True
|
||||||
|
Me.cboFilterField.Location = New System.Drawing.Point(6, 36)
|
||||||
|
Me.cboFilterField.Name = "cboFilterField"
|
||||||
|
Me.cboFilterField.Size = New System.Drawing.Size(150, 21)
|
||||||
|
Me.cboFilterField.TabIndex = 1
|
||||||
|
'
|
||||||
|
'grpFilterType
|
||||||
|
'
|
||||||
|
Me.grpFilterType.Controls.Add(Me.optOr)
|
||||||
|
Me.grpFilterType.Controls.Add(Me.optAnd)
|
||||||
|
Me.grpFilterType.Location = New System.Drawing.Point(259, 81)
|
||||||
|
Me.grpFilterType.Name = "grpFilterType"
|
||||||
|
Me.grpFilterType.Size = New System.Drawing.Size(105, 46)
|
||||||
|
Me.grpFilterType.TabIndex = 8
|
||||||
|
Me.grpFilterType.TabStop = False
|
||||||
|
Me.grpFilterType.Text = "Filter Type"
|
||||||
'
|
'
|
||||||
'optOr
|
'optOr
|
||||||
'
|
'
|
||||||
Me.optOr.Location = New System.Drawing.Point(56, 19)
|
Me.optOr.Checked = True
|
||||||
|
Me.optOr.Location = New System.Drawing.Point(6, 19)
|
||||||
Me.optOr.Name = "optOr"
|
Me.optOr.Name = "optOr"
|
||||||
Me.optOr.Size = New System.Drawing.Size(36, 17)
|
Me.optOr.Size = New System.Drawing.Size(44, 17)
|
||||||
Me.optOr.TabIndex = 1
|
Me.optOr.TabIndex = 0
|
||||||
Me.optOr.TabStop = True
|
Me.optOr.TabStop = True
|
||||||
Me.optOr.Text = "Or"
|
Me.optOr.Text = "Any"
|
||||||
Me.optOr.UseVisualStyleBackColor = True
|
Me.optOr.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'optAnd
|
'optAnd
|
||||||
'
|
'
|
||||||
Me.optAnd.Checked = True
|
Me.optAnd.Location = New System.Drawing.Point(56, 19)
|
||||||
Me.optAnd.Location = New System.Drawing.Point(6, 19)
|
|
||||||
Me.optAnd.Name = "optAnd"
|
Me.optAnd.Name = "optAnd"
|
||||||
Me.optAnd.Size = New System.Drawing.Size(44, 17)
|
Me.optAnd.Size = New System.Drawing.Size(44, 17)
|
||||||
Me.optAnd.TabIndex = 0
|
Me.optAnd.TabIndex = 1
|
||||||
Me.optAnd.TabStop = True
|
Me.optAnd.Text = "All"
|
||||||
Me.optAnd.Text = "And"
|
|
||||||
Me.optAnd.UseVisualStyleBackColor = True
|
Me.optAnd.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'txtCompany
|
'txtStringFilter
|
||||||
'
|
'
|
||||||
Me.txtCompany.Location = New System.Drawing.Point(70, 71)
|
Me.txtStringFilter.Location = New System.Drawing.Point(162, 36)
|
||||||
Me.txtCompany.Name = "txtCompany"
|
Me.txtStringFilter.Name = "txtStringFilter"
|
||||||
Me.txtCompany.Size = New System.Drawing.Size(309, 20)
|
Me.txtStringFilter.Size = New System.Drawing.Size(136, 20)
|
||||||
Me.txtCompany.TabIndex = 5
|
Me.txtStringFilter.TabIndex = 3
|
||||||
'
|
'
|
||||||
'lblCompany
|
'grpSorting
|
||||||
'
|
'
|
||||||
Me.lblCompany.AutoSize = True
|
Me.grpSorting.Controls.Add(Me.grpSortOptions)
|
||||||
Me.lblCompany.Location = New System.Drawing.Point(11, 74)
|
Me.grpSorting.Controls.Add(Me.lblSortFields)
|
||||||
Me.lblCompany.Name = "lblCompany"
|
Me.grpSorting.Controls.Add(Me.cboSortField)
|
||||||
Me.lblCompany.Size = New System.Drawing.Size(54, 13)
|
Me.grpSorting.Location = New System.Drawing.Point(12, 440)
|
||||||
Me.lblCompany.TabIndex = 4
|
Me.grpSorting.Name = "grpSorting"
|
||||||
Me.lblCompany.Text = "Company:"
|
Me.grpSorting.Size = New System.Drawing.Size(385, 80)
|
||||||
|
Me.grpSorting.TabIndex = 4
|
||||||
|
Me.grpSorting.TabStop = False
|
||||||
|
Me.grpSorting.Text = "Sorting"
|
||||||
'
|
'
|
||||||
'txtProcess
|
'grpSortOptions
|
||||||
'
|
'
|
||||||
Me.txtProcess.Location = New System.Drawing.Point(70, 45)
|
Me.grpSortOptions.Controls.Add(Me.optSortAsc)
|
||||||
Me.txtProcess.Name = "txtProcess"
|
Me.grpSortOptions.Controls.Add(Me.optSortDesc)
|
||||||
Me.txtProcess.Size = New System.Drawing.Size(309, 20)
|
Me.grpSortOptions.Location = New System.Drawing.Point(162, 19)
|
||||||
Me.txtProcess.TabIndex = 3
|
Me.grpSortOptions.Name = "grpSortOptions"
|
||||||
|
Me.grpSortOptions.Size = New System.Drawing.Size(189, 43)
|
||||||
|
Me.grpSortOptions.TabIndex = 3
|
||||||
|
Me.grpSortOptions.TabStop = False
|
||||||
|
Me.grpSortOptions.Text = "Sort Options"
|
||||||
'
|
'
|
||||||
'lblProcess
|
'optSortAsc
|
||||||
'
|
'
|
||||||
Me.lblProcess.AutoSize = True
|
Me.optSortAsc.AutoSize = True
|
||||||
Me.lblProcess.Location = New System.Drawing.Point(11, 48)
|
Me.optSortAsc.Location = New System.Drawing.Point(6, 17)
|
||||||
Me.lblProcess.Name = "lblProcess"
|
Me.optSortAsc.Name = "optSortAsc"
|
||||||
Me.lblProcess.Size = New System.Drawing.Size(48, 13)
|
Me.optSortAsc.Size = New System.Drawing.Size(75, 17)
|
||||||
Me.lblProcess.TabIndex = 2
|
Me.optSortAsc.TabIndex = 0
|
||||||
Me.lblProcess.Text = "Process:"
|
Me.optSortAsc.TabStop = True
|
||||||
|
Me.optSortAsc.Text = "Ascending"
|
||||||
|
Me.optSortAsc.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'lblName
|
'optSortDesc
|
||||||
'
|
'
|
||||||
Me.lblName.AutoSize = True
|
Me.optSortDesc.AutoSize = True
|
||||||
Me.lblName.Location = New System.Drawing.Point(11, 22)
|
Me.optSortDesc.Location = New System.Drawing.Point(90, 17)
|
||||||
Me.lblName.Name = "lblName"
|
Me.optSortDesc.Name = "optSortDesc"
|
||||||
Me.lblName.Size = New System.Drawing.Size(38, 13)
|
Me.optSortDesc.Size = New System.Drawing.Size(82, 17)
|
||||||
Me.lblName.TabIndex = 0
|
Me.optSortDesc.TabIndex = 1
|
||||||
Me.lblName.Text = "Name:"
|
Me.optSortDesc.TabStop = True
|
||||||
|
Me.optSortDesc.Text = "Descending"
|
||||||
|
Me.optSortDesc.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'txtName
|
'lblSortFields
|
||||||
'
|
'
|
||||||
Me.txtName.Location = New System.Drawing.Point(70, 19)
|
Me.lblSortFields.AutoSize = True
|
||||||
Me.txtName.Name = "txtName"
|
Me.lblSortFields.Location = New System.Drawing.Point(41, 19)
|
||||||
Me.txtName.Size = New System.Drawing.Size(309, 20)
|
Me.lblSortFields.Name = "lblSortFields"
|
||||||
Me.txtName.TabIndex = 1
|
Me.lblSortFields.Size = New System.Drawing.Size(80, 13)
|
||||||
|
Me.lblSortFields.TabIndex = 1
|
||||||
|
Me.lblSortFields.Text = "Available Fields"
|
||||||
|
'
|
||||||
|
'cboSortField
|
||||||
|
'
|
||||||
|
Me.cboSortField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||||
|
Me.cboSortField.FormattingEnabled = True
|
||||||
|
Me.cboSortField.Location = New System.Drawing.Point(6, 35)
|
||||||
|
Me.cboSortField.Name = "cboSortField"
|
||||||
|
Me.cboSortField.Size = New System.Drawing.Size(150, 21)
|
||||||
|
Me.cboSortField.TabIndex = 2
|
||||||
|
'
|
||||||
|
'chkTag
|
||||||
|
'
|
||||||
|
Me.chkTag.AutoSize = True
|
||||||
|
Me.chkTag.Location = New System.Drawing.Point(12, 213)
|
||||||
|
Me.chkTag.Name = "chkTag"
|
||||||
|
Me.chkTag.Size = New System.Drawing.Size(45, 17)
|
||||||
|
Me.chkTag.TabIndex = 2
|
||||||
|
Me.chkTag.Text = "Tag"
|
||||||
|
Me.chkTag.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'chkGameInfo
|
||||||
|
'
|
||||||
|
Me.chkGameInfo.AutoSize = True
|
||||||
|
Me.chkGameInfo.Location = New System.Drawing.Point(12, 12)
|
||||||
|
Me.chkGameInfo.Name = "chkGameInfo"
|
||||||
|
Me.chkGameInfo.Size = New System.Drawing.Size(109, 17)
|
||||||
|
Me.chkGameInfo.TabIndex = 0
|
||||||
|
Me.chkGameInfo.Text = "Game Information"
|
||||||
|
Me.chkGameInfo.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(12, 531)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(249, 13)
|
||||||
|
Me.Label1.TabIndex = 5
|
||||||
|
Me.Label1.Text = "* Indicates a field that may give unexpected results."
|
||||||
'
|
'
|
||||||
'frmFilter
|
'frmFilter
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(409, 516)
|
Me.ClientSize = New System.Drawing.Size(409, 561)
|
||||||
|
Me.Controls.Add(Me.Label1)
|
||||||
|
Me.Controls.Add(Me.grpSorting)
|
||||||
|
Me.Controls.Add(Me.chkTag)
|
||||||
Me.Controls.Add(Me.grpGameFilter)
|
Me.Controls.Add(Me.grpGameFilter)
|
||||||
|
Me.Controls.Add(Me.chkGameInfo)
|
||||||
Me.Controls.Add(Me.grpTagFilter)
|
Me.Controls.Add(Me.grpTagFilter)
|
||||||
Me.Controls.Add(Me.btnOK)
|
Me.Controls.Add(Me.btnOK)
|
||||||
Me.Controls.Add(Me.optTag)
|
|
||||||
Me.Controls.Add(Me.optGameInfo)
|
|
||||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||||
Me.MaximizeBox = False
|
Me.MaximizeBox = False
|
||||||
Me.MinimizeBox = False
|
Me.MinimizeBox = False
|
||||||
@@ -300,13 +441,16 @@ Partial Class frmFilter
|
|||||||
Me.grpTagOptions.ResumeLayout(False)
|
Me.grpTagOptions.ResumeLayout(False)
|
||||||
Me.grpGameFilter.ResumeLayout(False)
|
Me.grpGameFilter.ResumeLayout(False)
|
||||||
Me.grpGameFilter.PerformLayout()
|
Me.grpGameFilter.PerformLayout()
|
||||||
Me.grpGameInfoOptions.ResumeLayout(False)
|
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.grpFilterType.ResumeLayout(False)
|
||||||
|
Me.grpSorting.ResumeLayout(False)
|
||||||
|
Me.grpSorting.PerformLayout()
|
||||||
|
Me.grpSortOptions.ResumeLayout(False)
|
||||||
|
Me.grpSortOptions.PerformLayout()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
Me.PerformLayout()
|
Me.PerformLayout()
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
Friend WithEvents optGameInfo As System.Windows.Forms.RadioButton
|
|
||||||
Friend WithEvents optTag As System.Windows.Forms.RadioButton
|
|
||||||
Friend WithEvents grpTagFilter As System.Windows.Forms.GroupBox
|
Friend WithEvents grpTagFilter As System.Windows.Forms.GroupBox
|
||||||
Friend WithEvents grpTagOptions As System.Windows.Forms.GroupBox
|
Friend WithEvents grpTagOptions As System.Windows.Forms.GroupBox
|
||||||
Friend WithEvents optAll As System.Windows.Forms.RadioButton
|
Friend WithEvents optAll As System.Windows.Forms.RadioButton
|
||||||
@@ -315,17 +459,31 @@ Partial Class frmFilter
|
|||||||
Friend WithEvents lblTags As System.Windows.Forms.Label
|
Friend WithEvents lblTags As System.Windows.Forms.Label
|
||||||
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 lstFilter As System.Windows.Forms.ListBox
|
Friend WithEvents lstTagFilter As System.Windows.Forms.ListBox
|
||||||
Friend WithEvents lstTags As System.Windows.Forms.ListBox
|
Friend WithEvents lstTags As System.Windows.Forms.ListBox
|
||||||
Friend WithEvents btnOK As System.Windows.Forms.Button
|
Friend WithEvents btnOK As System.Windows.Forms.Button
|
||||||
Friend WithEvents grpGameFilter As System.Windows.Forms.GroupBox
|
Friend WithEvents grpGameFilter As System.Windows.Forms.GroupBox
|
||||||
Friend WithEvents txtProcess As System.Windows.Forms.TextBox
|
Friend WithEvents txtStringFilter As System.Windows.Forms.TextBox
|
||||||
Friend WithEvents lblProcess As System.Windows.Forms.Label
|
Friend WithEvents grpFilterType As System.Windows.Forms.GroupBox
|
||||||
Friend WithEvents lblName As System.Windows.Forms.Label
|
|
||||||
Friend WithEvents txtName As System.Windows.Forms.TextBox
|
|
||||||
Friend WithEvents txtCompany As System.Windows.Forms.TextBox
|
|
||||||
Friend WithEvents lblCompany As System.Windows.Forms.Label
|
|
||||||
Friend WithEvents grpGameInfoOptions As System.Windows.Forms.GroupBox
|
|
||||||
Friend WithEvents optOr As System.Windows.Forms.RadioButton
|
Friend WithEvents optOr As System.Windows.Forms.RadioButton
|
||||||
Friend WithEvents optAnd As System.Windows.Forms.RadioButton
|
Friend WithEvents optAnd As System.Windows.Forms.RadioButton
|
||||||
|
Friend WithEvents grpSorting As GroupBox
|
||||||
|
Friend WithEvents optSortDesc As RadioButton
|
||||||
|
Friend WithEvents optSortAsc As RadioButton
|
||||||
|
Friend WithEvents cboSortField As ComboBox
|
||||||
|
Friend WithEvents chkTag As CheckBox
|
||||||
|
Friend WithEvents chkGameInfo As CheckBox
|
||||||
|
Friend WithEvents cboFilterField As ComboBox
|
||||||
|
Friend WithEvents lstFilter As ListBox
|
||||||
|
Friend WithEvents btnAddFilter As Button
|
||||||
|
Friend WithEvents btnRemoveFilter As Button
|
||||||
|
Friend WithEvents lblCurrentFilters As Label
|
||||||
|
Friend WithEvents lblFilterData As Label
|
||||||
|
Friend WithEvents lblFields As Label
|
||||||
|
Friend WithEvents cboNumericOps As ComboBox
|
||||||
|
Friend WithEvents numFilter As NumericUpDown
|
||||||
|
Friend WithEvents cboBoolFilter As ComboBox
|
||||||
|
Friend WithEvents lblSortFields As Label
|
||||||
|
Friend WithEvents Label1 As Label
|
||||||
|
Friend WithEvents grpSortOptions As GroupBox
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
+455
-52
@@ -3,36 +3,74 @@
|
|||||||
Public Class frmFilter
|
Public Class frmFilter
|
||||||
|
|
||||||
Public Enum eFilterType As Integer
|
Public Enum eFilterType As Integer
|
||||||
NoFilter = 1
|
BaseFilter = 1
|
||||||
AnyTag = 2
|
AnyTag = 2
|
||||||
AllTags = 3
|
AllTags = 3
|
||||||
NoTags = 4
|
NoTags = 4
|
||||||
FieldAnd = 5
|
|
||||||
FieldOr = 6
|
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Dim oTagFilters As New List(Of clsTag)
|
Dim oTagFilters As New List(Of clsTag)
|
||||||
Dim hshStringFilters As New Hashtable
|
Dim oGameFilters As New List(Of clsGameFilter)
|
||||||
Dim eCurrentFilterType As eFilterType = eFilterType.AnyTag
|
Dim oValidFields As New List(Of clsGameFilterField)
|
||||||
|
Dim eCurrentFilterType As eFilterType = eFilterType.BaseFilter
|
||||||
|
Dim bAndOperator As Boolean = False
|
||||||
|
Dim bSortAsc As Boolean = True
|
||||||
|
Dim sSortField As String = "Name"
|
||||||
Dim hshTags As New Hashtable
|
Dim hshTags As New Hashtable
|
||||||
Dim bShutdown As Boolean = False
|
Dim bShutdown As Boolean = False
|
||||||
|
|
||||||
Public ReadOnly Property StringFilters As Hashtable
|
Public Property GameFilters As List(Of clsGameFilter)
|
||||||
Get
|
Get
|
||||||
Return hshStringFilters
|
Return oGameFilters
|
||||||
End Get
|
End Get
|
||||||
|
Set(value As List(Of clsGameFilter))
|
||||||
|
oGameFilters = value
|
||||||
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property TagFilters As List(Of clsTag)
|
Public Property TagFilters As List(Of clsTag)
|
||||||
Get
|
Get
|
||||||
Return oTagFilters
|
Return oTagFilters
|
||||||
End Get
|
End Get
|
||||||
|
Set(value As List(Of clsTag))
|
||||||
|
oTagFilters = value
|
||||||
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property FilterType As eFilterType
|
Public Property FilterType As eFilterType
|
||||||
Get
|
Get
|
||||||
Return eCurrentFilterType
|
Return eCurrentFilterType
|
||||||
End Get
|
End Get
|
||||||
|
Set(value As eFilterType)
|
||||||
|
eCurrentFilterType = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property AndOperator As Boolean
|
||||||
|
Get
|
||||||
|
Return bAndOperator
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
bAndOperator = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property SortAsc As Boolean
|
||||||
|
Get
|
||||||
|
Return bSortAsc
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
bSortAsc = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property SortField As String
|
||||||
|
Get
|
||||||
|
Return sSortField
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
sSortField = value
|
||||||
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Private Sub AddTag()
|
Private Sub AddTag()
|
||||||
@@ -41,7 +79,7 @@ Public Class frmFilter
|
|||||||
|
|
||||||
If lstTags.SelectedItems.Count = 1 Then
|
If lstTags.SelectedItems.Count = 1 Then
|
||||||
oData = lstTags.SelectedItems(0)
|
oData = lstTags.SelectedItems(0)
|
||||||
lstFilter.Items.Add(oData)
|
lstTagFilter.Items.Add(oData)
|
||||||
lstTags.Items.Remove(oData)
|
lstTags.Items.Remove(oData)
|
||||||
ElseIf lstTags.SelectedItems.Count > 1 Then
|
ElseIf lstTags.SelectedItems.Count > 1 Then
|
||||||
oTags = New List(Of KeyValuePair(Of String, String))
|
oTags = New List(Of KeyValuePair(Of String, String))
|
||||||
@@ -51,7 +89,7 @@ Public Class frmFilter
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
For Each kp As KeyValuePair(Of String, String) In oTags
|
For Each kp As KeyValuePair(Of String, String) In oTags
|
||||||
lstFilter.Items.Add(kp)
|
lstTagFilter.Items.Add(kp)
|
||||||
lstTags.Items.Remove(kp)
|
lstTags.Items.Remove(kp)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
@@ -62,26 +100,173 @@ Public Class frmFilter
|
|||||||
Dim oData As KeyValuePair(Of String, String)
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
Dim oTags As List(Of KeyValuePair(Of String, String))
|
Dim oTags As List(Of KeyValuePair(Of String, String))
|
||||||
|
|
||||||
If lstFilter.SelectedItems.Count = 1 Then
|
If lstTagFilter.SelectedItems.Count = 1 Then
|
||||||
oData = lstFilter.SelectedItems(0)
|
oData = lstTagFilter.SelectedItems(0)
|
||||||
lstFilter.Items.Remove(oData)
|
lstTagFilter.Items.Remove(oData)
|
||||||
lstTags.Items.Add(oData)
|
lstTags.Items.Add(oData)
|
||||||
ElseIf lstFilter.SelectedItems.Count > 1 Then
|
ElseIf lstTagFilter.SelectedItems.Count > 1 Then
|
||||||
oTags = New List(Of KeyValuePair(Of String, String))
|
oTags = New List(Of KeyValuePair(Of String, String))
|
||||||
|
|
||||||
For Each oData In lstFilter.SelectedItems
|
For Each oData In lstTagFilter.SelectedItems
|
||||||
oTags.Add(oData)
|
oTags.Add(oData)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
For Each kp As KeyValuePair(Of String, String) In oTags
|
For Each kp As KeyValuePair(Of String, String) In oTags
|
||||||
lstFilter.Items.Remove(kp)
|
lstTagFilter.Items.Remove(kp)
|
||||||
lstTags.Items.Add(kp)
|
lstTags.Items.Add(kp)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadData()
|
Private Sub LoadFilterFields()
|
||||||
|
Dim oField As clsGameFilterField
|
||||||
|
|
||||||
|
'Name
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Name"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldName
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Process
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Process"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldProcess
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Parameter
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Parameter"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldParameter
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Save Path
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Path"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldPath
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Include Items
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "FileType"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldFileType
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Exclude Items
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "ExcludeList"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldExcludeList
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Save Entire Folder
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "FolderSave"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldFolderSave
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fBool
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Delete Folder on Restore
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "CleanFolder"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldCleanFolder
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fBool
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Save Multiple Backups
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "TimeStamp"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldTimeStamp
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fBool
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Backup Limit
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "BackupLimit"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldBackupLimit
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fNumeric
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Game Path
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "ProcessPath"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldProcessPath
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Company
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Company"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldCompany
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Version
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Version"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldVersion
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Icon
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Icon"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldIcon
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fString
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Hours
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Hours"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldHours
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fNumeric
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Enabled
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "Enabled"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldEnabled
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fBool
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'Monitor Only
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "MonitorOnly"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldMonitorOnly
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fBool
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadTagData()
|
||||||
Dim oTag As clsTag
|
Dim oTag As clsTag
|
||||||
Dim oData As KeyValuePair(Of String, String)
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
|
|
||||||
@@ -90,12 +275,13 @@ Public Class frmFilter
|
|||||||
|
|
||||||
'Handle Lists
|
'Handle Lists
|
||||||
lstTags.Items.Clear()
|
lstTags.Items.Clear()
|
||||||
lstFilter.Items.Clear()
|
lstTagFilter.Items.Clear()
|
||||||
|
|
||||||
lstTags.ValueMember = "Key"
|
lstTags.ValueMember = "Key"
|
||||||
lstTags.DisplayMember = "Value"
|
lstTags.DisplayMember = "Value"
|
||||||
lstFilter.ValueMember = "Key"
|
|
||||||
lstFilter.DisplayMember = "Value"
|
lstTagFilter.ValueMember = "Key"
|
||||||
|
lstTagFilter.DisplayMember = "Value"
|
||||||
|
|
||||||
For Each de As DictionaryEntry In hshTags
|
For Each de As DictionaryEntry In hshTags
|
||||||
oTag = DirectCast(de.Value, clsTag)
|
oTag = DirectCast(de.Value, clsTag)
|
||||||
@@ -105,32 +291,140 @@ Public Class frmFilter
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadExistingFilters()
|
||||||
|
Dim sFilter As String = String.Empty
|
||||||
|
Dim oListTag As KeyValuePair(Of String, String)
|
||||||
|
|
||||||
|
'Game Filters
|
||||||
|
If bAndOperator Then
|
||||||
|
optAnd.Checked = True
|
||||||
|
Else
|
||||||
|
optOr.Checked = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
If oGameFilters.Count > 0 Then
|
||||||
|
chkGameInfo.Checked = True
|
||||||
|
For Each oFilter As clsGameFilter In oGameFilters
|
||||||
|
Select Case oFilter.Field.Type
|
||||||
|
Case clsGameFilterField.eDataType.fString
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
|
||||||
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||||
|
Case clsGameFilterField.eDataType.fBool
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||||
|
End Select
|
||||||
|
|
||||||
|
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
'Tag Filters
|
||||||
|
If oTagFilters.Count > 0 Then
|
||||||
|
chkTag.Checked = True
|
||||||
|
For Each oTag As clsTag In oTagFilters
|
||||||
|
oListTag = New KeyValuePair(Of String, String)(oTag.ID, oTag.Name)
|
||||||
|
lstTagFilter.Items.Add(oListTag)
|
||||||
|
lstTags.Items.Remove(oListTag)
|
||||||
|
Next
|
||||||
|
|
||||||
|
If eCurrentFilterType = eFilterType.AllTags Then
|
||||||
|
optAll.Checked = True
|
||||||
|
Else
|
||||||
|
optAny.Checked = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
'Sorting
|
||||||
|
cboSortField.SelectedValue = sSortField
|
||||||
|
If bSortAsc Then
|
||||||
|
optSortAsc.Checked = True
|
||||||
|
Else
|
||||||
|
optSortDesc.Checked = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ChangeFilterMode()
|
||||||
|
Dim oFilterType As clsGameFilterField.eDataType = DirectCast(cboFilterField.SelectedValue, clsGameFilterField).Type
|
||||||
|
|
||||||
|
'Reset
|
||||||
|
cboNumericOps.SelectedIndex = 0
|
||||||
|
cboBoolFilter.SelectedIndex = 0
|
||||||
|
numFilter.Value = 0
|
||||||
|
txtStringFilter.Text = String.Empty
|
||||||
|
|
||||||
|
'Reset Visibilty
|
||||||
|
cboBoolFilter.Visible = False
|
||||||
|
cboNumericOps.Visible = False
|
||||||
|
numFilter.Visible = False
|
||||||
|
txtStringFilter.Visible = False
|
||||||
|
|
||||||
|
'Set Visiblity
|
||||||
|
Select Case oFilterType
|
||||||
|
Case clsGameFilterField.eDataType.fString
|
||||||
|
txtStringFilter.Visible = True
|
||||||
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
|
cboNumericOps.Visible = True
|
||||||
|
numFilter.Visible = True
|
||||||
|
txtStringFilter.Visible = False
|
||||||
|
Case clsGameFilterField.eDataType.fBool
|
||||||
|
cboBoolFilter.Visible = True
|
||||||
|
End Select
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub AddFilter()
|
||||||
|
Dim oFilter As New clsGameFilter
|
||||||
|
Dim sFilter As String = String.Empty
|
||||||
|
|
||||||
|
'Build Filter
|
||||||
|
oFilter.ID = Guid.NewGuid.ToString.Split("-")(0)
|
||||||
|
oFilter.Field = cboFilterField.SelectedValue
|
||||||
|
|
||||||
|
Select Case oFilter.Field.Type
|
||||||
|
Case clsGameFilterField.eDataType.fString
|
||||||
|
oFilter.Data = txtStringFilter.Text
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
|
||||||
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
|
oFilter.Data = numFilter.Value
|
||||||
|
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||||
|
Case clsGameFilterField.eDataType.fBool
|
||||||
|
oFilter.Data = cboBoolFilter.SelectedValue
|
||||||
|
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||||
|
End Select
|
||||||
|
|
||||||
|
oGameFilters.Add(oFilter)
|
||||||
|
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub RemoveFilter()
|
||||||
|
Dim oFilter As Object
|
||||||
|
|
||||||
|
If lstFilter.SelectedIndex <> -1 Then
|
||||||
|
oFilter = lstFilter.SelectedItem
|
||||||
|
oGameFilters.Remove(DirectCast(oFilter, KeyValuePair(Of clsGameFilter, String)).Key)
|
||||||
|
lstFilter.Items.Remove(oFilter)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub GetFilters()
|
Private Sub GetFilters()
|
||||||
Dim oData As KeyValuePair(Of String, String)
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
Dim oTag As clsTag
|
Dim oTag As clsTag
|
||||||
|
|
||||||
|
|
||||||
If optGameInfo.Checked Then
|
If chkGameInfo.Checked Then
|
||||||
'Set Filter Type
|
'Set Filter Type(s)
|
||||||
If optAnd.Checked Then
|
eCurrentFilterType = eFilterType.BaseFilter
|
||||||
eCurrentFilterType = eFilterType.FieldAnd
|
bAndOperator = optAnd.Checked
|
||||||
Else
|
End If
|
||||||
eCurrentFilterType = eFilterType.FieldOr
|
|
||||||
End If
|
|
||||||
|
|
||||||
'Set String Filter
|
If chkTag.Checked Then
|
||||||
If txtName.Text <> String.Empty Then
|
|
||||||
hshStringFilters.Add("Name", txtName.Text)
|
|
||||||
End If
|
|
||||||
If txtProcess.Text <> String.Empty Then
|
|
||||||
hshStringFilters.Add("Process", txtProcess.Text)
|
|
||||||
End If
|
|
||||||
If txtCompany.Text <> String.Empty Then
|
|
||||||
hshStringFilters.Add("Company", txtCompany.Text)
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
'Set Tags
|
'Set Tags
|
||||||
For Each oData In lstFilter.Items
|
TagFilters.Clear()
|
||||||
|
For Each oData In lstTagFilter.Items
|
||||||
oTag = DirectCast(hshTags(oData.Value), clsTag)
|
oTag = DirectCast(hshTags(oData.Value), clsTag)
|
||||||
TagFilters.Add(oTag)
|
TagFilters.Add(oTag)
|
||||||
Next
|
Next
|
||||||
@@ -145,6 +439,72 @@ Public Class frmFilter
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'Sorting
|
||||||
|
If optSortAsc.Checked Then
|
||||||
|
bSortAsc = True
|
||||||
|
Else
|
||||||
|
bSortAsc = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
sSortField = cboSortField.SelectedValue
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadCombos()
|
||||||
|
Dim oFilterFields As New List(Of KeyValuePair(Of clsGameFilterField, String))
|
||||||
|
Dim oSortFields As New List(Of KeyValuePair(Of String, String))
|
||||||
|
Dim oNumericOperators As New List(Of KeyValuePair(Of clsGameFilter.eNumericOperators, String))
|
||||||
|
Dim oBoolOperators As New List(Of KeyValuePair(Of Boolean, String))
|
||||||
|
|
||||||
|
'cboBoolFilter
|
||||||
|
cboBoolFilter.ValueMember = "Key"
|
||||||
|
cboBoolFilter.DisplayMember = "Value"
|
||||||
|
|
||||||
|
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled))
|
||||||
|
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled))
|
||||||
|
|
||||||
|
cboBoolFilter.DataSource = oBoolOperators
|
||||||
|
|
||||||
|
'cboNumericOps
|
||||||
|
cboNumericOps.ValueMember = "Key"
|
||||||
|
cboNumericOps.DisplayMember = "Value"
|
||||||
|
|
||||||
|
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Equals, "="))
|
||||||
|
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Greater, ">"))
|
||||||
|
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Lesser, "<"))
|
||||||
|
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.GreaterEquals, ">="))
|
||||||
|
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.LesserEquals, "<="))
|
||||||
|
|
||||||
|
cboNumericOps.DataSource = oNumericOperators
|
||||||
|
|
||||||
|
'cboFilterField
|
||||||
|
cboFilterField.ValueMember = "Key"
|
||||||
|
cboFilterField.DisplayMember = "Value"
|
||||||
|
|
||||||
|
For Each oField As clsGameFilterField In oValidFields
|
||||||
|
If oField.CheckStatus(clsGameFilterField.eFieldStatus.ValidFilter) Then
|
||||||
|
oFilterFields.Add(New KeyValuePair(Of clsGameFilterField, String)(oField, oField.FriendlyFieldName))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
cboFilterField.DataSource = oFilterFields
|
||||||
|
|
||||||
|
'cboSortField
|
||||||
|
cboSortField.ValueMember = "Key"
|
||||||
|
cboSortField.DisplayMember = "Value"
|
||||||
|
|
||||||
|
For Each oField As clsGameFilterField In oValidFields
|
||||||
|
If oField.CheckStatus(clsGameFilterField.eFieldStatus.ValidSort) Then
|
||||||
|
oSortFields.Add(New KeyValuePair(Of String, String)(oField.FieldName, oField.FriendlyFieldName))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
cboSortField.DataSource = oSortFields
|
||||||
|
|
||||||
|
'Select Defaults
|
||||||
|
cboNumericOps.SelectedIndex = 0
|
||||||
|
cboFilterField.SelectedIndex = 0
|
||||||
|
cboSortField.SelectedIndex = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetForm()
|
Private Sub SetForm()
|
||||||
@@ -154,10 +514,7 @@ Public Class frmFilter
|
|||||||
'Set Form Text
|
'Set Form Text
|
||||||
optOr.Text = frmFilter_optOr
|
optOr.Text = frmFilter_optOr
|
||||||
optAnd.Text = frmFilter_optAnd
|
optAnd.Text = frmFilter_optAnd
|
||||||
lblCompany.Text = frmFilter_lblCompany
|
grpFilterType.Text = frmFilter_grpFilterType
|
||||||
lblProcess.Text = frmFilter_lblProcess
|
|
||||||
lblName.Text = frmFilter_lblName
|
|
||||||
grpGameInfoOptions.Text = frmFilter_grpGameInfoOptions
|
|
||||||
optAll.Text = frmFilter_optAll
|
optAll.Text = frmFilter_optAll
|
||||||
optAny.Text = frmFilter_optAny
|
optAny.Text = frmFilter_optAny
|
||||||
lblGameTags.Text = frmFilter_lblGameTags
|
lblGameTags.Text = frmFilter_lblGameTags
|
||||||
@@ -166,14 +523,36 @@ Public Class frmFilter
|
|||||||
btnAdd.Text = frmFilter_btnAdd
|
btnAdd.Text = frmFilter_btnAdd
|
||||||
btnOK.Text = frmFilter_btnOK
|
btnOK.Text = frmFilter_btnOK
|
||||||
grpTagOptions.Text = frmFilter_grpTagOptions
|
grpTagOptions.Text = frmFilter_grpTagOptions
|
||||||
optTag.Text = frmFilter_optTag
|
chkTag.Text = frmFilter_chkTag
|
||||||
optGameInfo.Text = frmFilter_optGameInfo
|
chkGameInfo.Text = frmFilter_chkGameInfo
|
||||||
|
grpSorting.Text = frmFilter_grpSorting
|
||||||
|
lblSortFields.Text = frmFilter_lblSortsFields
|
||||||
|
optSortAsc.Text = frmFilter_optSortAsc
|
||||||
|
optSortDesc.Text = frmFilter_optSortDesc
|
||||||
|
btnAddFilter.Text = frmFilter_btnAddFilter
|
||||||
|
btnRemoveFilter.Text = frmFilter_btnRemoveFilter
|
||||||
|
lblCurrentFilters.Text = frmFilter_lblCurrentFilters
|
||||||
|
lblFields.Text = frmFilter_lblFields
|
||||||
|
lblFilterData.Text = frmFilter_lblFilterData
|
||||||
|
grpSortOptions.Text = frmFilter_grpSortOptions
|
||||||
|
|
||||||
|
'Defaults
|
||||||
|
optOr.Checked = True
|
||||||
|
optSortAsc.Checked = True
|
||||||
|
grpGameFilter.Enabled = False
|
||||||
|
grpTagFilter.Enabled = False
|
||||||
|
|
||||||
|
'Init Game Filter
|
||||||
|
lstFilter.ValueMember = "Key"
|
||||||
|
lstFilter.DisplayMember = "Value"
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
SetForm()
|
SetForm()
|
||||||
optGameInfo.Checked = True
|
LoadFilterFields()
|
||||||
LoadData()
|
LoadCombos()
|
||||||
|
LoadTagData()
|
||||||
|
LoadExistingFilters()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
||||||
@@ -196,13 +575,37 @@ Public Class frmFilter
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub optGameInfo_Click(sender As Object, e As EventArgs) Handles optGameInfo.Click, optTag.Click
|
Private Sub chkGameInfo_CheckedChanged(sender As Object, e As EventArgs) Handles chkGameInfo.CheckedChanged
|
||||||
If optGameInfo.Checked = True Then
|
If chkGameInfo.Checked Then
|
||||||
grpGameFilter.Enabled = True
|
grpGameFilter.Enabled = True
|
||||||
grpTagFilter.Enabled = False
|
|
||||||
Else
|
Else
|
||||||
|
optOr.Checked = True
|
||||||
grpGameFilter.Enabled = False
|
grpGameFilter.Enabled = False
|
||||||
grpTagFilter.Enabled = True
|
oGameFilters.Clear()
|
||||||
|
lstFilter.Items.Clear()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub chkTag_CheckedChanged(sender As Object, e As EventArgs) Handles chkTag.CheckedChanged
|
||||||
|
If chkTag.Checked Then
|
||||||
|
grpTagFilter.Enabled = True
|
||||||
|
Else
|
||||||
|
grpTagFilter.Enabled = False
|
||||||
|
oTagFilters.Clear()
|
||||||
|
LoadTagData()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnAddFilter_Click(sender As Object, e As EventArgs) Handles btnAddFilter.Click
|
||||||
|
AddFilter()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnRemoveFilter_Click(sender As Object, e As EventArgs) Handles btnRemoveFilter.Click
|
||||||
|
RemoveFilter()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub cboFilterField_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFilterField.SelectedIndexChanged
|
||||||
|
ChangeFilterMode()
|
||||||
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
+76
-38
@@ -1,4 +1,5 @@
|
|||||||
Imports GBM.My.Resources
|
Imports GBM.My.Resources
|
||||||
|
Imports System.Collections.Specialized
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
|
||||||
Public Class frmGameManager
|
Public Class frmGameManager
|
||||||
@@ -13,14 +14,17 @@ Public Class frmGameManager
|
|||||||
Private bTriggerRestore As Boolean = False
|
Private bTriggerRestore As Boolean = False
|
||||||
Private oBackupList As New List(Of clsGame)
|
Private oBackupList As New List(Of clsGame)
|
||||||
Private oRestoreList As New Hashtable
|
Private oRestoreList As New Hashtable
|
||||||
Private oAppData As Hashtable
|
Private oGameData As OrderedDictionary
|
||||||
Private oLocalBackupData As SortedList
|
Private oLocalBackupData As SortedList
|
||||||
Private oRemoteBackupData As SortedList
|
Private oRemoteBackupData As SortedList
|
||||||
Private bIsDirty As Boolean = False
|
Private bIsDirty As Boolean = False
|
||||||
Private bIsLoading As Boolean = False
|
Private bIsLoading As Boolean = False
|
||||||
Private oCurrentTagFilters As New List(Of clsTag)
|
Private oCurrentTagFilters As New List(Of clsTag)
|
||||||
Private oCurrentStringFilters As New Hashtable
|
Private oCurrentFilters As New List(Of clsGameFilter)
|
||||||
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
|
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||||
|
Private bCurrentAndOperator As Boolean = False
|
||||||
|
Private bCurrentSortAsc As Boolean = True
|
||||||
|
Private sCurrentSortField As String = "Name"
|
||||||
Private WithEvents tmFilterTimer As Timer
|
Private WithEvents tmFilterTimer As Timer
|
||||||
|
|
||||||
Private Enum eModes As Integer
|
Private Enum eModes As Integer
|
||||||
@@ -70,12 +74,12 @@ Public Class frmGameManager
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Private Property AppData As Hashtable
|
Private Property GameData As OrderedDictionary
|
||||||
Get
|
Get
|
||||||
Return oAppData
|
Return oGameData
|
||||||
End Get
|
End Get
|
||||||
Set(value As Hashtable)
|
Set(value As OrderedDictionary)
|
||||||
oAppData = value
|
oGameData = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -222,41 +226,55 @@ Public Class frmGameManager
|
|||||||
If optCustom.Checked Then
|
If optCustom.Checked Then
|
||||||
If Not bRetainFilter Then
|
If Not bRetainFilter Then
|
||||||
frm = New frmFilter
|
frm = New frmFilter
|
||||||
|
|
||||||
|
frm.TagFilters = oCurrentTagFilters
|
||||||
|
frm.GameFilters = oCurrentFilters
|
||||||
|
frm.FilterType = eCurrentFilter
|
||||||
|
frm.AndOperator = bCurrentAndOperator
|
||||||
|
frm.SortAsc = bCurrentSortAsc
|
||||||
|
frm.SortField = sCurrentSortField
|
||||||
|
|
||||||
frm.ShowDialog()
|
frm.ShowDialog()
|
||||||
|
|
||||||
oCurrentTagFilters = frm.TagFilters
|
oCurrentTagFilters = frm.TagFilters
|
||||||
oCurrentStringFilters = frm.StringFilters
|
oCurrentFilters = frm.GameFilters
|
||||||
eCurrentFilter = frm.FilterType
|
eCurrentFilter = frm.FilterType
|
||||||
|
bCurrentAndOperator = frm.AndOperator
|
||||||
|
bCurrentSortAsc = frm.SortAsc
|
||||||
|
sCurrentSortField = frm.SortField
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
oCurrentTagFilters.Clear()
|
oCurrentTagFilters.Clear()
|
||||||
oCurrentStringFilters.Clear()
|
oCurrentFilters.Clear()
|
||||||
eCurrentFilter = frmFilter.eFilterType.NoFilter
|
eCurrentFilter = frmFilter.eFilterType.BaseFilter
|
||||||
|
bCurrentSortAsc = True
|
||||||
|
sCurrentSortField = "Name"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
AppData = mgrMonitorList.ReadFilteredList(oCurrentTagFilters, oCurrentStringFilters, eCurrentFilter)
|
GameData = mgrMonitorList.ReadFilteredList(oCurrentTagFilters, oCurrentFilters, eCurrentFilter, bCurrentAndOperator, bCurrentSortAsc, sCurrentSortField)
|
||||||
|
|
||||||
If optPendingRestores.Checked Then
|
If optPendingRestores.Checked Then
|
||||||
oRestoreData = mgrRestore.CompareManifests
|
oRestoreData = mgrRestore.CompareManifests
|
||||||
|
|
||||||
'Only show games with data to restore
|
'Only show games with data to restore
|
||||||
Dim oTemporaryList As Hashtable = AppData.Clone
|
Dim oTemporaryList As OrderedDictionary = mgrCommon.GenericClone(GameData)
|
||||||
For Each de As DictionaryEntry In oTemporaryList
|
For Each de As DictionaryEntry In oTemporaryList
|
||||||
oGame = DirectCast(de.Value, clsGame)
|
oGame = DirectCast(de.Value, clsGame)
|
||||||
If Not oRestoreData.ContainsKey(oGame.Name) Then
|
If Not oRestoreData.ContainsKey(oGame.Name) Then
|
||||||
AppData.Remove(de.Key)
|
GameData.Remove(de.Key)
|
||||||
Else
|
Else
|
||||||
oRestoreData.Remove(oGame.Name)
|
oRestoreData.Remove(oGame.Name)
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
ElseIf optBackupData.Checked Then
|
ElseIf optBackupData.Checked Then
|
||||||
'Only show games with backup data
|
'Only show games with backup data
|
||||||
Dim oTemporaryList As Hashtable = AppData.Clone
|
Dim oTemporaryList As OrderedDictionary = mgrCommon.GenericClone(GameData)
|
||||||
oRestoreData = oRemoteBackupData.Clone
|
oRestoreData = oRemoteBackupData.Clone
|
||||||
|
|
||||||
For Each de As DictionaryEntry In oTemporaryList
|
For Each de As DictionaryEntry In oTemporaryList
|
||||||
oGame = DirectCast(de.Value, clsGame)
|
oGame = DirectCast(de.Value, clsGame)
|
||||||
If Not oRemoteBackupData.ContainsKey(oGame.Name) Then
|
If Not oRemoteBackupData.ContainsKey(oGame.Name) Then
|
||||||
AppData.Remove(de.Key)
|
GameData.Remove(de.Key)
|
||||||
Else
|
Else
|
||||||
oRestoreData.Remove(oGame.Name)
|
oRestoreData.Remove(oGame.Name)
|
||||||
End If
|
End If
|
||||||
@@ -269,7 +287,7 @@ Public Class frmGameManager
|
|||||||
oGame = New clsGame
|
oGame = New clsGame
|
||||||
oGame.Name = oBackup.Name
|
oGame.Name = oBackup.Name
|
||||||
oGame.Temporary = True
|
oGame.Temporary = True
|
||||||
AppData.Add(oGame.ID, oGame)
|
GameData.Add(oGame.ID, oGame)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -387,7 +405,7 @@ Public Class frmGameManager
|
|||||||
Dim oList As New List(Of KeyValuePair(Of String, String))
|
Dim oList As New List(Of KeyValuePair(Of String, String))
|
||||||
Dim sFilter As String = txtQuickFilter.Text
|
Dim sFilter As String = txtQuickFilter.Text
|
||||||
|
|
||||||
For Each de As DictionaryEntry In AppData
|
For Each de As DictionaryEntry In GameData
|
||||||
oApp = DirectCast(de.Value, clsGame)
|
oApp = DirectCast(de.Value, clsGame)
|
||||||
oData = New KeyValuePair(Of String, String)(oApp.ID, oApp.Name)
|
oData = New KeyValuePair(Of String, String)(oApp.ID, oApp.Name)
|
||||||
'Apply the quick filter if applicable
|
'Apply the quick filter if applicable
|
||||||
@@ -400,8 +418,6 @@ Public Class frmGameManager
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
oList.Sort(AddressOf mgrCommon.CompareByListBoxItemByValue)
|
|
||||||
|
|
||||||
lstGames.BeginUpdate()
|
lstGames.BeginUpdate()
|
||||||
lstGames.ValueMember = "Key"
|
lstGames.ValueMember = "Key"
|
||||||
lstGames.DisplayMember = "Value"
|
lstGames.DisplayMember = "Value"
|
||||||
@@ -545,7 +561,7 @@ Public Class frmGameManager
|
|||||||
frm.TagList = oTagsToSave
|
frm.TagList = oTagsToSave
|
||||||
Else
|
Else
|
||||||
For Each oData In lstGames.SelectedItems
|
For Each oData In lstGames.SelectedItems
|
||||||
oApp = DirectCast(AppData(oData.Key), clsGame)
|
oApp = DirectCast(GameData(oData.Key), clsGame)
|
||||||
sMonitorIDs.Add(oApp.ID)
|
sMonitorIDs.Add(oApp.ID)
|
||||||
Next
|
Next
|
||||||
frm.GameName = CurrentGame.Name
|
frm.GameName = CurrentGame.Name
|
||||||
@@ -731,7 +747,7 @@ Public Class frmGameManager
|
|||||||
IsLoading = True
|
IsLoading = True
|
||||||
|
|
||||||
Dim oData As KeyValuePair(Of String, String) = lstGames.SelectedItems(0)
|
Dim oData As KeyValuePair(Of String, String) = lstGames.SelectedItems(0)
|
||||||
Dim oApp As clsGame = DirectCast(AppData(oData.Key), clsGame)
|
Dim oApp As clsGame = DirectCast(GameData(oData.Key), clsGame)
|
||||||
|
|
||||||
'Core
|
'Core
|
||||||
txtID.Text = oApp.ID
|
txtID.Text = oApp.ID
|
||||||
@@ -1028,6 +1044,27 @@ Public Class frmGameManager
|
|||||||
VerifyCleanFolder()
|
VerifyCleanFolder()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MonitorOnlyModeChange()
|
||||||
|
If chkMonitorOnly.Checked Then
|
||||||
|
chkFolderSave.Enabled = False
|
||||||
|
chkTimeStamp.Enabled = False
|
||||||
|
lblSavePath.Enabled = False
|
||||||
|
txtSavePath.Enabled = False
|
||||||
|
btnSavePathBrowse.Enabled = False
|
||||||
|
btnInclude.Enabled = False
|
||||||
|
btnExclude.Enabled = False
|
||||||
|
Else
|
||||||
|
chkFolderSave.Enabled = True
|
||||||
|
chkTimeStamp.Enabled = True
|
||||||
|
lblSavePath.Enabled = True
|
||||||
|
txtSavePath.Enabled = True
|
||||||
|
btnSavePathBrowse.Enabled = True
|
||||||
|
btnInclude.Enabled = True
|
||||||
|
btnExclude.Enabled = True
|
||||||
|
End If
|
||||||
|
VerifyCleanFolder()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub TimeStampModeChange()
|
Private Sub TimeStampModeChange()
|
||||||
If chkTimeStamp.Checked Then
|
If chkTimeStamp.Checked Then
|
||||||
nudLimit.Visible = True
|
nudLimit.Visible = True
|
||||||
@@ -1042,7 +1079,7 @@ Public Class frmGameManager
|
|||||||
|
|
||||||
Private Sub VerifyCleanFolder()
|
Private Sub VerifyCleanFolder()
|
||||||
If Not bIsLoading Then
|
If Not bIsLoading Then
|
||||||
If chkFolderSave.Checked = True And txtExclude.Text = String.Empty And txtSavePath.Text <> String.Empty Then
|
If (chkFolderSave.Checked = True And txtExclude.Text = String.Empty And txtSavePath.Text <> String.Empty) And Not chkMonitorOnly.Checked Then
|
||||||
chkCleanFolder.Enabled = True
|
chkCleanFolder.Enabled = True
|
||||||
Else
|
Else
|
||||||
chkCleanFolder.Checked = False
|
chkCleanFolder.Checked = False
|
||||||
@@ -1195,7 +1232,7 @@ Public Class frmGameManager
|
|||||||
|
|
||||||
If lstGames.SelectedItems.Count = 1 Then
|
If lstGames.SelectedItems.Count = 1 Then
|
||||||
oData = lstGames.SelectedItems(0)
|
oData = lstGames.SelectedItems(0)
|
||||||
oApp = DirectCast(AppData(oData.Key), clsGame)
|
oApp = DirectCast(GameData(oData.Key), clsGame)
|
||||||
|
|
||||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmGameDelete, oApp.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
If mgrCommon.ShowMessage(frmGameManager_ConfirmGameDelete, oApp.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||||
mgrMonitorList.DoListDelete(oApp.ID)
|
mgrMonitorList.DoListDelete(oApp.ID)
|
||||||
@@ -1207,7 +1244,7 @@ Public Class frmGameManager
|
|||||||
Dim sMonitorIDs As New List(Of String)
|
Dim sMonitorIDs As New List(Of String)
|
||||||
|
|
||||||
For Each oData In lstGames.SelectedItems
|
For Each oData In lstGames.SelectedItems
|
||||||
oApp = DirectCast(AppData(oData.Key), clsGame)
|
oApp = DirectCast(GameData(oData.Key), clsGame)
|
||||||
sMonitorIDs.Add(oApp.ID)
|
sMonitorIDs.Add(oApp.ID)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@@ -1247,7 +1284,7 @@ Public Class frmGameManager
|
|||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If chkFolderSave.Checked = False And txtFileType.Text = String.Empty Then
|
If (chkFolderSave.Checked = False And txtFileType.Text = String.Empty) And Not chkMonitorOnly.Checked Then
|
||||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoItems, MsgBoxStyle.Exclamation)
|
mgrCommon.ShowMessage(frmGameManager_ErrorNoItems, MsgBoxStyle.Exclamation)
|
||||||
btnInclude.Focus()
|
btnInclude.Focus()
|
||||||
Return False
|
Return False
|
||||||
@@ -1334,8 +1371,8 @@ Public Class frmGameManager
|
|||||||
BackupList.Clear()
|
BackupList.Clear()
|
||||||
|
|
||||||
For Each oData In lstGames.SelectedItems
|
For Each oData In lstGames.SelectedItems
|
||||||
oGame = DirectCast(AppData(oData.Key), clsGame)
|
oGame = DirectCast(GameData(oData.Key), clsGame)
|
||||||
BackupList.Add(oGame)
|
If Not oGame.MonitorOnly Then BackupList.Add(oGame)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
If BackupList.Count = 1 Then
|
If BackupList.Count = 1 Then
|
||||||
@@ -1372,17 +1409,14 @@ Public Class frmGameManager
|
|||||||
If lstGames.SelectedItems.Count > 0 Then
|
If lstGames.SelectedItems.Count > 0 Then
|
||||||
RestoreList.Clear()
|
RestoreList.Clear()
|
||||||
|
|
||||||
If lstGames.SelectedItems.Count = 1 Then
|
|
||||||
RestoreList.Add(CurrentGame, CurrentBackupItem)
|
For Each oData In lstGames.SelectedItems
|
||||||
Else
|
If oRemoteBackupData.Contains(oData.Value) Then
|
||||||
For Each oData In lstGames.SelectedItems
|
oGame = DirectCast(GameData(oData.Key), clsGame)
|
||||||
If oRemoteBackupData.Contains(oData.Value) Then
|
oBackup = DirectCast(oRemoteBackupData(oData.Value), clsBackup)
|
||||||
oGame = DirectCast(AppData(oData.Key), clsGame)
|
If Not oGame.MonitorOnly Then RestoreList.Add(oGame, oBackup)
|
||||||
oBackup = DirectCast(oRemoteBackupData(oData.Value), clsBackup)
|
End If
|
||||||
RestoreList.Add(oGame, oBackup)
|
Next
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
If RestoreList.Count = 1 Then
|
If RestoreList.Count = 1 Then
|
||||||
bDoRestore = True
|
bDoRestore = True
|
||||||
@@ -1713,4 +1747,8 @@ 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
|
||||||
|
|
||||||
|
Private Sub chkMonitorOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorOnly.CheckedChanged
|
||||||
|
MonitorOnlyModeChange()
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
+12
-12
@@ -67,49 +67,49 @@ Public Class frmSyncFields
|
|||||||
|
|
||||||
Private Sub chkTimeStamp_CheckedChanged(sender As Object, e As EventArgs) Handles chkTimeStamp.CheckedChanged
|
Private Sub chkTimeStamp_CheckedChanged(sender As Object, e As EventArgs) Handles chkTimeStamp.CheckedChanged
|
||||||
If chkTimeStamp.Checked Then
|
If chkTimeStamp.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkGamePath_CheckedChanged(sender As Object, e As EventArgs) Handles chkGamePath.CheckedChanged
|
Private Sub chkGamePath_CheckedChanged(sender As Object, e As EventArgs) Handles chkGamePath.CheckedChanged
|
||||||
If chkGamePath.Checked Then
|
If chkGamePath.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkCompany_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompany.CheckedChanged
|
Private Sub chkCompany_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompany.CheckedChanged
|
||||||
If chkCompany.Checked Then
|
If chkCompany.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkVersion_CheckedChanged(sender As Object, e As EventArgs) Handles chkVersion.CheckedChanged
|
Private Sub chkVersion_CheckedChanged(sender As Object, e As EventArgs) Handles chkVersion.CheckedChanged
|
||||||
If chkVersion.Checked Then
|
If chkVersion.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkIcon_CheckedChanged(sender As Object, e As EventArgs) Handles chkIcon.CheckedChanged
|
Private Sub chkIcon_CheckedChanged(sender As Object, e As EventArgs) Handles chkIcon.CheckedChanged
|
||||||
If chkIcon.Checked Then
|
If chkIcon.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkMonitorGame_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorGame.CheckedChanged
|
Private Sub chkMonitorGame_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorGame.CheckedChanged
|
||||||
If chkMonitorGame.Checked Then
|
If chkMonitorGame.Checked Then
|
||||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
||||||
Else
|
Else
|
||||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@@ -122,6 +122,8 @@
|
|||||||
<Import Include="System.Windows.Forms" />
|
<Import Include="System.Windows.Forms" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Classes\clsGameFilter.vb" />
|
||||||
|
<Compile Include="Classes\clsGameFilterField.vb" />
|
||||||
<Compile Include="Classes\clsSavedPath.vb" />
|
<Compile Include="Classes\clsSavedPath.vb" />
|
||||||
<Compile Include="Classes\XML Serialize Classes\Tag.vb" />
|
<Compile Include="Classes\XML Serialize Classes\Tag.vb" />
|
||||||
<Compile Include="Classes\XML Serialize Classes\Game.vb" />
|
<Compile Include="Classes\XML Serialize Classes\Game.vb" />
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ Imports System.Net
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports System.Security.Principal
|
Imports System.Security.Principal
|
||||||
Imports System.Text.RegularExpressions
|
Imports System.Text.RegularExpressions
|
||||||
|
Imports System.Runtime.Serialization
|
||||||
|
Imports System.Runtime.Serialization.Formatters.Binary
|
||||||
|
|
||||||
Public Class mgrCommon
|
Public Class mgrCommon
|
||||||
|
|
||||||
@@ -35,6 +37,28 @@ Public Class mgrCommon
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'Source - https://stackoverflow.com/questions/18873152/deep-copy-of-ordereddictionary
|
||||||
|
Public Shared Function GenericClone(ByVal oOriginal As Object) As Object
|
||||||
|
'Construct a temporary memory stream
|
||||||
|
Dim oStream As MemoryStream = New MemoryStream()
|
||||||
|
|
||||||
|
'Construct a serialization formatter that does all the hard work
|
||||||
|
Dim oFormatter As BinaryFormatter = New BinaryFormatter()
|
||||||
|
|
||||||
|
'This line Is explained in the "Streaming Contexts" section
|
||||||
|
oFormatter.Context = New StreamingContext(StreamingContextStates.Clone)
|
||||||
|
|
||||||
|
'Serialize the object graph into the memory stream
|
||||||
|
oFormatter.Serialize(oStream, oOriginal)
|
||||||
|
|
||||||
|
'Seek back to the start of the memory stream before deserializing
|
||||||
|
oStream.Position = 0
|
||||||
|
|
||||||
|
'Deserialize the graph into a New set of objects
|
||||||
|
'Return the root of the graph (deep copy) to the caller
|
||||||
|
Return oFormatter.Deserialize(oStream)
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Shared Function CheckAddress(ByVal URL As String) As Boolean
|
Public Shared Function CheckAddress(ByVal URL As String) As Boolean
|
||||||
Try
|
Try
|
||||||
Dim request As WebRequest = WebRequest.Create(URL)
|
Dim request As WebRequest = WebRequest.Create(URL)
|
||||||
@@ -213,14 +237,6 @@ Public Class mgrCommon
|
|||||||
oProcess.Start()
|
oProcess.Start()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Shared Function SetSyncField(ByVal eSyncFields As clsGame.eOptionalSyncFields, ByVal eSyncField As clsGame.eOptionalSyncFields) As clsGame.eOptionalSyncFields
|
|
||||||
Return eSyncFields Or eSyncField
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Shared Function RemoveSyncField(ByVal eSyncFields As clsGame.eOptionalSyncFields, ByVal eSyncField As clsGame.eOptionalSyncFields) As clsGame.eOptionalSyncFields
|
|
||||||
Return eSyncFields And (Not eSyncField)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'Get a file size
|
'Get a file size
|
||||||
Public Shared Function GetFileSize(ByVal sFile As String) As Long
|
Public Shared Function GetFileSize(ByVal sFile As String) As Long
|
||||||
Dim oFileInfo As FileInfo
|
Dim oFileInfo As FileInfo
|
||||||
@@ -253,13 +269,15 @@ 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())
|
Public Shared Function GetFolderSize(ByVal sPath As String, ByVal sInclude As String(), ByVal sExclude As String()) 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
|
||||||
Dim lSize As Long = 0
|
Dim lSize As Long = 0
|
||||||
|
|
||||||
Try
|
Try
|
||||||
|
If Not Directory.Exists(sPath) Then Return lSize
|
||||||
|
|
||||||
oFolder = New DirectoryInfo(sPath)
|
oFolder = New DirectoryInfo(sPath)
|
||||||
|
|
||||||
'Files
|
'Files
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports GBM.My.Resources
|
Imports GBM.My.Resources
|
||||||
|
Imports System.Collections.Specialized
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
|
||||||
Public Class mgrMonitorList
|
Public Class mgrMonitorList
|
||||||
@@ -496,36 +497,22 @@ Public Class mgrMonitorList
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Filter Functions
|
'Filter Functions
|
||||||
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal hshStringFilters As Hashtable, eFilterType As frmFilter.eFilterType, ByRef hshParams As Hashtable) As String
|
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bAndOperator As Boolean,
|
||||||
|
ByVal bSortAsc As Boolean, ByVal sSortField 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 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 FROM monitorlist"
|
||||||
|
Dim sSort As String = " ORDER BY " & sSortField
|
||||||
|
|
||||||
|
If bSortAsc Then
|
||||||
|
sSort &= " ASC"
|
||||||
|
Else
|
||||||
|
sSort &= " DESC"
|
||||||
|
End If
|
||||||
|
|
||||||
Select Case eFilterType
|
Select Case eFilterType
|
||||||
Case frmFilter.eFilterType.NoFilter
|
Case frmFilter.eFilterType.BaseFilter
|
||||||
sSQL = "SELECT " & sBaseSelect & " ORDER BY Name Asc"
|
|
||||||
Case frmFilter.eFilterType.FieldAnd, frmFilter.eFilterType.FieldOr
|
|
||||||
sSQL = "SELECT " & sBaseSelect
|
sSQL = "SELECT " & sBaseSelect
|
||||||
|
|
||||||
If hshStringFilters.Count > 0 Then
|
|
||||||
sSQL &= " WHERE ("
|
|
||||||
For Each de As DictionaryEntry In hshStringFilters
|
|
||||||
sSQL &= de.Key & " LIKE @" & de.Key
|
|
||||||
hshParams.Add(de.Key, "%" & de.Value.ToString & "%")
|
|
||||||
iCounter += 1
|
|
||||||
If iCounter <> hshStringFilters.Count Then
|
|
||||||
Select Case eFilterType
|
|
||||||
Case frmFilter.eFilterType.FieldAnd
|
|
||||||
sSQL &= " AND "
|
|
||||||
Case frmFilter.eFilterType.FieldOr
|
|
||||||
sSQL &= " OR "
|
|
||||||
End Select
|
|
||||||
End If
|
|
||||||
|
|
||||||
Next
|
|
||||||
sSQL &= ")"
|
|
||||||
End If
|
|
||||||
sSQL &= " ORDER BY Name Asc"
|
|
||||||
Case frmFilter.eFilterType.AnyTag
|
Case frmFilter.eFilterType.AnyTag
|
||||||
sSQL = "SELECT DISTINCT " & sBaseSelect
|
sSQL = "SELECT DISTINCT " & sBaseSelect
|
||||||
sSQL &= " NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
sSQL &= " NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||||
@@ -537,7 +524,7 @@ Public Class mgrMonitorList
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
sSQL = sSQL.TrimEnd(",")
|
sSQL = sSQL.TrimEnd(",")
|
||||||
sSQL &= ") ORDER BY Name Asc"
|
sSQL &= ")"
|
||||||
Case frmFilter.eFilterType.AllTags
|
Case frmFilter.eFilterType.AllTags
|
||||||
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID IN "
|
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID IN "
|
||||||
|
|
||||||
@@ -549,41 +536,78 @@ Public Class mgrMonitorList
|
|||||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||||
iCounter += 1
|
iCounter += 1
|
||||||
Next
|
Next
|
||||||
|
|
||||||
sSQL &= " ORDER BY Name Asc"
|
|
||||||
Case frmFilter.eFilterType.NoTags
|
Case frmFilter.eFilterType.NoTags
|
||||||
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags) ORDER BY Name Asc"
|
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags)"
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
|
'Handle Other Filters
|
||||||
|
If oFilters.Count > 0 Then
|
||||||
|
If eFilterType = frmFilter.eFilterType.BaseFilter Then
|
||||||
|
sSQL &= " WHERE ("
|
||||||
|
Else
|
||||||
|
sSQL &= " AND ("
|
||||||
|
End If
|
||||||
|
|
||||||
|
iCounter = 0
|
||||||
|
For Each oFilter As clsGameFilter In oFilters
|
||||||
|
Select Case oFilter.Field.Type
|
||||||
|
Case clsGameFilterField.eDataType.fString
|
||||||
|
sSQL &= oFilter.Field.FieldName & " LIKE @" & oFilter.ID
|
||||||
|
hshParams.Add(oFilter.ID, "%" & oFilter.Data & "%")
|
||||||
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
|
sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID
|
||||||
|
hshParams.Add(oFilter.ID, oFilter.Data)
|
||||||
|
Case clsGameFilterField.eDataType.fBool
|
||||||
|
sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID
|
||||||
|
hshParams.Add(oFilter.ID, oFilter.Data)
|
||||||
|
End Select
|
||||||
|
|
||||||
|
iCounter += 1
|
||||||
|
If iCounter <> oFilters.Count Then
|
||||||
|
If bAndOperator Then
|
||||||
|
sSQL &= " AND "
|
||||||
|
Else
|
||||||
|
sSQL &= " OR "
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
sSQL &= ")"
|
||||||
|
End If
|
||||||
|
|
||||||
|
'Handle Sorting
|
||||||
|
sSQL &= sSort
|
||||||
|
|
||||||
Return sSQL
|
Return sSQL
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Shared Function ReadFilteredList(ByVal oTagFilters As List(Of clsTag), ByVal hshStringFilters As Hashtable, eFilterType As frmFilter.eFilterType, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As Hashtable
|
Public Shared Function ReadFilteredList(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bAndOperator As Boolean,
|
||||||
|
ByVal bSortAsc As Boolean, ByVal sSortField As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As OrderedDictionary
|
||||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||||
Dim oData As DataSet
|
Dim oData As DataSet
|
||||||
Dim sSQL As String = String.Empty
|
Dim sSQL As String = String.Empty
|
||||||
Dim hshList As New Hashtable
|
Dim oList As New OrderedDictionary
|
||||||
Dim oGame As clsGame
|
Dim oGame As clsGame
|
||||||
Dim hshParams As New Hashtable
|
Dim hshParams As New Hashtable
|
||||||
Dim iCounter As Integer = 0
|
Dim iCounter As Integer = 0
|
||||||
|
|
||||||
sSQL = BuildFilterQuery(oTagFilters, hshStringFilters, eFilterType, hshParams)
|
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bAndOperator, bSortAsc, sSortField, hshParams)
|
||||||
|
|
||||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||||
|
|
||||||
For Each dr As DataRow In oData.Tables(0).Rows
|
For Each dr As DataRow In oData.Tables(0).Rows
|
||||||
oGame = MapToObject(dr)
|
oGame = MapToObject(dr)
|
||||||
|
|
||||||
hshList.Add(oGame.ID, oGame)
|
oList.Add(oGame.ID, oGame)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Return hshList
|
Return oList
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
'Import / Export Functions
|
'Import / Export Functions
|
||||||
Public Shared Function ReadListForExport(ByVal oTagFilters As List(Of clsTag), ByVal hshStringFilters As Hashtable, ByVal eFilterType As frmFilter.eFilterType, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As List(Of Game)
|
Public Shared Function ReadListForExport(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bAndOperator As Boolean,
|
||||||
|
ByVal bSortAsc As Boolean, ByVal sSortField As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As List(Of Game)
|
||||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||||
Dim oData As DataSet
|
Dim oData As DataSet
|
||||||
Dim sSQL As String = String.Empty
|
Dim sSQL As String = String.Empty
|
||||||
@@ -592,7 +616,7 @@ Public Class mgrMonitorList
|
|||||||
Dim oGame As Game
|
Dim oGame As Game
|
||||||
Dim hshParams As New Hashtable
|
Dim hshParams As New Hashtable
|
||||||
|
|
||||||
sSQL = BuildFilterQuery(oTagFilters, hshStringFilters, eFilterType, hshParams)
|
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bAndOperator, bSortAsc, sSortField, hshParams)
|
||||||
|
|
||||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||||
|
|
||||||
@@ -606,6 +630,7 @@ Public Class mgrMonitorList
|
|||||||
oGame.FolderSave = CBool(dr("FolderSave"))
|
oGame.FolderSave = CBool(dr("FolderSave"))
|
||||||
If Not IsDBNull(dr("FileType")) Then oGame.FileType = CStr(dr("FileType"))
|
If Not IsDBNull(dr("FileType")) Then oGame.FileType = CStr(dr("FileType"))
|
||||||
If Not IsDBNull(dr("ExcludeList")) Then oGame.ExcludeList = CStr(dr("ExcludeList"))
|
If Not IsDBNull(dr("ExcludeList")) Then oGame.ExcludeList = CStr(dr("ExcludeList"))
|
||||||
|
oGame.MonitorOnly = CBool(dr("MonitorOnly"))
|
||||||
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
|
If Not IsDBNull(dr("Parameter")) Then oGame.Parameter = CStr(dr("Parameter"))
|
||||||
oGame.Tags = mgrGameTags.GetTagsByGameForExport(sID)
|
oGame.Tags = mgrGameTags.GetTagsByGameForExport(sID)
|
||||||
oList.Add(oGame)
|
oList.Add(oGame)
|
||||||
@@ -685,18 +710,24 @@ Public Class mgrMonitorList
|
|||||||
Dim oList As List(Of Game)
|
Dim oList As List(Of Game)
|
||||||
Dim bSuccess As Boolean = False
|
Dim bSuccess As Boolean = False
|
||||||
Dim oTagFilters As New List(Of clsTag)
|
Dim oTagFilters As New List(Of clsTag)
|
||||||
Dim oStringFilters As New Hashtable
|
Dim oFilters As New List(Of clsGameFilter)
|
||||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
|
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||||
|
Dim bAndOperator As Boolean = True
|
||||||
|
Dim bSortAsc As Boolean = True
|
||||||
|
Dim sSortField As String = "Name"
|
||||||
|
|
||||||
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmApplyFilter, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmApplyFilter, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||||
Dim frm As New frmFilter
|
Dim frm As New frmFilter
|
||||||
frm.ShowDialog()
|
frm.ShowDialog()
|
||||||
oTagFilters = frm.TagFilters
|
oTagFilters = frm.TagFilters
|
||||||
oStringFilters = frm.StringFilters
|
oFilters = frm.GameFilters
|
||||||
eCurrentFilter = frm.FilterType
|
eCurrentFilter = frm.FilterType
|
||||||
|
bAndOperator = frm.AndOperator
|
||||||
|
bSortAsc = frm.SortAsc
|
||||||
|
sSortField = frm.SortField
|
||||||
End If
|
End If
|
||||||
|
|
||||||
oList = ReadListForExport(oTagFilters, oStringFilters, eCurrentFilter)
|
oList = ReadListForExport(oTagFilters, oFilters, eCurrentFilter, bAndOperator, bSortAsc, sSortField)
|
||||||
|
|
||||||
bSuccess = mgrXML.SerializeAndExport(oList, sLocation)
|
bSuccess = mgrXML.SerializeAndExport(oList, sLocation)
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ Public Class mgrXML
|
|||||||
oGame.FolderSave = g.FolderSave
|
oGame.FolderSave = g.FolderSave
|
||||||
oGame.FileType = g.FileType
|
oGame.FileType = g.FileType
|
||||||
oGame.ExcludeList = g.ExcludeList
|
oGame.ExcludeList = g.ExcludeList
|
||||||
|
oGame.MonitorOnly = g.MonitorOnly
|
||||||
oGame.Parameter = g.Parameter
|
oGame.Parameter = g.Parameter
|
||||||
For Each t As Tag In g.Tags
|
For Each t As Tag In g.Tags
|
||||||
oGame.ImportTags.Add(t)
|
oGame.ImportTags.Add(t)
|
||||||
|
|||||||
@@ -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.3.*")>
|
<Assembly: AssemblyVersion("1.0.4.*")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.3.0")>
|
<Assembly: AssemblyFileVersion("1.0.4.0")>
|
||||||
|
|
||||||
<Assembly: NeutralResourcesLanguageAttribute("en")>
|
<Assembly: NeutralResourcesLanguageAttribute("en")>
|
||||||
Generated
+284
-32
@@ -924,6 +924,15 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Add.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_btnAddFilter() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_btnAddFilter", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to &OK.
|
''' Looks up a localized string similar to &OK.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
@@ -942,6 +951,204 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Remove.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_btnRemoveFilter() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_btnRemoveFilter", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Disabled.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_cboBoolFilterDisabled() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_cboBoolFilterDisabled", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Enabled.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_cboBoolFilterEnabled() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_cboBoolFilterEnabled", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Game Information.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_chkGameInfo() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_chkGameInfo", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Tag.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_chkTag() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_chkTag", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Backup Limit *.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldBackupLimit() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldBackupLimit", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Delete Folder on Restore.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldCleanFolder() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldCleanFolder", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Company.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldCompany() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldCompany", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Monitor Game.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldEnabled() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldEnabled", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Exclude Items.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldExcludeList() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldExcludeList", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Include Items.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldFileType() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldFileType", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Save Entire Folder.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldFolderSave() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldFolderSave", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Hours.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldHours() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldHours", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Icon.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldIcon() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldIcon", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Monitor Only.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldMonitorOnly() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldMonitorOnly", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Name.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldName() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldName", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Parameter.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldParameter() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldParameter", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Save Path *.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldPath() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldPath", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Process.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldProcess() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldProcess", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Game Path.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldProcessPath() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldProcessPath", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Save Multiple Backups.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldTimeStamp() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldTimeStamp", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Version.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldVersion() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldVersion", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Custom Filter.
|
''' Looks up a localized string similar to Custom Filter.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
@@ -952,11 +1159,29 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Options.
|
''' Looks up a localized string similar to Filter Type.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_grpGameInfoOptions() As String
|
Friend ReadOnly Property frmFilter_grpFilterType() As String
|
||||||
Get
|
Get
|
||||||
Return ResourceManager.GetString("frmFilter_grpGameInfoOptions", resourceCulture)
|
Return ResourceManager.GetString("frmFilter_grpFilterType", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Sorting.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_grpSorting() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_grpSorting", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Sort Options.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_grpSortOptions() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_grpSortOptions", resourceCulture)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -970,11 +1195,29 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Company:.
|
''' Looks up a localized string similar to Current Filters.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_lblCompany() As String
|
Friend ReadOnly Property frmFilter_lblCurrentFilters() As String
|
||||||
Get
|
Get
|
||||||
Return ResourceManager.GetString("frmFilter_lblCompany", resourceCulture)
|
Return ResourceManager.GetString("frmFilter_lblCurrentFilters", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Available Fields.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_lblFields() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_lblFields", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Filter.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_lblFilterData() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_lblFilterData", resourceCulture)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -988,20 +1231,11 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Name:.
|
''' Looks up a localized string similar to Available Fields.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_lblName() As String
|
Friend ReadOnly Property frmFilter_lblSortsFields() As String
|
||||||
Get
|
Get
|
||||||
Return ResourceManager.GetString("frmFilter_lblName", resourceCulture)
|
Return ResourceManager.GetString("frmFilter_lblSortsFields", resourceCulture)
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Looks up a localized string similar to Process:.
|
|
||||||
'''</summary>
|
|
||||||
Friend ReadOnly Property frmFilter_lblProcess() As String
|
|
||||||
Get
|
|
||||||
Return ResourceManager.GetString("frmFilter_lblProcess", resourceCulture)
|
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -1014,6 +1248,24 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to * Indicates a field that may give unexpected results..
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_lblWarning() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_lblWarning", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to contains.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_lstFilterContains() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_lstFilterContains", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to All Tags.
|
''' Looks up a localized string similar to All Tags.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
@@ -1024,7 +1276,7 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to And.
|
''' Looks up a localized string similar to All.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_optAnd() As String
|
Friend ReadOnly Property frmFilter_optAnd() As String
|
||||||
Get
|
Get
|
||||||
@@ -1042,16 +1294,7 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Game Information.
|
''' Looks up a localized string similar to Any.
|
||||||
'''</summary>
|
|
||||||
Friend ReadOnly Property frmFilter_optGameInfo() As String
|
|
||||||
Get
|
|
||||||
Return ResourceManager.GetString("frmFilter_optGameInfo", resourceCulture)
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Looks up a localized string similar to Or.
|
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_optOr() As String
|
Friend ReadOnly Property frmFilter_optOr() As String
|
||||||
Get
|
Get
|
||||||
@@ -1060,11 +1303,20 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Tag.
|
''' Looks up a localized string similar to Ascending.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Friend ReadOnly Property frmFilter_optTag() As String
|
Friend ReadOnly Property frmFilter_optSortAsc() As String
|
||||||
Get
|
Get
|
||||||
Return ResourceManager.GetString("frmFilter_optTag", resourceCulture)
|
Return ResourceManager.GetString("frmFilter_optSortAsc", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to Descending.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_optSortDesc() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_optSortDesc", resourceCulture)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
|||||||
@@ -895,18 +895,9 @@
|
|||||||
<data name="frmFilter_FormName" xml:space="preserve">
|
<data name="frmFilter_FormName" xml:space="preserve">
|
||||||
<value>Custom Filter</value>
|
<value>Custom Filter</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_lblCompany" xml:space="preserve">
|
|
||||||
<value>Company:</value>
|
|
||||||
</data>
|
|
||||||
<data name="frmFilter_lblGameTags" xml:space="preserve">
|
<data name="frmFilter_lblGameTags" xml:space="preserve">
|
||||||
<value>Current Filter</value>
|
<value>Current Filter</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_lblName" xml:space="preserve">
|
|
||||||
<value>Name:</value>
|
|
||||||
</data>
|
|
||||||
<data name="frmFilter_lblProcess" xml:space="preserve">
|
|
||||||
<value>Process:</value>
|
|
||||||
</data>
|
|
||||||
<data name="frmFilter_lblTags" xml:space="preserve">
|
<data name="frmFilter_lblTags" xml:space="preserve">
|
||||||
<value>Available Tags</value>
|
<value>Available Tags</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -914,18 +905,18 @@
|
|||||||
<value>All Tags</value>
|
<value>All Tags</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_optAnd" xml:space="preserve">
|
<data name="frmFilter_optAnd" xml:space="preserve">
|
||||||
<value>And</value>
|
<value>All</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_optAny" xml:space="preserve">
|
<data name="frmFilter_optAny" xml:space="preserve">
|
||||||
<value>Any Tag</value>
|
<value>Any Tag</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_optGameInfo" xml:space="preserve">
|
<data name="frmFilter_chkGameInfo" xml:space="preserve">
|
||||||
<value>Game Information</value>
|
<value>Game Information</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_optOr" xml:space="preserve">
|
<data name="frmFilter_optOr" xml:space="preserve">
|
||||||
<value>Or</value>
|
<value>Any</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_optTag" xml:space="preserve">
|
<data name="frmFilter_chkTag" xml:space="preserve">
|
||||||
<value>Tag</value>
|
<value>Tag</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmGameTags_btnAdd" xml:space="preserve">
|
<data name="frmGameTags_btnAdd" xml:space="preserve">
|
||||||
@@ -1015,8 +1006,8 @@
|
|||||||
<data name="frmIncludeExclude_ToolTipTitle" xml:space="preserve">
|
<data name="frmIncludeExclude_ToolTipTitle" xml:space="preserve">
|
||||||
<value>Saved Game Explorer</value>
|
<value>Saved Game Explorer</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_grpGameInfoOptions" xml:space="preserve">
|
<data name="frmFilter_grpFilterType" xml:space="preserve">
|
||||||
<value>Options</value>
|
<value>Filter Type</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmFilter_grpTagOptions" xml:space="preserve">
|
<data name="frmFilter_grpTagOptions" xml:space="preserve">
|
||||||
<value>Options</value>
|
<value>Options</value>
|
||||||
@@ -1801,4 +1792,97 @@
|
|||||||
<data name="App_ErrorFocus" xml:space="preserve">
|
<data name="App_ErrorFocus" xml:space="preserve">
|
||||||
<value>GBM is busy with an open window on your desktop.</value>
|
<value>GBM is busy with an open window on your desktop.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="frmFilter_grpSorting" xml:space="preserve">
|
||||||
|
<value>Sorting</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_optSortAsc" xml:space="preserve">
|
||||||
|
<value>Ascending</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_optSortDesc" xml:space="preserve">
|
||||||
|
<value>Descending</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldCompany" xml:space="preserve">
|
||||||
|
<value>Company</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldHours" xml:space="preserve">
|
||||||
|
<value>Hours</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldName" xml:space="preserve">
|
||||||
|
<value>Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldProcess" xml:space="preserve">
|
||||||
|
<value>Process</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_btnAddFilter" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_btnRemoveFilter" xml:space="preserve">
|
||||||
|
<value>Remove</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldParameter" xml:space="preserve">
|
||||||
|
<value>Parameter</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldVersion" xml:space="preserve">
|
||||||
|
<value>Version</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lblCurrentFilters" xml:space="preserve">
|
||||||
|
<value>Current Filters</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lblFields" xml:space="preserve">
|
||||||
|
<value>Available Fields</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lblFilterData" xml:space="preserve">
|
||||||
|
<value>Filter</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_cboBoolFilterDisabled" xml:space="preserve">
|
||||||
|
<value>Disabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_cboBoolFilterEnabled" xml:space="preserve">
|
||||||
|
<value>Enabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldBackupLimit" xml:space="preserve">
|
||||||
|
<value>Backup Limit *</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldCleanFolder" xml:space="preserve">
|
||||||
|
<value>Delete Folder on Restore</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldEnabled" xml:space="preserve">
|
||||||
|
<value>Monitor Game</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldExcludeList" xml:space="preserve">
|
||||||
|
<value>Exclude Items</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldFileType" xml:space="preserve">
|
||||||
|
<value>Include Items</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldFolderSave" xml:space="preserve">
|
||||||
|
<value>Save Entire Folder</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldIcon" xml:space="preserve">
|
||||||
|
<value>Icon</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldMonitorOnly" xml:space="preserve">
|
||||||
|
<value>Monitor Only</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldPath" xml:space="preserve">
|
||||||
|
<value>Save Path *</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldProcessPath" xml:space="preserve">
|
||||||
|
<value>Game Path</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_FieldTimeStamp" xml:space="preserve">
|
||||||
|
<value>Save Multiple Backups</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lblSortsFields" xml:space="preserve">
|
||||||
|
<value>Available Fields</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lblWarning" xml:space="preserve">
|
||||||
|
<value>* Indicates a field that may give unexpected results.</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_lstFilterContains" xml:space="preserve">
|
||||||
|
<value>contains</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmFilter_grpSortOptions" xml:space="preserve">
|
||||||
|
<value>Sort Options</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
+13
-7
@@ -1,14 +1,20 @@
|
|||||||
Game Backup Monitor v1.03 Readme
|
Game Backup Monitor v1.04 Readme
|
||||||
http://mikemaximus.github.io/gbm-web/
|
http://mikemaximus.github.io/gbm-web/
|
||||||
gamebackupmonitor@gmail.com
|
gamebackupmonitor@gmail.com
|
||||||
|
|
||||||
August 2, 2017
|
September 26, 2017
|
||||||
|
|
||||||
New in 1.03
|
New in 1.04
|
||||||
|
|
||||||
- (Windows) You can no longer Alt-Tab to GBM while it's minimized to the system tray. This was an unintentional change in v1.02 and caused various bugs.
|
- (All) The import feature now detects most saved games currently on your PC and automatically selects configurations for you.
|
||||||
- (Windows) Fixed various issues and inconsistent behavior when using the system tray and menu.
|
- (All) The Game Manager's "Custom Filter" feature has received a major overhaul:
|
||||||
- (Linux) Free drive space is now checked correctly when performing a backup. GBM now requires "df" (Coreutils) on Linux.
|
- More fields are now available for use.
|
||||||
- (All) Error messages related to SQLite will now be displayed correctly, instead of forcing the application to exit.
|
- Added the ability to combine different filters.
|
||||||
|
- Added the ability to set a sort field and order.
|
||||||
|
- The current filter is now saved when the Custom Filter window is closed and re-opened.
|
||||||
|
- (All) The "Monitor Only" feature has been updated. This feature allows tracking play time for games that do not require a backup, such as MMOs or CCGs.
|
||||||
|
- The Game Manager now disables and ignores validation on fields that aren't needed for a Monitor Only configuration.
|
||||||
|
- Monitor Only is now included in the XML Import / Export.
|
||||||
|
- Monitor Only configurations may now be included in the official game lists.
|
||||||
|
|
||||||
The entire version history of GBM releases is available at http://mikemaximus.github.io/gbm-web/versionhistory.html
|
The entire version history of GBM releases is available at http://mikemaximus.github.io/gbm-web/versionhistory.html
|
||||||
Reference in New Issue
Block a user