Added a quick find filter to Game Manager

This commit is contained in:
Michael J. Seiferling
2016-05-26 16:50:31 -06:00
parent cb9bab9892
commit 45e59f8ae6
4 changed files with 96 additions and 21 deletions
+43 -2
View File
@@ -18,8 +18,9 @@ Public Class frmGameManager
Private bIsDirty As Boolean = False
Private bIsLoading As Boolean = False
Private oCurrentTagFilters As New List(Of clsTag)
Private oCurrentStringFilters As New Hashtable
Private oCurrentStringFilters As New Hashtable
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
Private WithEvents tmFilterTimer As Timer
Private Enum eModes As Integer
View = 1
@@ -377,11 +378,19 @@ Public Class frmGameManager
Dim oApp As clsGame
Dim oData As KeyValuePair(Of String, String)
Dim oList As New List(Of KeyValuePair(Of String, String))
Dim sFilter As String = txtQuickFilter.Text
For Each de As DictionaryEntry In AppData
oApp = DirectCast(de.Value, clsGame)
oData = New KeyValuePair(Of String, String)(oApp.ID, oApp.Name)
oList.Add(oData)
'Apply the quick filter if applicable
If sFilter = String.Empty Then
oList.Add(oData)
Else
If oApp.Name.ToLower.Contains(sFilter.ToLower) Then
oList.Add(oData)
End If
End If
Next
oList.Sort(AddressOf mgrCommon.CompareByListBoxItemByValue)
@@ -749,6 +758,8 @@ Public Class frmGameManager
Case eModes.Add
grpFilter.Enabled = False
lstGames.Enabled = False
lblQuickFilter.Enabled = False
txtQuickFilter.Enabled = False
grpConfig.Enabled = True
chkMonitorOnly.Enabled = True
grpExtra.Enabled = True
@@ -781,6 +792,8 @@ Public Class frmGameManager
Case eModes.Edit
grpFilter.Enabled = False
lstGames.Enabled = False
lblQuickFilter.Enabled = False
txtQuickFilter.Enabled = False
grpConfig.Enabled = True
chkEnabled.Enabled = True
chkMonitorOnly.Enabled = True
@@ -803,6 +816,8 @@ Public Class frmGameManager
Case eModes.View
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
grpConfig.Enabled = True
chkEnabled.Enabled = True
chkMonitorOnly.Enabled = True
@@ -820,6 +835,8 @@ Public Class frmGameManager
Case eModes.ViewTemp
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
grpConfig.Enabled = False
chkEnabled.Enabled = False
chkMonitorOnly.Enabled = False
@@ -840,6 +857,8 @@ Public Class frmGameManager
Case eModes.Disabled
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
WipeControls(grpConfig.Controls)
WipeControls(grpExtra.Controls)
WipeControls(grpStats.Controls)
@@ -865,6 +884,8 @@ Public Class frmGameManager
btnExport.Enabled = True
Case eModes.MultiSelect
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
WipeControls(grpConfig.Controls)
WipeControls(grpExtra.Controls)
WipeControls(grpStats.Controls)
@@ -1333,6 +1354,12 @@ Public Class frmGameManager
btnAdd.Text = frmGameManager_btnAdd
cmsOfficial.Text = frmGameManager_cmsOfficial
cmsFile.Text = frmGameManager_cmsFile
lblQuickFilter.Text = frmGameManager_lblQuickFilter
'Init Filter Timer
tmFilterTimer = New Timer()
tmFilterTimer.Interval = 1000
tmFilterTimer.Enabled = False
End Sub
Private Sub frmGameManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
@@ -1489,4 +1516,18 @@ Public Class frmGameManager
ExportGameList()
End Sub
Private Sub txtQuickFilter_TextChanged(sender As Object, e As EventArgs) Handles txtQuickFilter.TextChanged
If Not tmFilterTimer.Enabled Then
tmFilterTimer.Enabled = True
tmFilterTimer.Start()
End If
End Sub
Private Sub tmFilterTimer_Tick(sender As Object, ByVal e As EventArgs) Handles tmFilterTimer.Tick
lstGames.DataSource = Nothing
FormatAndFillList()
tmFilterTimer.Stop()
tmFilterTimer.Enabled = False
End Sub
End Class