Operator feature change and minor bug fixes
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
Private oField As clsGameFilterField
|
||||
Private oData As Object
|
||||
Private eNumericOperator As eNumericOperators = eNumericOperators.Equals
|
||||
Private bNextBoolOperator As Boolean
|
||||
|
||||
Public Enum eNumericOperators
|
||||
Equals = 1
|
||||
@@ -41,15 +40,6 @@
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property NextBoolOperator As Boolean
|
||||
Get
|
||||
Return bNextBoolOperator
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
bNextBoolOperator = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property NumericOperator As eNumericOperators
|
||||
Get
|
||||
Return eNumericOperator
|
||||
|
||||
Generated
+14
-14
@@ -44,7 +44,7 @@ Partial Class frmFilter
|
||||
Me.lstFilter = New System.Windows.Forms.ListBox()
|
||||
Me.btnAddFilter = New System.Windows.Forms.Button()
|
||||
Me.cboFilterField = New System.Windows.Forms.ComboBox()
|
||||
Me.grpNextFilterOperator = New System.Windows.Forms.GroupBox()
|
||||
Me.grpFilterType = New System.Windows.Forms.GroupBox()
|
||||
Me.optOr = New System.Windows.Forms.RadioButton()
|
||||
Me.optAnd = New System.Windows.Forms.RadioButton()
|
||||
Me.txtStringFilter = New System.Windows.Forms.TextBox()
|
||||
@@ -61,7 +61,7 @@ Partial Class frmFilter
|
||||
Me.grpTagOptions.SuspendLayout()
|
||||
Me.grpGameFilter.SuspendLayout()
|
||||
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.grpNextFilterOperator.SuspendLayout()
|
||||
Me.grpFilterType.SuspendLayout()
|
||||
Me.grpSorting.SuspendLayout()
|
||||
Me.grpSortOptions.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
@@ -190,7 +190,7 @@ Partial Class frmFilter
|
||||
Me.grpGameFilter.Controls.Add(Me.lstFilter)
|
||||
Me.grpGameFilter.Controls.Add(Me.btnAddFilter)
|
||||
Me.grpGameFilter.Controls.Add(Me.cboFilterField)
|
||||
Me.grpGameFilter.Controls.Add(Me.grpNextFilterOperator)
|
||||
Me.grpGameFilter.Controls.Add(Me.grpFilterType)
|
||||
Me.grpGameFilter.Controls.Add(Me.txtStringFilter)
|
||||
Me.grpGameFilter.Location = New System.Drawing.Point(12, 35)
|
||||
Me.grpGameFilter.Name = "grpGameFilter"
|
||||
@@ -287,16 +287,16 @@ Partial Class frmFilter
|
||||
Me.cboFilterField.Size = New System.Drawing.Size(150, 21)
|
||||
Me.cboFilterField.TabIndex = 1
|
||||
'
|
||||
'grpNextFilterOperator
|
||||
'grpFilterType
|
||||
'
|
||||
Me.grpNextFilterOperator.Controls.Add(Me.optOr)
|
||||
Me.grpNextFilterOperator.Controls.Add(Me.optAnd)
|
||||
Me.grpNextFilterOperator.Location = New System.Drawing.Point(259, 81)
|
||||
Me.grpNextFilterOperator.Name = "grpNextFilterOperator"
|
||||
Me.grpNextFilterOperator.Size = New System.Drawing.Size(106, 46)
|
||||
Me.grpNextFilterOperator.TabIndex = 8
|
||||
Me.grpNextFilterOperator.TabStop = False
|
||||
Me.grpNextFilterOperator.Text = "Next Filter"
|
||||
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(106, 46)
|
||||
Me.grpFilterType.TabIndex = 8
|
||||
Me.grpFilterType.TabStop = False
|
||||
Me.grpFilterType.Text = "Filter Type"
|
||||
'
|
||||
'optOr
|
||||
'
|
||||
@@ -443,7 +443,7 @@ Partial Class frmFilter
|
||||
Me.grpGameFilter.ResumeLayout(False)
|
||||
Me.grpGameFilter.PerformLayout()
|
||||
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.grpNextFilterOperator.ResumeLayout(False)
|
||||
Me.grpFilterType.ResumeLayout(False)
|
||||
Me.grpSorting.ResumeLayout(False)
|
||||
Me.grpSorting.PerformLayout()
|
||||
Me.grpSortOptions.ResumeLayout(False)
|
||||
@@ -465,7 +465,7 @@ Partial Class frmFilter
|
||||
Friend WithEvents btnOK As System.Windows.Forms.Button
|
||||
Friend WithEvents grpGameFilter As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents txtStringFilter As System.Windows.Forms.TextBox
|
||||
Friend WithEvents grpNextFilterOperator As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpFilterType As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents optOr As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optAnd As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents grpSorting As GroupBox
|
||||
|
||||
+27
-22
@@ -13,6 +13,7 @@ Public Class frmFilter
|
||||
Dim oGameFilters As New List(Of clsGameFilter)
|
||||
Dim oValidFields As New List(Of clsGameFilterField)
|
||||
Dim eCurrentFilterType As eFilterType = eFilterType.BaseFilter
|
||||
Dim bAndOperator As Boolean = True
|
||||
Dim bSortAsc As Boolean = True
|
||||
Dim sSortField As String = "Name"
|
||||
Dim hshTags As New Hashtable
|
||||
@@ -46,6 +47,15 @@ Public Class frmFilter
|
||||
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
|
||||
@@ -287,25 +297,24 @@ Public Class frmFilter
|
||||
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 & """ / "
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
|
||||
Case clsGameFilterField.eDataType.fNumeric
|
||||
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data & " / "
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||
Case clsGameFilterField.eDataType.fBool
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data & " / "
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||
End Select
|
||||
|
||||
If oFilter.NextBoolOperator Then
|
||||
sFilter &= frmFilter_optAnd
|
||||
Else
|
||||
sFilter &= frmFilter_optOr
|
||||
End If
|
||||
|
||||
iParameterIndex += 1
|
||||
|
||||
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
|
||||
@@ -374,27 +383,20 @@ Public Class frmFilter
|
||||
'Build Filter
|
||||
oFilter.ID = "PARAM" & iParameterIndex
|
||||
oFilter.Field = cboFilterField.SelectedValue
|
||||
oFilter.NextBoolOperator = optAnd.Checked
|
||||
|
||||
Select Case oFilter.Field.Type
|
||||
Case clsGameFilterField.eDataType.fString
|
||||
oFilter.Data = txtStringFilter.Text
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """ / "
|
||||
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 & " / "
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||
Case clsGameFilterField.eDataType.fBool
|
||||
oFilter.Data = cboBoolFilter.SelectedValue
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data & " / "
|
||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||
End Select
|
||||
|
||||
If oFilter.NextBoolOperator Then
|
||||
sFilter &= frmFilter_optAnd
|
||||
Else
|
||||
sFilter &= frmFilter_optOr
|
||||
End If
|
||||
|
||||
oGameFilters.Add(oFilter)
|
||||
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
|
||||
|
||||
@@ -418,8 +420,9 @@ Public Class frmFilter
|
||||
|
||||
|
||||
If chkGameInfo.Checked Then
|
||||
'Set Filter Type
|
||||
'Set Filter Type(s)
|
||||
eCurrentFilterType = eFilterType.BaseFilter
|
||||
bAndOperator = optAnd.Checked
|
||||
End If
|
||||
|
||||
If chkTag.Checked Then
|
||||
@@ -515,7 +518,7 @@ Public Class frmFilter
|
||||
'Set Form Text
|
||||
optOr.Text = frmFilter_optOr
|
||||
optAnd.Text = frmFilter_optAnd
|
||||
grpNextFilterOperator.Text = frmFilter_grpNextFilterOperator
|
||||
grpFilterType.Text = frmFilter_grpFilterType
|
||||
optAll.Text = frmFilter_optAll
|
||||
optAny.Text = frmFilter_optAny
|
||||
lblGameTags.Text = frmFilter_lblGameTags
|
||||
@@ -538,6 +541,7 @@ Public Class frmFilter
|
||||
grpSortOptions.Text = frmFilter_grpSortOptions
|
||||
|
||||
'Defaults
|
||||
optAnd.Checked = True
|
||||
optSortAsc.Checked = True
|
||||
grpGameFilter.Enabled = False
|
||||
grpTagFilter.Enabled = False
|
||||
@@ -579,6 +583,7 @@ Public Class frmFilter
|
||||
If chkGameInfo.Checked Then
|
||||
grpGameFilter.Enabled = True
|
||||
Else
|
||||
optAnd.Checked = True
|
||||
grpGameFilter.Enabled = False
|
||||
oGameFilters.Clear()
|
||||
lstFilter.Items.Clear()
|
||||
|
||||
@@ -22,6 +22,7 @@ Public Class frmGameManager
|
||||
Private oCurrentTagFilters As New List(Of clsTag)
|
||||
Private oCurrentFilters As New List(Of clsGameFilter)
|
||||
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||
Private bCurrentAndOperator As Boolean = True
|
||||
Private bCurrentSortAsc As Boolean = True
|
||||
Private sCurrentSortField As String = "Name"
|
||||
Private WithEvents tmFilterTimer As Timer
|
||||
@@ -225,9 +226,11 @@ Public Class frmGameManager
|
||||
If optCustom.Checked Then
|
||||
If Not bRetainFilter Then
|
||||
frm = New frmFilter
|
||||
|
||||
frm.TagFilters = oCurrentTagFilters
|
||||
frm.GameFilters = oCurrentFilters
|
||||
frm.FilterType = eCurrentFilter
|
||||
frm.AndOperator = bCurrentAndOperator
|
||||
frm.SortAsc = bCurrentSortAsc
|
||||
frm.SortField = sCurrentSortField
|
||||
|
||||
@@ -236,6 +239,7 @@ Public Class frmGameManager
|
||||
oCurrentTagFilters = frm.TagFilters
|
||||
oCurrentFilters = frm.GameFilters
|
||||
eCurrentFilter = frm.FilterType
|
||||
bCurrentAndOperator = frm.AndOperator
|
||||
bCurrentSortAsc = frm.SortAsc
|
||||
sCurrentSortField = frm.SortField
|
||||
End If
|
||||
@@ -247,7 +251,7 @@ Public Class frmGameManager
|
||||
sCurrentSortField = "Name"
|
||||
End If
|
||||
|
||||
GameData = mgrMonitorList.ReadFilteredList(oCurrentTagFilters, oCurrentFilters, eCurrentFilter, bCurrentSortAsc, sCurrentSortField)
|
||||
GameData = mgrMonitorList.ReadFilteredList(oCurrentTagFilters, oCurrentFilters, eCurrentFilter, bCurrentAndOperator, bCurrentSortAsc, sCurrentSortField)
|
||||
|
||||
If optPendingRestores.Checked Then
|
||||
oRestoreData = mgrRestore.CompareManifests
|
||||
|
||||
@@ -497,8 +497,8 @@ Public Class mgrMonitorList
|
||||
End Sub
|
||||
|
||||
'Filter Functions
|
||||
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
|
||||
ByVal sSortField As String, 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 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"
|
||||
@@ -564,7 +564,7 @@ Public Class mgrMonitorList
|
||||
|
||||
iCounter += 1
|
||||
If iCounter <> oFilters.Count Then
|
||||
If oFilter.NextBoolOperator Then
|
||||
If bAndOperator Then
|
||||
sSQL &= " AND "
|
||||
Else
|
||||
sSQL &= " OR "
|
||||
@@ -581,8 +581,8 @@ Public Class mgrMonitorList
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function ReadFilteredList(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
|
||||
ByVal sSortField As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As OrderedDictionary
|
||||
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 oData As DataSet
|
||||
Dim sSQL As String = String.Empty
|
||||
@@ -591,7 +591,7 @@ Public Class mgrMonitorList
|
||||
Dim hshParams As New Hashtable
|
||||
Dim iCounter As Integer = 0
|
||||
|
||||
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bSortAsc, sSortField, hshParams)
|
||||
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bAndOperator, bSortAsc, sSortField, hshParams)
|
||||
|
||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||
|
||||
@@ -606,8 +606,8 @@ Public Class mgrMonitorList
|
||||
|
||||
|
||||
'Import / Export Functions
|
||||
Public Shared Function ReadListForExport(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
|
||||
ByVal sSortField As String, 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 oData As DataSet
|
||||
Dim sSQL As String = String.Empty
|
||||
@@ -616,7 +616,7 @@ Public Class mgrMonitorList
|
||||
Dim oGame As Game
|
||||
Dim hshParams As New Hashtable
|
||||
|
||||
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bSortAsc, sSortField, hshParams)
|
||||
sSQL = BuildFilterQuery(oTagFilters, oFilters, eFilterType, bAndOperator, bSortAsc, sSortField, hshParams)
|
||||
|
||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||
|
||||
@@ -711,6 +711,7 @@ Public Class mgrMonitorList
|
||||
Dim oTagFilters As New List(Of clsTag)
|
||||
Dim oFilters As New List(Of clsGameFilter)
|
||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||
Dim bAndOperator As Boolean = True
|
||||
Dim bSortAsc As Boolean = True
|
||||
Dim sSortField As String = "Name"
|
||||
|
||||
@@ -720,11 +721,12 @@ Public Class mgrMonitorList
|
||||
oTagFilters = frm.TagFilters
|
||||
oFilters = frm.GameFilters
|
||||
eCurrentFilter = frm.FilterType
|
||||
bAndOperator = frm.AndOperator
|
||||
bSortAsc = frm.SortAsc
|
||||
sSortField = frm.SortField
|
||||
End If
|
||||
|
||||
oList = ReadListForExport(oTagFilters, oFilters, eCurrentFilter, bSortAsc, sSortField)
|
||||
oList = ReadListForExport(oTagFilters, oFilters, eCurrentFilter, bAndOperator, bSortAsc, sSortField)
|
||||
|
||||
bSuccess = mgrXML.SerializeAndExport(oList, sLocation)
|
||||
|
||||
|
||||
Generated
+3
-3
@@ -1159,11 +1159,11 @@ Namespace My.Resources
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Next Filter.
|
||||
''' Looks up a localized string similar to Filter Type.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmFilter_grpNextFilterOperator() As String
|
||||
Friend ReadOnly Property frmFilter_grpFilterType() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmFilter_grpNextFilterOperator", resourceCulture)
|
||||
Return ResourceManager.GetString("frmFilter_grpFilterType", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -1006,8 +1006,8 @@
|
||||
<data name="frmIncludeExclude_ToolTipTitle" xml:space="preserve">
|
||||
<value>Saved Game Explorer</value>
|
||||
</data>
|
||||
<data name="frmFilter_grpNextFilterOperator" xml:space="preserve">
|
||||
<value>Next Filter</value>
|
||||
<data name="frmFilter_grpFilterType" xml:space="preserve">
|
||||
<value>Filter Type</value>
|
||||
</data>
|
||||
<data name="frmFilter_grpTagOptions" xml:space="preserve">
|
||||
<value>Options</value>
|
||||
|
||||
Reference in New Issue
Block a user