Enhancement for issue #81
This commit is contained in:
@@ -7,6 +7,7 @@ Public Class frmGameManager
|
|||||||
Private bPendingRestores As Boolean = False
|
Private bPendingRestores As Boolean = False
|
||||||
Private oCurrentBackupItem As clsBackup
|
Private oCurrentBackupItem As clsBackup
|
||||||
Private oCurrentGame As clsGame
|
Private oCurrentGame As clsGame
|
||||||
|
Private oTagsToSave As New List(Of KeyValuePair(Of String, String))
|
||||||
Private bDisableExternalFunctions As Boolean = False
|
Private bDisableExternalFunctions As Boolean = False
|
||||||
Private bTriggerBackup As Boolean = False
|
Private bTriggerBackup As Boolean = False
|
||||||
Private bTriggerRestore As Boolean = False
|
Private bTriggerRestore As Boolean = False
|
||||||
@@ -526,17 +527,30 @@ Public Class frmGameManager
|
|||||||
Dim oApp As clsGame
|
Dim oApp As clsGame
|
||||||
Dim sMonitorIDs As New List(Of String)
|
Dim sMonitorIDs As New List(Of String)
|
||||||
|
|
||||||
|
If eCurrentMode = eModes.Add Then
|
||||||
|
'Use a dummy ID
|
||||||
|
sMonitorIDs.Add(Guid.NewGuid.ToString)
|
||||||
|
frm.GameName = txtName.Text
|
||||||
|
frm.NewMode = True
|
||||||
|
frm.TagList = oTagsToSave
|
||||||
|
Else
|
||||||
For Each oData In lstGames.SelectedItems
|
For Each oData In lstGames.SelectedItems
|
||||||
oApp = DirectCast(AppData(oData.Key), clsGame)
|
oApp = DirectCast(AppData(oData.Key), clsGame)
|
||||||
sMonitorIDs.Add(oApp.ID)
|
sMonitorIDs.Add(oApp.ID)
|
||||||
Next
|
Next
|
||||||
|
frm.GameName = CurrentGame.Name
|
||||||
|
frm.NewMode = False
|
||||||
|
End If
|
||||||
|
|
||||||
frm.IDList = sMonitorIDs
|
frm.IDList = sMonitorIDs
|
||||||
frm.GameName = CurrentGame.Name
|
|
||||||
frm.ShowDialog()
|
frm.ShowDialog()
|
||||||
|
|
||||||
|
If eCurrentMode = eModes.Add Then
|
||||||
|
oTagsToSave = frm.TagList
|
||||||
|
FillTagsbyList(frm.TagList)
|
||||||
|
Else
|
||||||
'Only update visible tags if one item is selected
|
'Only update visible tags if one item is selected
|
||||||
If lstGames.SelectedItems.Count = 1 Then FillTags(CurrentGame.ID)
|
If lstGames.SelectedItems.Count = 1 Then FillTagsbyID(CurrentGame.ID)
|
||||||
|
|
||||||
'If a tag filter is enabled, reload list to reflect changes
|
'If a tag filter is enabled, reload list to reflect changes
|
||||||
If optCustom.Checked Then
|
If optCustom.Checked Then
|
||||||
@@ -546,6 +560,8 @@ Public Class frmGameManager
|
|||||||
'If the selected game(s) no longer match the filter, disable the form
|
'If the selected game(s) no longer match the filter, disable the form
|
||||||
If lstGames.SelectedIndex = -1 Then eCurrentMode = eModes.Disabled
|
If lstGames.SelectedIndex = -1 Then eCurrentMode = eModes.Disabled
|
||||||
ModeChange()
|
ModeChange()
|
||||||
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub UpdateBackupInfo(ByVal sManifestID As String)
|
Private Sub UpdateBackupInfo(ByVal sManifestID As String)
|
||||||
@@ -731,7 +747,7 @@ Public Class frmGameManager
|
|||||||
txtVersion.Text = oApp.Version
|
txtVersion.Text = oApp.Version
|
||||||
txtIcon.Text = oApp.Icon
|
txtIcon.Text = oApp.Icon
|
||||||
|
|
||||||
FillTags(oData.Key)
|
FillTagsbyID(oData.Key)
|
||||||
|
|
||||||
'Icon
|
'Icon
|
||||||
If IO.File.Exists(oApp.Icon) Then
|
If IO.File.Exists(oApp.Icon) Then
|
||||||
@@ -756,7 +772,7 @@ Public Class frmGameManager
|
|||||||
IsLoading = False
|
IsLoading = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub FillTags(ByVal sID As String)
|
Private Sub FillTagsbyID(ByVal sID As String)
|
||||||
Dim hshTags As Hashtable
|
Dim hshTags As Hashtable
|
||||||
Dim oTag As clsTag
|
Dim oTag As clsTag
|
||||||
Dim sTags As String = String.Empty
|
Dim sTags As String = String.Empty
|
||||||
@@ -772,6 +788,17 @@ Public Class frmGameManager
|
|||||||
lblTags.Text = sTags.TrimEnd(cTrim)
|
lblTags.Text = sTags.TrimEnd(cTrim)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub FillTagsbyList(ByVal oList As List(Of KeyValuePair(Of String, String)))
|
||||||
|
Dim sTags As String = String.Empty
|
||||||
|
Dim cTrim() As Char = {",", " "}
|
||||||
|
|
||||||
|
For Each kp As KeyValuePair(Of String, String) In oList
|
||||||
|
sTags &= "#" & kp.Value & ", "
|
||||||
|
Next
|
||||||
|
|
||||||
|
lblTags.Text = sTags.TrimEnd(cTrim)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub DirtyCheck_ValueChanged(sender As Object, e As EventArgs)
|
Private Sub DirtyCheck_ValueChanged(sender As Object, e As EventArgs)
|
||||||
If Not IsLoading And Not eCurrentMode = eModes.MultiSelect Then
|
If Not IsLoading And Not eCurrentMode = eModes.MultiSelect Then
|
||||||
IsDirty = True
|
IsDirty = True
|
||||||
@@ -817,6 +844,7 @@ Public Class frmGameManager
|
|||||||
|
|
||||||
Select Case eCurrentMode
|
Select Case eCurrentMode
|
||||||
Case eModes.Add
|
Case eModes.Add
|
||||||
|
oTagsToSave.Clear()
|
||||||
grpFilter.Enabled = False
|
grpFilter.Enabled = False
|
||||||
lstGames.Enabled = False
|
lstGames.Enabled = False
|
||||||
lblQuickFilter.Enabled = False
|
lblQuickFilter.Enabled = False
|
||||||
@@ -844,8 +872,9 @@ Public Class frmGameManager
|
|||||||
btnOpenRestorePath.Enabled = False
|
btnOpenRestorePath.Enabled = False
|
||||||
chkEnabled.Checked = True
|
chkEnabled.Checked = True
|
||||||
chkMonitorOnly.Checked = False
|
chkMonitorOnly.Checked = False
|
||||||
btnTags.Enabled = False
|
btnTags.Enabled = True
|
||||||
lblTags.Visible = False
|
lblTags.Text = String.Empty
|
||||||
|
lblTags.Visible = True
|
||||||
btnInclude.Text = frmGameManager_btnInclude
|
btnInclude.Text = frmGameManager_btnInclude
|
||||||
btnExclude.Text = frmGameManager_btnExclude
|
btnExclude.Text = frmGameManager_btnExclude
|
||||||
btnImport.Enabled = False
|
btnImport.Enabled = False
|
||||||
@@ -1053,6 +1082,22 @@ Public Class frmGameManager
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SaveTags(ByVal sID As String)
|
||||||
|
Dim oGameTag As clsGameTag
|
||||||
|
Dim oGameTags As List(Of clsGameTag)
|
||||||
|
|
||||||
|
If oTagsToSave.Count > 0 Then
|
||||||
|
oGameTags = New List(Of clsGameTag)
|
||||||
|
For Each kp As KeyValuePair(Of String, String) In oTagsToSave
|
||||||
|
oGameTag = New clsGameTag
|
||||||
|
oGameTag.MonitorID = sID
|
||||||
|
oGameTag.TagID = kp.Key
|
||||||
|
oGameTags.Add(oGameTag)
|
||||||
|
Next
|
||||||
|
mgrGameTags.DoGameTagAddBatch(oGameTags)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub SaveApp()
|
Private Sub SaveApp()
|
||||||
Dim oData As KeyValuePair(Of String, String)
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
Dim oApp As New clsGame
|
Dim oApp As New clsGame
|
||||||
@@ -1093,6 +1138,7 @@ Public Class frmGameManager
|
|||||||
If CoreValidatation(oApp) Then
|
If CoreValidatation(oApp) Then
|
||||||
bSuccess = True
|
bSuccess = True
|
||||||
mgrMonitorList.DoListAdd(oApp)
|
mgrMonitorList.DoListAdd(oApp)
|
||||||
|
SaveTags(oApp.ID)
|
||||||
eCurrentMode = eModes.View
|
eCurrentMode = eModes.View
|
||||||
End If
|
End If
|
||||||
Case eModes.Edit
|
Case eModes.Edit
|
||||||
|
|||||||
+58
-15
@@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
Public Class frmGameTags
|
Public Class frmGameTags
|
||||||
|
|
||||||
Dim sMonitorIDs As List(Of String)
|
Private sMonitorIDs As List(Of String)
|
||||||
Dim sGameName As String = String.Empty
|
Private sGameName As String = String.Empty
|
||||||
|
Private bNewMode As Boolean = False
|
||||||
|
Private oTagList As List(Of KeyValuePair(Of String, String))
|
||||||
|
|
||||||
Public Property IDList As List(Of String)
|
Public Property IDList As List(Of String)
|
||||||
Get
|
Get
|
||||||
@@ -23,6 +25,25 @@ Public Class frmGameTags
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Public Property NewMode As Boolean
|
||||||
|
Get
|
||||||
|
Return bNewMode
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
bNewMode = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property TagList As List(Of KeyValuePair(Of String, String))
|
||||||
|
Get
|
||||||
|
Return oTagList
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of KeyValuePair(Of String, String)))
|
||||||
|
oTagList = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
|
||||||
Private Sub AddTag()
|
Private Sub AddTag()
|
||||||
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))
|
||||||
@@ -40,7 +61,7 @@ Public Class frmGameTags
|
|||||||
oGameTags.Add(oGameTag)
|
oGameTags.Add(oGameTag)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
mgrGameTags.DoGameTagAddBatch(oGameTags)
|
If Not bNewMode Then mgrGameTags.DoGameTagAddBatch(oGameTags)
|
||||||
|
|
||||||
lstGameTags.Items.Add(oData)
|
lstGameTags.Items.Add(oData)
|
||||||
lstTags.Items.Remove(oData)
|
lstTags.Items.Remove(oData)
|
||||||
@@ -60,7 +81,7 @@ Public Class frmGameTags
|
|||||||
oGameTags.Add(oGameTag)
|
oGameTags.Add(oGameTag)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
mgrGameTags.DoGameTagAddBatch(oGameTags)
|
If Not bNewMode Then mgrGameTags.DoGameTagAddBatch(oGameTags)
|
||||||
|
|
||||||
lstGameTags.Items.Add(kp)
|
lstGameTags.Items.Add(kp)
|
||||||
lstTags.Items.Remove(kp)
|
lstTags.Items.Remove(kp)
|
||||||
@@ -86,7 +107,7 @@ Public Class frmGameTags
|
|||||||
oGameTags.Add(oGameTag)
|
oGameTags.Add(oGameTag)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
mgrGameTags.DoGameTagDelete(oGameTags)
|
If Not bNewMode Then mgrGameTags.DoGameTagDelete(oGameTags)
|
||||||
|
|
||||||
lstGameTags.Items.Remove(oData)
|
lstGameTags.Items.Remove(oData)
|
||||||
lstTags.Items.Add(oData)
|
lstTags.Items.Add(oData)
|
||||||
@@ -106,7 +127,7 @@ Public Class frmGameTags
|
|||||||
oGameTags.Add(oGameTag)
|
oGameTags.Add(oGameTag)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
mgrGameTags.DoGameTagDelete(oGameTags)
|
If Not bNewMode Then mgrGameTags.DoGameTagDelete(oGameTags)
|
||||||
|
|
||||||
lstGameTags.Items.Remove(kp)
|
lstGameTags.Items.Remove(kp)
|
||||||
lstTags.Items.Add(kp)
|
lstTags.Items.Add(kp)
|
||||||
@@ -121,16 +142,8 @@ Public Class frmGameTags
|
|||||||
Dim oTag As clsTag
|
Dim oTag As clsTag
|
||||||
Dim oData As KeyValuePair(Of String, String)
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
|
|
||||||
'Handle Data
|
'Load Tags
|
||||||
hshTags = mgrTags.ReadTags()
|
hshTags = mgrTags.ReadTags()
|
||||||
hshGameTags = mgrGameTags.GetTagsByGameMulti(IDList)
|
|
||||||
|
|
||||||
For Each de As DictionaryEntry In hshGameTags
|
|
||||||
oTag = DirectCast(de.Value, clsTag)
|
|
||||||
If hshTags.ContainsKey(oTag.Name) Then
|
|
||||||
hshTags.Remove(oTag.Name)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
'Handle Lists
|
'Handle Lists
|
||||||
lstTags.Items.Clear()
|
lstTags.Items.Clear()
|
||||||
@@ -141,11 +154,32 @@ Public Class frmGameTags
|
|||||||
lstGameTags.ValueMember = "Key"
|
lstGameTags.ValueMember = "Key"
|
||||||
lstGameTags.DisplayMember = "Value"
|
lstGameTags.DisplayMember = "Value"
|
||||||
|
|
||||||
|
If bNewMode Then
|
||||||
|
For Each kp As KeyValuePair(Of String, String) In oTagList
|
||||||
|
If hshTags.ContainsKey(kp.Value) Then
|
||||||
|
hshTags.Remove(kp.Value)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
For Each kp As KeyValuePair(Of String, String) In oTagList
|
||||||
|
lstGameTags.Items.Add(kp)
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
hshGameTags = mgrGameTags.GetTagsByGameMulti(IDList)
|
||||||
|
|
||||||
|
For Each de As DictionaryEntry In hshGameTags
|
||||||
|
oTag = DirectCast(de.Value, clsTag)
|
||||||
|
If hshTags.ContainsKey(oTag.Name) Then
|
||||||
|
hshTags.Remove(oTag.Name)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
For Each de As DictionaryEntry In hshGameTags
|
For Each de As DictionaryEntry In hshGameTags
|
||||||
oTag = DirectCast(de.Value, clsTag)
|
oTag = DirectCast(de.Value, clsTag)
|
||||||
oData = New KeyValuePair(Of String, String)(oTag.ID, oTag.Name)
|
oData = New KeyValuePair(Of String, String)(oTag.ID, oTag.Name)
|
||||||
lstGameTags.Items.Add(oData)
|
lstGameTags.Items.Add(oData)
|
||||||
Next
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
For Each de As DictionaryEntry In hshTags
|
For Each de As DictionaryEntry In hshTags
|
||||||
oTag = DirectCast(de.Value, clsTag)
|
oTag = DirectCast(de.Value, clsTag)
|
||||||
@@ -155,6 +189,14 @@ Public Class frmGameTags
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BuildTagList()
|
||||||
|
Dim oData As KeyValuePair(Of String, String)
|
||||||
|
oTagList.Clear()
|
||||||
|
For Each oData In lstGameTags.Items
|
||||||
|
oTagList.Add(oData)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub OpenTags()
|
Private Sub OpenTags()
|
||||||
Dim frm As New frmTags
|
Dim frm As New frmTags
|
||||||
frm.ShowDialog()
|
frm.ShowDialog()
|
||||||
@@ -185,6 +227,7 @@ Public Class frmGameTags
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
|
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
|
||||||
|
If bNewMode Then BuildTagList()
|
||||||
Me.Close()
|
Me.Close()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user