Compare commits
128 Commits
v0.94-beta
...
v0.97
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
378377a1a9 | ||
|
|
86ffc75666 | ||
|
|
f312e315b9 | ||
|
|
e567638c0e | ||
|
|
1f9fcca024 | ||
|
|
b68646c97e | ||
|
|
896c77fe11 | ||
|
|
e288c77ba8 | ||
|
|
8b779f6d66 | ||
|
|
ef6e608d30 | ||
|
|
7b524e42fc | ||
|
|
2beff1b46d | ||
|
|
0ad4fd890d | ||
|
|
761fed64cc | ||
|
|
f839793071 | ||
|
|
b8b4c63910 | ||
|
|
ef70c08469 | ||
|
|
45e59f8ae6 | ||
|
|
cb9bab9892 | ||
|
|
7f19ae6345 | ||
|
|
ab240b610c | ||
|
|
6c80094848 | ||
|
|
16649238f0 | ||
|
|
39460f57d5 | ||
|
|
d788c751f7 | ||
|
|
3acb790822 | ||
|
|
0e4f357c01 | ||
|
|
58684bf9a5 | ||
|
|
1d19a49b0e | ||
|
|
94bb4e70ef | ||
|
|
1c493f1d4e | ||
|
|
970b1f4e58 | ||
|
|
911b3bdfc4 | ||
|
|
ce759fe87f | ||
|
|
d1ca0a150e | ||
|
|
b149a19a8b | ||
|
|
b458b89b46 | ||
|
|
83df2edc90 | ||
|
|
31b72488b2 | ||
|
|
3dbf5d0e62 | ||
|
|
2eb6693275 | ||
|
|
d1e292d4bf | ||
|
|
640690514b | ||
|
|
aade2dcee9 | ||
|
|
76ffc79a6b | ||
|
|
a6341ffa76 | ||
|
|
09c7bf8f05 | ||
|
|
039f47fccd | ||
|
|
164bb4255e | ||
|
|
df5e8f2d2a | ||
|
|
7766a07cf3 | ||
|
|
e71b2f4064 | ||
|
|
be2335b61e | ||
|
|
ca9fef33ea | ||
|
|
93c9b1a5ee | ||
|
|
730305b694 | ||
|
|
8880373f34 | ||
|
|
321c72b6bf | ||
|
|
163b6cd3a0 | ||
|
|
44c2d98f25 | ||
|
|
f050061b76 | ||
|
|
0cafd00bf3 | ||
|
|
feb8a9d0b2 | ||
|
|
d46360b244 | ||
|
|
ca8798a460 | ||
|
|
da16a89baa | ||
|
|
b03545d86f | ||
|
|
430e1171fb | ||
|
|
e531ec5701 | ||
|
|
7a7fa65ce6 | ||
|
|
4c7d36baef | ||
|
|
de7a993abe | ||
|
|
ec47697434 | ||
|
|
a7b97912f2 | ||
|
|
8222f518f6 | ||
|
|
0a564ca510 | ||
|
|
85d9cc0c5f | ||
|
|
abbc6a4a70 | ||
|
|
5947b7d0b2 | ||
|
|
2fb18c5f19 | ||
|
|
47f4b0774d | ||
|
|
70be04b750 | ||
|
|
b5d6c058aa | ||
|
|
c847cf53d0 | ||
|
|
92ad195510 | ||
|
|
18686abced | ||
|
|
4f45239e90 | ||
|
|
88e0fa9afd | ||
|
|
51ca315edd | ||
|
|
da9a1d8b53 | ||
|
|
0e93d284ea | ||
|
|
96ca94a3ac | ||
|
|
83e14a20ad | ||
|
|
3c941bae8d | ||
|
|
4316a7c7be | ||
|
|
8778f2e1c0 | ||
|
|
8930f6d6cc | ||
|
|
50cb987e9a | ||
|
|
333d18f296 | ||
|
|
f79c446adc | ||
|
|
022ef5d35c | ||
|
|
3f35d442d5 | ||
|
|
3c64ef3320 | ||
|
|
8a359e949a | ||
|
|
19802a5883 | ||
|
|
87326981dd | ||
|
|
f22bcb91a9 | ||
|
|
fa27c3c389 | ||
|
|
d42093c860 | ||
|
|
7871b6e012 | ||
|
|
d26c78c093 | ||
|
|
80badb577a | ||
|
|
b270ffeabe | ||
|
|
83135acb90 | ||
|
|
1e68728930 | ||
|
|
a27802fea7 | ||
|
|
7abdf9da7b | ||
|
|
237f5e7fa4 | ||
|
|
f8207683ad | ||
|
|
b96f797bbf | ||
|
|
07a4981488 | ||
|
|
e0277ac0fa | ||
|
|
39bbafd731 | ||
|
|
3062b20775 | ||
|
|
525c7d3ec3 | ||
|
|
0339a09b08 | ||
|
|
de5d1e062a | ||
|
|
7e1302714d |
@@ -32,7 +32,7 @@
|
||||
ReadOnly Property CroppedName As String
|
||||
Get
|
||||
If Name.Length > 40 Then
|
||||
Return sName.Substring(0, 41) & "..."
|
||||
Return sName.Substring(0, 41).Trim & "..."
|
||||
Else
|
||||
Return sName
|
||||
End If
|
||||
@@ -41,7 +41,11 @@
|
||||
|
||||
Property FileName As String
|
||||
Get
|
||||
Return sFileName
|
||||
If mgrCommon.IsUnix Then
|
||||
Return sFileName.Replace("\", "/")
|
||||
Else
|
||||
Return sFileName.Replace("/", "\")
|
||||
End If
|
||||
End Get
|
||||
Set(value As String)
|
||||
sFileName = value
|
||||
|
||||
+55
-23
@@ -16,10 +16,19 @@
|
||||
Private bEnabled As Boolean = True
|
||||
Private bMonitorOnly As Boolean = False
|
||||
Private bDuplicate As Boolean = False
|
||||
Private sDOSBoxProcess As String = String.Empty
|
||||
Private bTempGame As Boolean = False
|
||||
Private oImportTags As New List(Of Tag)
|
||||
|
||||
<Flags()> Public Enum eOptionalSyncFields
|
||||
None = 0
|
||||
GamePath = 1
|
||||
Company = 2
|
||||
Version = 4
|
||||
Icon = 16
|
||||
TimeStamp = 32
|
||||
MonitorGame = 64
|
||||
End Enum
|
||||
|
||||
Property ID As String
|
||||
Set(value As String)
|
||||
sGameID = value
|
||||
@@ -29,17 +38,22 @@
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property CompoundKey As String
|
||||
Get
|
||||
Return ProcessName & ":" & Name
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property CroppedName As String
|
||||
Get
|
||||
If Name.Length > 40 Then
|
||||
Return sGameName.Substring(0, 41) & "..."
|
||||
Return sGameName.Substring(0, 41).Trim & "..."
|
||||
Else
|
||||
Return sGameName
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
Property Name As String
|
||||
Set(value As String)
|
||||
sGameName = value
|
||||
@@ -184,15 +198,6 @@
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property DOSBoxProcess As String
|
||||
Get
|
||||
Return sDOSBoxProcess
|
||||
End Get
|
||||
Set(value As String)
|
||||
sDOSBoxProcess = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property TruePath As String
|
||||
Get
|
||||
Return sPath
|
||||
@@ -223,15 +228,15 @@
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Function SyncEquals(obj As Object) As Boolean
|
||||
Public Function SyncEquals(obj As Object, eSyncFields As eOptionalSyncFields) As Boolean
|
||||
Dim oGame As clsGame = TryCast(obj, clsGame)
|
||||
If oGame Is Nothing Then
|
||||
Return False
|
||||
Else
|
||||
'Core Sync Fields
|
||||
If ID <> oGame.ID Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Name <> oGame.Name Then
|
||||
Return False
|
||||
End If
|
||||
@@ -259,6 +264,41 @@
|
||||
If Hours <> oGame.Hours Then
|
||||
Return False
|
||||
End If
|
||||
If MonitorOnly <> oGame.MonitorOnly Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
'Optional Sync Fields
|
||||
If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then
|
||||
If Company <> oGame.Company Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If (eSyncFields And eOptionalSyncFields.GamePath) = eOptionalSyncFields.GamePath Then
|
||||
If ProcessPath <> oGame.ProcessPath Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If (eSyncFields And eOptionalSyncFields.Icon) = eOptionalSyncFields.Icon Then
|
||||
If Icon <> oGame.Icon Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If (eSyncFields And eOptionalSyncFields.MonitorGame) = eOptionalSyncFields.MonitorGame Then
|
||||
If Enabled <> oGame.Enabled Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If (eSyncFields And eOptionalSyncFields.TimeStamp) = eOptionalSyncFields.TimeStamp Then
|
||||
If AppendTimeStamp <> oGame.AppendTimeStamp Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If (eSyncFields And eOptionalSyncFields.Version) = eOptionalSyncFields.Version Then
|
||||
If Version <> oGame.Version Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Return True
|
||||
End If
|
||||
End Function
|
||||
@@ -300,15 +340,7 @@
|
||||
'Handle Duplicates
|
||||
sProcessName = Me.ProcessName
|
||||
If Me.Duplicate Then
|
||||
If Me.ProcessName.Contains("dosbox") Then
|
||||
If Me.ProcessName.Split(":").Length = 3 Then
|
||||
sProcessName = Me.ProcessName.Remove(Me.ProcessName.LastIndexOf(":"))
|
||||
Else
|
||||
sProcessName = Me.ProcessName
|
||||
End If
|
||||
Else
|
||||
sProcessName = Me.ProcessName.Split(":")(0)
|
||||
End If
|
||||
sProcessName = Me.ProcessName.Split(":")(0)
|
||||
End If
|
||||
|
||||
Return sProcessName
|
||||
|
||||
Generated
+108
-229
@@ -26,17 +26,12 @@ Partial Class frmAddWizard
|
||||
Me.tabWizard = New System.Windows.Forms.TabControl()
|
||||
Me.tbPage1 = New System.Windows.Forms.TabPage()
|
||||
Me.lblStep1Title = New System.Windows.Forms.Label()
|
||||
Me.lblDrag1 = New System.Windows.Forms.Label()
|
||||
Me.lblStep1Instructions = New System.Windows.Forms.Label()
|
||||
Me.txtName = New System.Windows.Forms.TextBox()
|
||||
Me.lblStep1Intro = New System.Windows.Forms.Label()
|
||||
Me.tbPage2 = New System.Windows.Forms.TabPage()
|
||||
Me.lbldBox = New System.Windows.Forms.Label()
|
||||
Me.btndBoxBrowse = New System.Windows.Forms.Button()
|
||||
Me.txtdBoxProcess = New System.Windows.Forms.TextBox()
|
||||
Me.lblStep2Title = New System.Windows.Forms.Label()
|
||||
Me.lblStep2Instructions = New System.Windows.Forms.Label()
|
||||
Me.lblDrag2 = New System.Windows.Forms.Label()
|
||||
Me.btnProcessBrowse = New System.Windows.Forms.Button()
|
||||
Me.txtProcessPath = New System.Windows.Forms.TextBox()
|
||||
Me.lblStep2Intro = New System.Windows.Forms.Label()
|
||||
@@ -49,21 +44,18 @@ Partial Class frmAddWizard
|
||||
Me.txtSavePath = New System.Windows.Forms.TextBox()
|
||||
Me.lblStep3Intro = New System.Windows.Forms.Label()
|
||||
Me.tbPage3a = New System.Windows.Forms.TabPage()
|
||||
Me.grpFileTypes = New System.Windows.Forms.GroupBox()
|
||||
Me.optSpecificFile = New System.Windows.Forms.RadioButton()
|
||||
Me.btnFileTypeBrowse = New System.Windows.Forms.Button()
|
||||
Me.optFileType = New System.Windows.Forms.RadioButton()
|
||||
Me.btnStep3aClear = New System.Windows.Forms.Button()
|
||||
Me.lblIncludePathTitle = New System.Windows.Forms.Label()
|
||||
Me.lblIncludePath = New System.Windows.Forms.Label()
|
||||
Me.lblFileTypes = New System.Windows.Forms.Label()
|
||||
Me.btnInclude = New System.Windows.Forms.Button()
|
||||
Me.lblStep3aTitle = New System.Windows.Forms.Label()
|
||||
Me.lblStep3aInstructions = New System.Windows.Forms.Label()
|
||||
Me.txtFileTypes = New System.Windows.Forms.TextBox()
|
||||
Me.tbPage4 = New System.Windows.Forms.TabPage()
|
||||
Me.grpExclude = New System.Windows.Forms.GroupBox()
|
||||
Me.optExcludeSpecificFile = New System.Windows.Forms.RadioButton()
|
||||
Me.btnExcludeBrowse = New System.Windows.Forms.Button()
|
||||
Me.optExcludeFileType = New System.Windows.Forms.RadioButton()
|
||||
Me.optExcludeFolder = New System.Windows.Forms.RadioButton()
|
||||
Me.btnStep4Clear = New System.Windows.Forms.Button()
|
||||
Me.lblExcludePathTitle = New System.Windows.Forms.Label()
|
||||
Me.lblExcludePath = New System.Windows.Forms.Label()
|
||||
Me.lblExclude = New System.Windows.Forms.Label()
|
||||
Me.btnExclude = New System.Windows.Forms.Button()
|
||||
Me.lblStep4Title = New System.Windows.Forms.Label()
|
||||
Me.lblStep4Instructions = New System.Windows.Forms.Label()
|
||||
Me.txtExcludeList = New System.Windows.Forms.TextBox()
|
||||
@@ -74,15 +66,12 @@ Partial Class frmAddWizard
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.btnNext = New System.Windows.Forms.Button()
|
||||
Me.btnBack = New System.Windows.Forms.Button()
|
||||
Me.optFileTypeFolder = New System.Windows.Forms.RadioButton()
|
||||
Me.tabWizard.SuspendLayout()
|
||||
Me.tbPage1.SuspendLayout()
|
||||
Me.tbPage2.SuspendLayout()
|
||||
Me.tbPage3.SuspendLayout()
|
||||
Me.tbPage3a.SuspendLayout()
|
||||
Me.grpFileTypes.SuspendLayout()
|
||||
Me.tbPage4.SuspendLayout()
|
||||
Me.grpExclude.SuspendLayout()
|
||||
Me.tbPage5.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
@@ -105,7 +94,6 @@ Partial Class frmAddWizard
|
||||
'
|
||||
Me.tbPage1.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Title)
|
||||
Me.tbPage1.Controls.Add(Me.lblDrag1)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Instructions)
|
||||
Me.tbPage1.Controls.Add(Me.txtName)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Intro)
|
||||
@@ -126,25 +114,16 @@ Partial Class frmAddWizard
|
||||
Me.lblStep1Title.TabIndex = 8
|
||||
Me.lblStep1Title.Text = "Game Name"
|
||||
'
|
||||
'lblDrag1
|
||||
'
|
||||
Me.lblDrag1.AllowDrop = True
|
||||
Me.lblDrag1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblDrag1.Location = New System.Drawing.Point(14, 147)
|
||||
Me.lblDrag1.Name = "lblDrag1"
|
||||
Me.lblDrag1.Size = New System.Drawing.Size(303, 37)
|
||||
Me.lblDrag1.TabIndex = 7
|
||||
Me.lblDrag1.Text = "Drag a shortcut here to complete this step."
|
||||
'
|
||||
'lblStep1Instructions
|
||||
'
|
||||
Me.lblStep1Instructions.AllowDrop = True
|
||||
Me.lblStep1Instructions.Location = New System.Drawing.Point(14, 93)
|
||||
Me.lblStep1Instructions.Name = "lblStep1Instructions"
|
||||
Me.lblStep1Instructions.Size = New System.Drawing.Size(303, 42)
|
||||
Me.lblStep1Instructions.Size = New System.Drawing.Size(303, 85)
|
||||
Me.lblStep1Instructions.TabIndex = 6
|
||||
Me.lblStep1Instructions.Text = "The name of the game is used for the backup file and must conform to Windows file" &
|
||||
" name standards. It will be automatically filtered for length and invalid chara" &
|
||||
"cters. "
|
||||
Me.lblStep1Instructions.Text = "The name will be automatically filtered for length and invalid characters. You m" & _
|
||||
"ay drag and drop a shortcut here to complete this step, only Windows shortcuts a" & _
|
||||
"re currently supported."
|
||||
'
|
||||
'txtName
|
||||
'
|
||||
@@ -166,12 +145,8 @@ Partial Class frmAddWizard
|
||||
'tbPage2
|
||||
'
|
||||
Me.tbPage2.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.tbPage2.Controls.Add(Me.lbldBox)
|
||||
Me.tbPage2.Controls.Add(Me.btndBoxBrowse)
|
||||
Me.tbPage2.Controls.Add(Me.txtdBoxProcess)
|
||||
Me.tbPage2.Controls.Add(Me.lblStep2Title)
|
||||
Me.tbPage2.Controls.Add(Me.lblStep2Instructions)
|
||||
Me.tbPage2.Controls.Add(Me.lblDrag2)
|
||||
Me.tbPage2.Controls.Add(Me.btnProcessBrowse)
|
||||
Me.tbPage2.Controls.Add(Me.txtProcessPath)
|
||||
Me.tbPage2.Controls.Add(Me.lblStep2Intro)
|
||||
@@ -182,32 +157,6 @@ Partial Class frmAddWizard
|
||||
Me.tbPage2.TabIndex = 1
|
||||
Me.tbPage2.Text = "TabPage2"
|
||||
'
|
||||
'lbldBox
|
||||
'
|
||||
Me.lbldBox.AutoSize = True
|
||||
Me.lbldBox.Location = New System.Drawing.Point(184, 18)
|
||||
Me.lbldBox.Name = "lbldBox"
|
||||
Me.lbldBox.Size = New System.Drawing.Size(52, 13)
|
||||
Me.lbldBox.TabIndex = 14
|
||||
Me.lbldBox.Text = "DOS File:"
|
||||
'
|
||||
'btndBoxBrowse
|
||||
'
|
||||
Me.btndBoxBrowse.Location = New System.Drawing.Point(322, 14)
|
||||
Me.btndBoxBrowse.Name = "btndBoxBrowse"
|
||||
Me.btndBoxBrowse.Size = New System.Drawing.Size(27, 20)
|
||||
Me.btndBoxBrowse.TabIndex = 13
|
||||
Me.btndBoxBrowse.Text = "..."
|
||||
Me.btndBoxBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtdBoxProcess
|
||||
'
|
||||
Me.txtdBoxProcess.AllowDrop = True
|
||||
Me.txtdBoxProcess.Location = New System.Drawing.Point(244, 14)
|
||||
Me.txtdBoxProcess.Name = "txtdBoxProcess"
|
||||
Me.txtdBoxProcess.Size = New System.Drawing.Size(72, 20)
|
||||
Me.txtdBoxProcess.TabIndex = 12
|
||||
'
|
||||
'lblStep2Title
|
||||
'
|
||||
Me.lblStep2Title.AutoSize = True
|
||||
@@ -220,22 +169,12 @@ Partial Class frmAddWizard
|
||||
'
|
||||
'lblStep2Instructions
|
||||
'
|
||||
Me.lblStep2Instructions.AllowDrop = True
|
||||
Me.lblStep2Instructions.Location = New System.Drawing.Point(14, 93)
|
||||
Me.lblStep2Instructions.Name = "lblStep2Instructions"
|
||||
Me.lblStep2Instructions.Size = New System.Drawing.Size(303, 41)
|
||||
Me.lblStep2Instructions.Size = New System.Drawing.Size(303, 85)
|
||||
Me.lblStep2Instructions.TabIndex = 10
|
||||
Me.lblStep2Instructions.Text = "GBM needs to know what to look for when you run the application. Some games use " &
|
||||
"launchers. Do not monitor launchers, choose the actual game exe file."
|
||||
'
|
||||
'lblDrag2
|
||||
'
|
||||
Me.lblDrag2.AllowDrop = True
|
||||
Me.lblDrag2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblDrag2.Location = New System.Drawing.Point(14, 147)
|
||||
Me.lblDrag2.Name = "lblDrag2"
|
||||
Me.lblDrag2.Size = New System.Drawing.Size(336, 44)
|
||||
Me.lblDrag2.TabIndex = 9
|
||||
Me.lblDrag2.Text = "Drag a shortcut here to complete this step."
|
||||
Me.lblStep2Instructions.Text = resources.GetString("lblStep2Instructions.Text")
|
||||
'
|
||||
'btnProcessBrowse
|
||||
'
|
||||
@@ -295,8 +234,8 @@ Partial Class frmAddWizard
|
||||
Me.lblStep3Instructions.Name = "lblStep3Instructions"
|
||||
Me.lblStep3Instructions.Size = New System.Drawing.Size(303, 42)
|
||||
Me.lblStep3Instructions.TabIndex = 9
|
||||
Me.lblStep3Instructions.Text = "If you're unsure of exactly which files to backup, make sure Save Entire Folder " &
|
||||
"is checked. You can also time stamp your backup files to make incremental backu" &
|
||||
Me.lblStep3Instructions.Text = "If you're unsure of exactly which files to backup, make sure Save Entire Folder " & _
|
||||
"is checked. You can also time stamp your backup files to make incremental backu" & _
|
||||
"ps."
|
||||
'
|
||||
'chkTimeStamp
|
||||
@@ -347,8 +286,10 @@ Partial Class frmAddWizard
|
||||
'tbPage3a
|
||||
'
|
||||
Me.tbPage3a.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.tbPage3a.Controls.Add(Me.grpFileTypes)
|
||||
Me.tbPage3a.Controls.Add(Me.btnStep3aClear)
|
||||
Me.tbPage3a.Controls.Add(Me.lblIncludePathTitle)
|
||||
Me.tbPage3a.Controls.Add(Me.lblIncludePath)
|
||||
Me.tbPage3a.Controls.Add(Me.lblFileTypes)
|
||||
Me.tbPage3a.Controls.Add(Me.btnInclude)
|
||||
Me.tbPage3a.Controls.Add(Me.lblStep3aTitle)
|
||||
Me.tbPage3a.Controls.Add(Me.lblStep3aInstructions)
|
||||
Me.tbPage3a.Controls.Add(Me.txtFileTypes)
|
||||
@@ -358,58 +299,42 @@ Partial Class frmAddWizard
|
||||
Me.tbPage3a.TabIndex = 3
|
||||
Me.tbPage3a.Text = "TabPage4"
|
||||
'
|
||||
'grpFileTypes
|
||||
'lblIncludePathTitle
|
||||
'
|
||||
Me.grpFileTypes.Controls.Add(Me.optFileTypeFolder)
|
||||
Me.grpFileTypes.Controls.Add(Me.optSpecificFile)
|
||||
Me.grpFileTypes.Controls.Add(Me.btnFileTypeBrowse)
|
||||
Me.grpFileTypes.Controls.Add(Me.optFileType)
|
||||
Me.grpFileTypes.Location = New System.Drawing.Point(17, 43)
|
||||
Me.grpFileTypes.Name = "grpFileTypes"
|
||||
Me.grpFileTypes.Size = New System.Drawing.Size(310, 47)
|
||||
Me.grpFileTypes.TabIndex = 0
|
||||
Me.grpFileTypes.TabStop = False
|
||||
Me.grpFileTypes.Text = "Choose any files or folders to include in the backup"
|
||||
Me.lblIncludePathTitle.AutoSize = True
|
||||
Me.lblIncludePathTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblIncludePathTitle.Location = New System.Drawing.Point(14, 45)
|
||||
Me.lblIncludePathTitle.Name = "lblIncludePathTitle"
|
||||
Me.lblIncludePathTitle.Size = New System.Drawing.Size(122, 13)
|
||||
Me.lblIncludePathTitle.TabIndex = 6
|
||||
Me.lblIncludePathTitle.Text = "Saved Game Folder:"
|
||||
'
|
||||
'optSpecificFile
|
||||
'lblIncludePath
|
||||
'
|
||||
Me.optSpecificFile.AutoSize = True
|
||||
Me.optSpecificFile.Location = New System.Drawing.Point(80, 19)
|
||||
Me.optSpecificFile.Name = "optSpecificFile"
|
||||
Me.optSpecificFile.Size = New System.Drawing.Size(82, 17)
|
||||
Me.optSpecificFile.TabIndex = 2
|
||||
Me.optSpecificFile.TabStop = True
|
||||
Me.optSpecificFile.Text = "Specific File"
|
||||
Me.optSpecificFile.UseVisualStyleBackColor = True
|
||||
Me.lblIncludePath.AutoEllipsis = True
|
||||
Me.lblIncludePath.Location = New System.Drawing.Point(14, 60)
|
||||
Me.lblIncludePath.Name = "lblIncludePath"
|
||||
Me.lblIncludePath.Size = New System.Drawing.Size(324, 13)
|
||||
Me.lblIncludePath.TabIndex = 1
|
||||
Me.lblIncludePath.Text = "Save Path"
|
||||
'
|
||||
'btnFileTypeBrowse
|
||||
'lblFileTypes
|
||||
'
|
||||
Me.btnFileTypeBrowse.Location = New System.Drawing.Point(229, 16)
|
||||
Me.btnFileTypeBrowse.Name = "btnFileTypeBrowse"
|
||||
Me.btnFileTypeBrowse.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnFileTypeBrowse.TabIndex = 3
|
||||
Me.btnFileTypeBrowse.Text = "Browse..."
|
||||
Me.btnFileTypeBrowse.UseVisualStyleBackColor = True
|
||||
Me.lblFileTypes.AutoSize = True
|
||||
Me.lblFileTypes.Location = New System.Drawing.Point(199, 91)
|
||||
Me.lblFileTypes.Name = "lblFileTypes"
|
||||
Me.lblFileTypes.Size = New System.Drawing.Size(89, 13)
|
||||
Me.lblFileTypes.TabIndex = 3
|
||||
Me.lblFileTypes.Text = "0 item(s) selected"
|
||||
'
|
||||
'optFileType
|
||||
'btnInclude
|
||||
'
|
||||
Me.optFileType.AutoSize = True
|
||||
Me.optFileType.Location = New System.Drawing.Point(6, 19)
|
||||
Me.optFileType.Name = "optFileType"
|
||||
Me.optFileType.Size = New System.Drawing.Size(68, 17)
|
||||
Me.optFileType.TabIndex = 1
|
||||
Me.optFileType.TabStop = True
|
||||
Me.optFileType.Text = "File Type"
|
||||
Me.optFileType.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnStep3aClear
|
||||
'
|
||||
Me.btnStep3aClear.Location = New System.Drawing.Point(253, 93)
|
||||
Me.btnStep3aClear.Name = "btnStep3aClear"
|
||||
Me.btnStep3aClear.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnStep3aClear.TabIndex = 5
|
||||
Me.btnStep3aClear.Text = "&Clear"
|
||||
Me.btnStep3aClear.UseVisualStyleBackColor = True
|
||||
Me.btnInclude.Location = New System.Drawing.Point(17, 86)
|
||||
Me.btnInclude.Name = "btnInclude"
|
||||
Me.btnInclude.Size = New System.Drawing.Size(176, 23)
|
||||
Me.btnInclude.TabIndex = 2
|
||||
Me.btnInclude.Text = "Choose items to in&clude..."
|
||||
Me.btnInclude.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblStep3aTitle
|
||||
'
|
||||
@@ -418,7 +343,7 @@ Partial Class frmAddWizard
|
||||
Me.lblStep3aTitle.Location = New System.Drawing.Point(13, 11)
|
||||
Me.lblStep3aTitle.Name = "lblStep3aTitle"
|
||||
Me.lblStep3aTitle.Size = New System.Drawing.Size(199, 20)
|
||||
Me.lblStep3aTitle.TabIndex = 12
|
||||
Me.lblStep3aTitle.TabIndex = 0
|
||||
Me.lblStep3aTitle.Text = "Choose Files to Backup"
|
||||
'
|
||||
'lblStep3aInstructions
|
||||
@@ -426,25 +351,27 @@ Partial Class frmAddWizard
|
||||
Me.lblStep3aInstructions.Location = New System.Drawing.Point(14, 126)
|
||||
Me.lblStep3aInstructions.Name = "lblStep3aInstructions"
|
||||
Me.lblStep3aInstructions.Size = New System.Drawing.Size(303, 56)
|
||||
Me.lblStep3aInstructions.TabIndex = 11
|
||||
Me.lblStep3aInstructions.Text = "Choose any file types, specific files or folders you wish to include in the back" &
|
||||
"up. You may choose multiple items to include. If you're unsure, go back a step" &
|
||||
" and choose to save the entire folder. "
|
||||
Me.lblStep3aInstructions.TabIndex = 5
|
||||
Me.lblStep3aInstructions.Text = "Choose any file types, specific files or folders you wish to include in the back" & _
|
||||
"up. If you're unsure, go back a step and choose to save the entire folder. "
|
||||
'
|
||||
'txtFileTypes
|
||||
'
|
||||
Me.txtFileTypes.Location = New System.Drawing.Point(18, 95)
|
||||
Me.txtFileTypes.Location = New System.Drawing.Point(218, 14)
|
||||
Me.txtFileTypes.Name = "txtFileTypes"
|
||||
Me.txtFileTypes.ReadOnly = True
|
||||
Me.txtFileTypes.Size = New System.Drawing.Size(229, 20)
|
||||
Me.txtFileTypes.Size = New System.Drawing.Size(131, 20)
|
||||
Me.txtFileTypes.TabIndex = 4
|
||||
Me.txtFileTypes.TabStop = False
|
||||
Me.txtFileTypes.Visible = False
|
||||
'
|
||||
'tbPage4
|
||||
'
|
||||
Me.tbPage4.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.tbPage4.Controls.Add(Me.grpExclude)
|
||||
Me.tbPage4.Controls.Add(Me.btnStep4Clear)
|
||||
Me.tbPage4.Controls.Add(Me.lblExcludePathTitle)
|
||||
Me.tbPage4.Controls.Add(Me.lblExcludePath)
|
||||
Me.tbPage4.Controls.Add(Me.lblExclude)
|
||||
Me.tbPage4.Controls.Add(Me.btnExclude)
|
||||
Me.tbPage4.Controls.Add(Me.lblStep4Title)
|
||||
Me.tbPage4.Controls.Add(Me.lblStep4Instructions)
|
||||
Me.tbPage4.Controls.Add(Me.txtExcludeList)
|
||||
@@ -454,69 +381,42 @@ Partial Class frmAddWizard
|
||||
Me.tbPage4.TabIndex = 4
|
||||
Me.tbPage4.Text = "TabPage5"
|
||||
'
|
||||
'grpExclude
|
||||
'lblExcludePathTitle
|
||||
'
|
||||
Me.grpExclude.Controls.Add(Me.optExcludeSpecificFile)
|
||||
Me.grpExclude.Controls.Add(Me.btnExcludeBrowse)
|
||||
Me.grpExclude.Controls.Add(Me.optExcludeFileType)
|
||||
Me.grpExclude.Controls.Add(Me.optExcludeFolder)
|
||||
Me.grpExclude.Location = New System.Drawing.Point(17, 43)
|
||||
Me.grpExclude.Name = "grpExclude"
|
||||
Me.grpExclude.Size = New System.Drawing.Size(310, 47)
|
||||
Me.grpExclude.TabIndex = 0
|
||||
Me.grpExclude.TabStop = False
|
||||
Me.grpExclude.Text = "Choose any files or folders to exclude from the backup:"
|
||||
Me.lblExcludePathTitle.AutoSize = True
|
||||
Me.lblExcludePathTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblExcludePathTitle.Location = New System.Drawing.Point(14, 45)
|
||||
Me.lblExcludePathTitle.Name = "lblExcludePathTitle"
|
||||
Me.lblExcludePathTitle.Size = New System.Drawing.Size(122, 13)
|
||||
Me.lblExcludePathTitle.TabIndex = 7
|
||||
Me.lblExcludePathTitle.Text = "Saved Game Folder:"
|
||||
'
|
||||
'optExcludeSpecificFile
|
||||
'lblExcludePath
|
||||
'
|
||||
Me.optExcludeSpecificFile.AutoSize = True
|
||||
Me.optExcludeSpecificFile.Location = New System.Drawing.Point(80, 19)
|
||||
Me.optExcludeSpecificFile.Name = "optExcludeSpecificFile"
|
||||
Me.optExcludeSpecificFile.Size = New System.Drawing.Size(82, 17)
|
||||
Me.optExcludeSpecificFile.TabIndex = 2
|
||||
Me.optExcludeSpecificFile.TabStop = True
|
||||
Me.optExcludeSpecificFile.Text = "Specific File"
|
||||
Me.optExcludeSpecificFile.UseVisualStyleBackColor = True
|
||||
Me.lblExcludePath.AutoEllipsis = True
|
||||
Me.lblExcludePath.Location = New System.Drawing.Point(14, 60)
|
||||
Me.lblExcludePath.Name = "lblExcludePath"
|
||||
Me.lblExcludePath.Size = New System.Drawing.Size(334, 13)
|
||||
Me.lblExcludePath.TabIndex = 1
|
||||
Me.lblExcludePath.Text = "Save Path"
|
||||
'
|
||||
'btnExcludeBrowse
|
||||
'lblExclude
|
||||
'
|
||||
Me.btnExcludeBrowse.Location = New System.Drawing.Point(229, 16)
|
||||
Me.btnExcludeBrowse.Name = "btnExcludeBrowse"
|
||||
Me.btnExcludeBrowse.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnExcludeBrowse.TabIndex = 4
|
||||
Me.btnExcludeBrowse.Text = "&Browse..."
|
||||
Me.btnExcludeBrowse.UseVisualStyleBackColor = True
|
||||
Me.lblExclude.AutoSize = True
|
||||
Me.lblExclude.Location = New System.Drawing.Point(199, 91)
|
||||
Me.lblExclude.Name = "lblExclude"
|
||||
Me.lblExclude.Size = New System.Drawing.Size(89, 13)
|
||||
Me.lblExclude.TabIndex = 3
|
||||
Me.lblExclude.Text = "0 item(s) selected"
|
||||
'
|
||||
'optExcludeFileType
|
||||
'btnExclude
|
||||
'
|
||||
Me.optExcludeFileType.AutoSize = True
|
||||
Me.optExcludeFileType.Location = New System.Drawing.Point(6, 19)
|
||||
Me.optExcludeFileType.Name = "optExcludeFileType"
|
||||
Me.optExcludeFileType.Size = New System.Drawing.Size(68, 17)
|
||||
Me.optExcludeFileType.TabIndex = 1
|
||||
Me.optExcludeFileType.TabStop = True
|
||||
Me.optExcludeFileType.Text = "File Type"
|
||||
Me.optExcludeFileType.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optExcludeFolder
|
||||
'
|
||||
Me.optExcludeFolder.AutoSize = True
|
||||
Me.optExcludeFolder.Location = New System.Drawing.Point(168, 19)
|
||||
Me.optExcludeFolder.Name = "optExcludeFolder"
|
||||
Me.optExcludeFolder.Size = New System.Drawing.Size(54, 17)
|
||||
Me.optExcludeFolder.TabIndex = 3
|
||||
Me.optExcludeFolder.TabStop = True
|
||||
Me.optExcludeFolder.Text = "Folder"
|
||||
Me.optExcludeFolder.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnStep4Clear
|
||||
'
|
||||
Me.btnStep4Clear.Location = New System.Drawing.Point(253, 93)
|
||||
Me.btnStep4Clear.Name = "btnStep4Clear"
|
||||
Me.btnStep4Clear.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnStep4Clear.TabIndex = 6
|
||||
Me.btnStep4Clear.Text = "&Clear"
|
||||
Me.btnStep4Clear.UseVisualStyleBackColor = True
|
||||
Me.btnExclude.Location = New System.Drawing.Point(17, 86)
|
||||
Me.btnExclude.Name = "btnExclude"
|
||||
Me.btnExclude.Size = New System.Drawing.Size(176, 23)
|
||||
Me.btnExclude.TabIndex = 2
|
||||
Me.btnExclude.Text = "Choose items to e&xclude..."
|
||||
Me.btnExclude.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblStep4Title
|
||||
'
|
||||
@@ -525,7 +425,7 @@ Partial Class frmAddWizard
|
||||
Me.lblStep4Title.Location = New System.Drawing.Point(14, 11)
|
||||
Me.lblStep4Title.Name = "lblStep4Title"
|
||||
Me.lblStep4Title.Size = New System.Drawing.Size(201, 20)
|
||||
Me.lblStep4Title.TabIndex = 16
|
||||
Me.lblStep4Title.TabIndex = 0
|
||||
Me.lblStep4Title.Text = "Exclude Files or Folders"
|
||||
'
|
||||
'lblStep4Instructions
|
||||
@@ -533,17 +433,19 @@ Partial Class frmAddWizard
|
||||
Me.lblStep4Instructions.Location = New System.Drawing.Point(14, 126)
|
||||
Me.lblStep4Instructions.Name = "lblStep4Instructions"
|
||||
Me.lblStep4Instructions.Size = New System.Drawing.Size(303, 59)
|
||||
Me.lblStep4Instructions.TabIndex = 12
|
||||
Me.lblStep4Instructions.Text = resources.GetString("lblStep4Instructions.Text")
|
||||
Me.lblStep4Instructions.TabIndex = 5
|
||||
Me.lblStep4Instructions.Text = "Choose any file types, specific files or folders you wish to exclude from the ba" & _
|
||||
"ckup. You may choose multiple items to exclude. This step can be skipped."
|
||||
'
|
||||
'txtExcludeList
|
||||
'
|
||||
Me.txtExcludeList.Location = New System.Drawing.Point(18, 95)
|
||||
Me.txtExcludeList.Location = New System.Drawing.Point(221, 13)
|
||||
Me.txtExcludeList.Name = "txtExcludeList"
|
||||
Me.txtExcludeList.ReadOnly = True
|
||||
Me.txtExcludeList.Size = New System.Drawing.Size(229, 20)
|
||||
Me.txtExcludeList.TabIndex = 5
|
||||
Me.txtExcludeList.Size = New System.Drawing.Size(128, 20)
|
||||
Me.txtExcludeList.TabIndex = 4
|
||||
Me.txtExcludeList.TabStop = False
|
||||
Me.txtExcludeList.Visible = False
|
||||
'
|
||||
'tbPage5
|
||||
'
|
||||
@@ -581,6 +483,7 @@ Partial Class frmAddWizard
|
||||
Me.lstSummary.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
|
||||
Me.lstSummary.Location = New System.Drawing.Point(14, 65)
|
||||
Me.lstSummary.Name = "lstSummary"
|
||||
Me.lstSummary.ShowItemToolTips = True
|
||||
Me.lstSummary.Size = New System.Drawing.Size(335, 126)
|
||||
Me.lstSummary.TabIndex = 1
|
||||
Me.lstSummary.UseCompatibleStateImageBehavior = False
|
||||
@@ -613,17 +516,6 @@ Partial Class frmAddWizard
|
||||
Me.btnBack.Text = "&Back"
|
||||
Me.btnBack.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optFileTypeFolder
|
||||
'
|
||||
Me.optFileTypeFolder.AutoSize = True
|
||||
Me.optFileTypeFolder.Location = New System.Drawing.Point(168, 19)
|
||||
Me.optFileTypeFolder.Name = "optFileTypeFolder"
|
||||
Me.optFileTypeFolder.Size = New System.Drawing.Size(54, 17)
|
||||
Me.optFileTypeFolder.TabIndex = 4
|
||||
Me.optFileTypeFolder.TabStop = True
|
||||
Me.optFileTypeFolder.Text = "Folder"
|
||||
Me.optFileTypeFolder.UseVisualStyleBackColor = True
|
||||
'
|
||||
'frmAddWizard
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
@@ -649,12 +541,8 @@ Partial Class frmAddWizard
|
||||
Me.tbPage3.PerformLayout()
|
||||
Me.tbPage3a.ResumeLayout(False)
|
||||
Me.tbPage3a.PerformLayout()
|
||||
Me.grpFileTypes.ResumeLayout(False)
|
||||
Me.grpFileTypes.PerformLayout()
|
||||
Me.tbPage4.ResumeLayout(False)
|
||||
Me.tbPage4.PerformLayout()
|
||||
Me.grpExclude.ResumeLayout(False)
|
||||
Me.grpExclude.PerformLayout()
|
||||
Me.tbPage5.ResumeLayout(False)
|
||||
Me.tbPage5.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
@@ -670,12 +558,10 @@ Partial Class frmAddWizard
|
||||
Friend WithEvents tbPage3a As System.Windows.Forms.TabPage
|
||||
Friend WithEvents tbPage4 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents tbPage5 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents lblDrag1 As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep1Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents txtName As System.Windows.Forms.TextBox
|
||||
Friend WithEvents lblStep1Intro As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep2Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents lblDrag2 As System.Windows.Forms.Label
|
||||
Friend WithEvents btnProcessBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtProcessPath As System.Windows.Forms.TextBox
|
||||
Friend WithEvents lblStep2Intro As System.Windows.Forms.Label
|
||||
@@ -684,17 +570,10 @@ Partial Class frmAddWizard
|
||||
Friend WithEvents btnSaveBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtSavePath As System.Windows.Forms.TextBox
|
||||
Friend WithEvents lblStep3Intro As System.Windows.Forms.Label
|
||||
Friend WithEvents btnFileTypeBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtFileTypes As System.Windows.Forms.TextBox
|
||||
Friend WithEvents btnExcludeBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtExcludeList As System.Windows.Forms.TextBox
|
||||
Friend WithEvents optSpecificFile As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optFileType As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents lblStep3aInstructions As System.Windows.Forms.Label
|
||||
Friend WithEvents optExcludeFolder As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optExcludeFileType As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents lblStep4Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents optExcludeSpecificFile As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents lblStep3Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents lstSummary As System.Windows.Forms.ListView
|
||||
Friend WithEvents lblStep1Title As System.Windows.Forms.Label
|
||||
@@ -704,12 +583,12 @@ Partial Class frmAddWizard
|
||||
Friend WithEvents lblStep3aTitle As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep5Intro As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep5Title As System.Windows.Forms.Label
|
||||
Friend WithEvents btnStep3aClear As System.Windows.Forms.Button
|
||||
Friend WithEvents btnStep4Clear As System.Windows.Forms.Button
|
||||
Friend WithEvents grpExclude As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpFileTypes As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents lbldBox As System.Windows.Forms.Label
|
||||
Friend WithEvents btndBoxBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtdBoxProcess As System.Windows.Forms.TextBox
|
||||
Friend WithEvents optFileTypeFolder As RadioButton
|
||||
Friend WithEvents lblFileTypes As Label
|
||||
Friend WithEvents btnInclude As Button
|
||||
Friend WithEvents lblExclude As Label
|
||||
Friend WithEvents btnExclude As Button
|
||||
Friend WithEvents lblIncludePath As Label
|
||||
Friend WithEvents lblExcludePath As Label
|
||||
Friend WithEvents lblIncludePathTitle As Label
|
||||
Friend WithEvents lblExcludePathTitle As Label
|
||||
End Class
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblStep4Instructions.Text" xml:space="preserve">
|
||||
<value>Choose any file types, specific files or folders you wish to exclude from the backup. You may choose multiple items to exclude. A more advanced exclude list can be created manually via the Game Manager. This step can be skipped.</value>
|
||||
<data name="lblStep2Instructions.Text" xml:space="preserve">
|
||||
<value>Some games use launchers. Do not monitor launchers, be sure to choose the game's actual exe file. You may drag and drop a shortcut here to complete this step, only Windows shortcuts are currently supported.</value>
|
||||
</data>
|
||||
</root>
|
||||
+103
-240
@@ -1,11 +1,11 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmAddWizard
|
||||
|
||||
Private oGameData As Hashtable
|
||||
Private oGameToSave As clsGame
|
||||
Private bDisableAdminWarning As Boolean = False
|
||||
Private bIsDOSBoxGame As Boolean
|
||||
|
||||
Property GameData As Hashtable
|
||||
Get
|
||||
@@ -27,20 +27,50 @@ Public Class frmAddWizard
|
||||
|
||||
Private eCurrentStep As eSteps = eSteps.Step1
|
||||
|
||||
Private Sub FormInit()
|
||||
btndBoxBrowse.Visible = False
|
||||
txtdBoxProcess.Visible = False
|
||||
lbldBox.Visible = False
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmAddWizard_FormName
|
||||
|
||||
'Set Form Text
|
||||
btnCancel.Text = frmAddWizard_btnCancel
|
||||
btnNext.Text = frmAddWizard_btnNext
|
||||
btnBack.Text = frmAddWizard_btnBack
|
||||
lblStep1Title.Text = frmAddWizard_lblStep1Title
|
||||
lblStep1Instructions.Text = frmAddWizard_lblStep1Instructions
|
||||
lblStep1Intro.Text = frmAddWizard_lblStep1Intro
|
||||
lblStep2Title.Text = frmAddWizard_lblStep2Title
|
||||
lblStep2Instructions.Text = frmAddWizard_lblStep2Instructions
|
||||
btnProcessBrowse.Text = frmAddWizard_btnProcessBrowse
|
||||
lblStep2Intro.Text = frmAddWizard_lblStep2Intro
|
||||
lblStep3Title.Text = frmAddWizard_lblStep3Title
|
||||
lblStep3Instructions.Text = frmAddWizard_lblStep3Instructions
|
||||
chkTimeStamp.Text = frmAddWizard_chkTimeStamp
|
||||
chkFolderSave.Text = frmAddWizard_chkFolderSave
|
||||
btnSaveBrowse.Text = frmAddWizard_btnSaveBrowse
|
||||
lblStep3Intro.Text = frmAddWizard_lblStep3Intro
|
||||
lblIncludePathTitle.Text = frmAddWizard_lblIncludePathTitle
|
||||
lblIncludePath.Text = frmAddWizard_lblIncludePath
|
||||
lblFileTypes.Text = frmAddWizard_ItemsSelectedNone
|
||||
btnInclude.Text = frmAddWizard_btnInclude
|
||||
lblStep3aTitle.Text = frmAddWizard_lblStep3aTitle
|
||||
lblStep3aInstructions.Text = frmAddWizard_lblStep3aInstructions
|
||||
lblExcludePathTitle.Text = frmAddWizard_lblExcludePathTitle
|
||||
lblExcludePath.Text = frmAddWizard_lblExcludePath
|
||||
lblExclude.Text = frmAddWizard_ItemsSelectedNone
|
||||
btnExclude.Text = frmAddWizard_btnExclude
|
||||
lblStep4Title.Text = frmAddWizard_lblStep4Title
|
||||
lblStep4Instructions.Text = frmAddWizard_lblStep4Instructions
|
||||
lblStep5Intro.Text = frmAddWizard_lblStep5Intro
|
||||
lblStep5Title.Text = frmAddWizard_lblStep5Title
|
||||
|
||||
chkFolderSave.Checked = True
|
||||
chkTimeStamp.Checked = False
|
||||
optFileType.Checked = True
|
||||
optExcludeFileType.Checked = True
|
||||
StepHandler()
|
||||
End Sub
|
||||
|
||||
Private Function StringEmptyText(ByVal sString As String) As String
|
||||
If sString = String.Empty Then
|
||||
Return "None"
|
||||
Return frmAddWizard_None
|
||||
Else
|
||||
Return sString
|
||||
End If
|
||||
@@ -53,10 +83,6 @@ Public Class frmAddWizard
|
||||
Dim sProcessPath As String = Path.GetDirectoryName(sProcessFullPath)
|
||||
Dim sProcess As String = Path.GetFileNameWithoutExtension(sProcessFullPath)
|
||||
Dim sProcessSummaryText As String = Path.GetFileName(sProcessFullPath) & " (" & sProcessPath & ")"
|
||||
Dim sdBoxProcessFullPath As String = String.Empty
|
||||
Dim sdBoxProcessPath As String = String.Empty
|
||||
Dim sdBoxProcess As String = String.Empty
|
||||
Dim sdBoxProcessSummaryText As String = String.Empty
|
||||
Dim sSavePath As String = txtSavePath.Text
|
||||
Dim bIsAbsolute As Boolean = mgrPath.IsAbsolute(sSavePath)
|
||||
Dim bFolderBackup As Boolean = chkFolderSave.Checked
|
||||
@@ -72,14 +98,6 @@ Public Class frmAddWizard
|
||||
sSavePath = mgrPath.DetermineRelativePath(sProcessPath, sSavePath)
|
||||
End If
|
||||
|
||||
If bIsDOSBoxGame Then
|
||||
sdBoxProcessFullPath = txtdBoxProcess.Text
|
||||
sdBoxProcessPath = Path.GetDirectoryName(sdBoxProcessFullPath)
|
||||
sdBoxProcess = Path.GetFileNameWithoutExtension(sdBoxProcessFullPath)
|
||||
sdBoxProcessSummaryText = Path.GetFileName(sdBoxProcessFullPath) & " (" & sdBoxProcessPath & ")"
|
||||
sProcess = sProcess.ToLower & ":" & sdBoxProcess
|
||||
End If
|
||||
|
||||
'Build Summary Listview
|
||||
lstSummary.Clear()
|
||||
lstSummary.Columns.Add("Item")
|
||||
@@ -87,8 +105,8 @@ Public Class frmAddWizard
|
||||
lstSummary.Columns(0).Width = 95
|
||||
lstSummary.Columns(1).Width = 210
|
||||
|
||||
sItems = {"Name", "Process", "DOS Process", "Absolute Path", "Save Path", "Folder Backup", "Specific Files", "Time Stamp", "Exclude List"}
|
||||
sValues = {sName, sProcessSummaryText, StringEmptyText(sdBoxProcessSummaryText), mgrCommon.BooleanYesNo(bIsAbsolute), sSavePath, mgrCommon.BooleanYesNo(bFolderBackup), StringEmptyText(sFileType), mgrCommon.BooleanYesNo(bTimeStamp), StringEmptyText(sExcludeList)}
|
||||
sItems = {frmAddWizard_Summary_Name, frmAddWizard_Summary_Process, frmAddWizard_Summary_AbsolutePath, frmAddWizard_Summary_SavePath, frmAddWizard_Summary_FolderSave, frmAddWizard_Summary_Timestamp, frmAddWizard_Summary_Include, frmAddWizard_Summary_Exclude}
|
||||
sValues = {sName, sProcessSummaryText, mgrCommon.BooleanYesNo(bIsAbsolute), sSavePath, mgrCommon.BooleanYesNo(bFolderBackup), mgrCommon.BooleanYesNo(bTimeStamp), StringEmptyText(sFileType), StringEmptyText(sExcludeList)}
|
||||
|
||||
For i = 0 To sItems.Length - 1
|
||||
sItem = {sItems(i), sValues(i)}
|
||||
@@ -130,11 +148,11 @@ Public Class frmAddWizard
|
||||
Case eSteps.Step4
|
||||
btnBack.Enabled = True
|
||||
btnNext.Enabled = True
|
||||
btnNext.Text = "&Next"
|
||||
btnNext.Text = frmAddWizard_btnNext
|
||||
tabWizard.SelectTab(4)
|
||||
Case eSteps.Step5
|
||||
btnBack.Enabled = True
|
||||
btnNext.Text = "&Finish"
|
||||
btnNext.Text = frmAddWizard_btnNext_Finish
|
||||
tabWizard.SelectTab(5)
|
||||
End Select
|
||||
End Sub
|
||||
@@ -144,84 +162,34 @@ Public Class frmAddWizard
|
||||
txtName.Text = mgrPath.ValidateForFileSystem(txtName.Text)
|
||||
Return True
|
||||
Else
|
||||
sErrorMessage = "You must enter a valid game name."
|
||||
sErrorMessage = frmAddWizard_ErrorValidName
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function CheckforDOSBox(ByVal strpath As String) As Boolean
|
||||
If strpath.ToLower.Contains("dosbox.exe") Then
|
||||
bIsDOSBoxGame = True
|
||||
lbldBox.Visible = True
|
||||
txtdBoxProcess.Visible = True
|
||||
btndBoxBrowse.Visible = True
|
||||
If txtdBoxProcess.Text = String.Empty Then
|
||||
If MsgBox("You have selected a DOSBox executable, to monitor DOS programs you need to also select the actual DOS executable file." & vbCrLf & vbCrLf & "Would you like to do this now?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
DOSProcessBrowse()
|
||||
End If
|
||||
End If
|
||||
Return True
|
||||
Else
|
||||
bIsDOSBoxGame = False
|
||||
lbldBox.Visible = False
|
||||
txtdBoxProcess.Text = String.Empty
|
||||
txtdBoxProcess.Visible = False
|
||||
btndBoxBrowse.Visible = False
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Function ValidateDOSProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean
|
||||
If strPath = String.Empty Then
|
||||
sErrorMessage = "You must select the DOS game's executable file (.exe or .com) to continue."
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Path.GetExtension(strPath.ToLower) <> ".exe" And Path.GetExtension(strPath.ToLower) <> ".com" Then
|
||||
sErrorMessage = "The DOS file you selected is not an executable file. (.exe or .com)"
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Path.IsPathRooted(strPath) Then
|
||||
sErrorMessage = "The path to the DOS executable must be a full path."
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not File.Exists(strPath) Then
|
||||
sErrorMessage = "The selected DOS executable file does not exist."
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function ValidateProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean
|
||||
If strPath = String.Empty Then
|
||||
sErrorMessage = "You must select the game's executable file (.exe) to continue."
|
||||
sErrorMessage = frmAddWizard_ErrorValidProcess
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Path.GetExtension(strPath.ToLower) <> ".exe" Then
|
||||
sErrorMessage = "The file you selected is not an executable file."
|
||||
If Path.GetExtension(strPath.ToLower) <> ".exe" And Not mgrCommon.IsUnix Then
|
||||
sErrorMessage = frmAddWizard_ErrorNotAProcess
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Path.IsPathRooted(strPath) Then
|
||||
sErrorMessage = "The path to the executable must be a full path."
|
||||
sErrorMessage = frmAddWizard_ErrorBadProcessPath
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not File.Exists(strPath) Then
|
||||
sErrorMessage = "The selected executable file does not exist."
|
||||
sErrorMessage = frmAddWizard_ErrorProcessNotExist
|
||||
txtProcessPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -231,19 +199,19 @@ Public Class frmAddWizard
|
||||
|
||||
Private Function ValidateSavePath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean
|
||||
If strPath = String.Empty Then
|
||||
sErrorMessage = "You must select the game's save file path to continue."
|
||||
sErrorMessage = frmAddWizard_ErrorValidSavePath
|
||||
txtSavePath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Directory.Exists(strPath) Then
|
||||
sErrorMessage = "The folder you selected does not exist or is not a valid folder."
|
||||
sErrorMessage = frmAddWizard_ErrorSavePathNotExist
|
||||
txtSavePath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Path.IsPathRooted(strPath) Then
|
||||
sErrorMessage = "The selected path must be a full path."
|
||||
sErrorMessage = frmAddWizard_ErrorBadSavePath
|
||||
txtSavePath.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -253,7 +221,7 @@ Public Class frmAddWizard
|
||||
|
||||
Private Function ValidateSaveType(ByVal strSaveType As String, ByRef sErrorMessage As String)
|
||||
If strSaveType = String.Empty Then
|
||||
sErrorMessage = "You must choose a file type or specific file to backup."
|
||||
sErrorMessage = frmAddWizard_ErrorValidSaveType
|
||||
txtFileTypes.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -262,22 +230,20 @@ Public Class frmAddWizard
|
||||
End Function
|
||||
|
||||
Private Sub DoSave()
|
||||
Dim oGames As New List(Of clsGame)
|
||||
Dim hshDupeCheck As New Hashtable
|
||||
Dim sExistingGame As String
|
||||
Dim sNewGame As String = oGameToSave.Name & ":" & oGameToSave.ProcessName
|
||||
Dim sNewGame As String = oGameToSave.ProcessName & ":" & oGameToSave.Name
|
||||
|
||||
For Each o As clsGame In GameData.Values
|
||||
oGames.Add(o)
|
||||
sExistingGame = o.Name & ":" & o.ProcessName
|
||||
hshDupeCheck.Add(sExistingGame, String.Empty)
|
||||
hshDupeCheck.Add(o.CompoundKey, String.Empty)
|
||||
Next
|
||||
|
||||
If hshDupeCheck.Contains(sNewGame) Then
|
||||
MsgBox("The monitor list already contains a game with this exact name and process.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmAddWizard_ErrorGameDupe, MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
mgrMonitorList.DoListAdd(oGameToSave)
|
||||
MsgBox(oGameToSave.Name & " has been added to the monitor list.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
If mgrCommon.ShowMessage(frmAddWizard_ConfirmSaveTags, New String() {oGameToSave.Name, oGameToSave.Name}, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
OpenTags(oGameToSave)
|
||||
End If
|
||||
Me.Close()
|
||||
End If
|
||||
End Sub
|
||||
@@ -324,21 +290,15 @@ Public Class frmAddWizard
|
||||
|
||||
Case eSteps.Step2
|
||||
If ValidateProcessPath(txtProcessPath.Text, sErrorMessage) Then
|
||||
If CheckforDOSBox(txtProcessPath.Text) Then
|
||||
If ValidateDOSProcessPath(txtdBoxProcess.Text, sErrorMessage) Then
|
||||
eCurrentStep = eSteps.Step3
|
||||
Else
|
||||
bError = True
|
||||
End If
|
||||
Else
|
||||
eCurrentStep = eSteps.Step3
|
||||
End If
|
||||
eCurrentStep = eSteps.Step3
|
||||
Else
|
||||
bError = True
|
||||
End If
|
||||
|
||||
Case eSteps.Step3
|
||||
If ValidateSavePath(txtSavePath.Text, sErrorMessage) Then
|
||||
lblIncludePath.Text = txtSavePath.Text
|
||||
lblExcludePath.Text = txtSavePath.Text
|
||||
If chkFolderSave.Checked = False Then
|
||||
eCurrentStep = eSteps.Step3a
|
||||
Else
|
||||
@@ -361,7 +321,7 @@ Public Class frmAddWizard
|
||||
DoSave()
|
||||
End Select
|
||||
|
||||
If bError Then MsgBox(sErrorMessage, MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
If bError Then mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation)
|
||||
StepHandler()
|
||||
End Sub
|
||||
|
||||
@@ -405,35 +365,17 @@ Public Class frmAddWizard
|
||||
ReadShortcut(sTemp)
|
||||
File.Delete(sTemp)
|
||||
Catch e2 As Exception
|
||||
MsgBox("An error occured working with the shortcut file." & vbCrLf & vbCrLf & e2.Message, MsgBoxStyle.Critical, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmAddWizard_ErrorWithShortcut, e2.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
Else
|
||||
MsgBox("An error occured reading the shortcut file." & vbCrLf & vbCrLf & e1.Message, MsgBoxStyle.Critical, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmAddWizard_ErrorWithShortcut, e1.Message, MsgBoxStyle.Critical)
|
||||
End If
|
||||
End Try
|
||||
Else
|
||||
MsgBox("This file is not a shorcut.")
|
||||
mgrCommon.ShowMessage(frmAddWizard_ErrorNotAShortcut, MsgBoxStyle.Information)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DOSProcessBrowse()
|
||||
Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
|
||||
Dim sCurrentPath As String
|
||||
Dim sNewPath As String
|
||||
|
||||
If txtProcessPath.Text <> String.Empty Then
|
||||
sCurrentPath = Path.GetDirectoryName(txtProcessPath.Text)
|
||||
If Directory.Exists(sCurrentPath) Then
|
||||
sDefaultFolder = sCurrentPath
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFileBrowser("Choose DOS executable file that starts the game", "*", _
|
||||
"", sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtdBoxProcess.Text = sNewPath
|
||||
End Sub
|
||||
|
||||
Private Sub ProcessBrowse()
|
||||
Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
|
||||
Dim sCurrentPath As String
|
||||
@@ -446,8 +388,8 @@ Public Class frmAddWizard
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFileBrowser("Choose exe file that starts the game", "exe", _
|
||||
"Executable", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFileBrowser(frmAddWizard_ChooseProcess, "exe",
|
||||
frmAddWizard_Executable, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtProcessPath.Text = sNewPath
|
||||
End Sub
|
||||
@@ -463,117 +405,41 @@ Public Class frmAddWizard
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose the game save folder:", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmAddWizard_ChooseSavePath, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtSavePath.Text = sNewPath
|
||||
End Sub
|
||||
|
||||
Private Sub SaveTypeBrowse()
|
||||
Dim sDefaultFolder As String = txtSavePath.Text
|
||||
Dim sCurrentSaveType As String = txtFileTypes.Text
|
||||
Dim sSaveType As String
|
||||
Dim sTitle As String = String.Empty
|
||||
Dim sSaveTypeList As String()
|
||||
Private Sub UpdateBuilderLabel(ByVal sBuilderString As String, ByVal lbl As Label)
|
||||
Dim iCount As Integer = sBuilderString.Split(":").Length
|
||||
|
||||
If optFileType.Checked Then
|
||||
sTitle = "Choose the type of file to backup"
|
||||
ElseIf optSpecificFile.Checked Then
|
||||
sTitle = "Choose a specific file to backup"
|
||||
If sBuilderString <> String.Empty And iCount > 0 Then
|
||||
lbl.Text = mgrCommon.FormatString(frmAddWizard_ItemsSelectedMulti, iCount)
|
||||
Else
|
||||
sTitle = "Choose a specific folder to backup"
|
||||
lbl.Text = frmAddWizard_ItemsSelectedNone
|
||||
End If
|
||||
|
||||
If optFileType.Checked Or optSpecificFile.Checked Then
|
||||
sSaveType = mgrCommon.OpenFileBrowser(sTitle, "*", "All", sDefaultFolder, False)
|
||||
If sSaveType <> String.Empty Then
|
||||
sSaveTypeList = sSaveType.Split("|")
|
||||
For Each s As String In sSaveTypeList
|
||||
If optFileType.Checked Then
|
||||
sSaveType = "*" & Path.GetExtension(s) & ":"
|
||||
Else
|
||||
sSaveType = Path.GetFileName(s) & ":"
|
||||
End If
|
||||
|
||||
sSaveType = sSaveType.TrimEnd(":")
|
||||
|
||||
If sCurrentSaveType <> String.Empty Then
|
||||
sCurrentSaveType &= ":" & sSaveType
|
||||
Else
|
||||
sCurrentSaveType = sSaveType
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
sSaveType = mgrCommon.OpenFolderBrowser(sTitle, sDefaultFolder, False)
|
||||
If sSaveType <> String.Empty Then
|
||||
Dim sPath As String() = sSaveType.Split("\")
|
||||
|
||||
If sCurrentSaveType <> String.Empty Then
|
||||
sCurrentSaveType &= ":" & sPath(sPath.Length - 1)
|
||||
Else
|
||||
sCurrentSaveType = sPath(sPath.Length - 1)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
txtFileTypes.Text = sCurrentSaveType
|
||||
End Sub
|
||||
|
||||
Private Sub ExcludeBrowse()
|
||||
Dim sDefaultFolder As String = txtSavePath.Text
|
||||
Dim sCurrentExclude As String = txtExcludeList.Text
|
||||
Dim sExclude As String
|
||||
Dim sExcludeList As String()
|
||||
Dim sTitle As String = String.Empty
|
||||
Private Sub OpenBuilder(ByVal sFormText As String, ByRef txtBox As TextBox)
|
||||
Dim frm As New frmIncludeExclude
|
||||
frm.FormName = sFormText
|
||||
frm.BuilderString = txtBox.Text
|
||||
frm.RootFolder = txtSavePath.Text
|
||||
|
||||
If optExcludeFileType.Checked Then
|
||||
sTitle = "Choose the type of file(s) to exclude"
|
||||
ElseIf optExcludeSpecificFile.Checked Then
|
||||
sTitle = "Choose any file(s) to exclude"
|
||||
Else
|
||||
sTitle = "Choose a folder to exclude"
|
||||
End If
|
||||
|
||||
If optExcludeFileType.Checked Or optExcludeSpecificFile.Checked Then
|
||||
sExclude = mgrCommon.OpenFileBrowser(sTitle, "*", "All", sDefaultFolder, True)
|
||||
If sExclude <> String.Empty Then
|
||||
sExcludeList = sExclude.Split("|")
|
||||
For Each s As String In sExcludeList
|
||||
If optExcludeFileType.Checked Then
|
||||
sExclude = "*" & Path.GetExtension(s) & ":"
|
||||
Else
|
||||
sExclude = Path.GetFileName(s) & ":"
|
||||
End If
|
||||
|
||||
sExclude = sExclude.TrimEnd(":")
|
||||
|
||||
If sCurrentExclude <> String.Empty Then
|
||||
sCurrentExclude &= ":" & sExclude
|
||||
Else
|
||||
sCurrentExclude = sExclude
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
sExclude = mgrCommon.OpenFolderBrowser(sTitle, sDefaultFolder, False)
|
||||
If sExclude <> String.Empty Then
|
||||
Dim sPath As String() = sExclude.Split("\")
|
||||
|
||||
If sCurrentExclude <> String.Empty Then
|
||||
sCurrentExclude &= ":" & sPath(sPath.Length - 1)
|
||||
Else
|
||||
sCurrentExclude = sPath(sPath.Length - 1)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If sCurrentExclude <> String.Empty Then
|
||||
txtExcludeList.Text = sCurrentExclude
|
||||
End If
|
||||
frm.ShowDialog()
|
||||
|
||||
txtBox.Text = frm.BuilderString
|
||||
End Sub
|
||||
|
||||
Private Sub OpenTags(ByVal oGame As clsGame)
|
||||
Dim frm As New frmGameTags
|
||||
Dim sMonitorIDs As New List(Of String)
|
||||
sMonitorIDs.Add(oGame.ID)
|
||||
|
||||
frm.IDList = sMonitorIDs
|
||||
frm.GameName = oGame.Name
|
||||
frm.ShowDialog()
|
||||
End Sub
|
||||
|
||||
Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click
|
||||
ValidateBack()
|
||||
@@ -588,26 +454,22 @@ Public Class frmAddWizard
|
||||
End Sub
|
||||
|
||||
Private Sub frmAddWizard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
FormInit()
|
||||
SetForm()
|
||||
End Sub
|
||||
|
||||
Private Sub DropTarget_DragEnter(sender As Object, e As DragEventArgs) Handles lblDrag1.DragEnter, lblDrag2.DragEnter, txtName.DragEnter, txtProcessPath.DragEnter
|
||||
Private Sub DropTarget_DragEnter(sender As Object, e As DragEventArgs) Handles txtName.DragEnter, txtProcessPath.DragEnter, lblStep1Instructions.DragEnter, lblStep2Instructions.DragEnter
|
||||
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
|
||||
e.Effect = DragDropEffects.Copy
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DropTarget_DragDrop(sender As Object, e As DragEventArgs) Handles lblDrag1.DragDrop, lblDrag2.DragDrop, txtName.DragDrop, txtProcessPath.DragDrop
|
||||
Private Sub DropTarget_DragDrop(sender As Object, e As DragEventArgs) Handles txtName.DragDrop, txtProcessPath.DragDrop, lblStep1Instructions.DragDrop, lblStep2Instructions.DragDrop
|
||||
Dim oFiles() As String = e.Data.GetData(DataFormats.FileDrop)
|
||||
For Each sPath In oFiles
|
||||
ReadShortcut(sPath)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub btndBoxBrowse_Click(sender As Object, e As EventArgs) Handles btndBoxBrowse.Click
|
||||
DOSProcessBrowse()
|
||||
End Sub
|
||||
|
||||
Private Sub btnProcessBrowse_Click(sender As Object, e As EventArgs) Handles btnProcessBrowse.Click
|
||||
ProcessBrowse()
|
||||
End Sub
|
||||
@@ -616,19 +478,11 @@ Public Class frmAddWizard
|
||||
SavePathBrowse()
|
||||
End Sub
|
||||
|
||||
Private Sub btnFileTypeBrowse_Click(sender As Object, e As EventArgs) Handles btnFileTypeBrowse.Click
|
||||
SaveTypeBrowse()
|
||||
End Sub
|
||||
|
||||
Private Sub btnExcludeBrowse_Click(sender As Object, e As EventArgs) Handles btnExcludeBrowse.Click
|
||||
ExcludeBrowse()
|
||||
End Sub
|
||||
|
||||
Private Sub btnStep4Clear_Click(sender As Object, e As EventArgs) Handles btnStep4Clear.Click
|
||||
Private Sub btnStep4Clear_Click(sender As Object, e As EventArgs)
|
||||
txtExcludeList.Clear()
|
||||
End Sub
|
||||
|
||||
Private Sub btnStep3aClear_Click(sender As Object, e As EventArgs) Handles btnStep3aClear.Click
|
||||
Private Sub btnStep3aClear_Click(sender As Object, e As EventArgs)
|
||||
txtFileTypes.Clear()
|
||||
End Sub
|
||||
|
||||
@@ -636,4 +490,13 @@ Public Class frmAddWizard
|
||||
txtFileTypes.Clear()
|
||||
End Sub
|
||||
|
||||
Private Sub btnInclude_Click(sender As Object, e As EventArgs) Handles btnInclude.Click
|
||||
OpenBuilder(frmAddWizard_Include, txtFileTypes)
|
||||
UpdateBuilderLabel(txtFileTypes.Text, lblFileTypes)
|
||||
End Sub
|
||||
|
||||
Private Sub btnExclude_Click(sender As Object, e As EventArgs) Handles btnExclude.Click
|
||||
OpenBuilder(frmAddWizard_Exclude, txtExcludeList)
|
||||
UpdateBuilderLabel(txtExcludeList.Text, lblExclude)
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+47
-23
@@ -22,47 +22,40 @@ Partial Class frmAdvancedImport
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.lstGames = New System.Windows.Forms.CheckedListBox()
|
||||
Me.btnImport = New System.Windows.Forms.Button()
|
||||
Me.chkSelectAll = New System.Windows.Forms.CheckBox()
|
||||
Me.lblGames = New System.Windows.Forms.Label()
|
||||
Me.lblSelected = New System.Windows.Forms.Label()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.lstGames = New System.Windows.Forms.ListView()
|
||||
Me.txtFilter = New System.Windows.Forms.TextBox()
|
||||
Me.lblFilter = New System.Windows.Forms.Label()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'lstGames
|
||||
'
|
||||
Me.lstGames.CheckOnClick = True
|
||||
Me.lstGames.FormattingEnabled = True
|
||||
Me.lstGames.Location = New System.Drawing.Point(12, 30)
|
||||
Me.lstGames.Name = "lstGames"
|
||||
Me.lstGames.Size = New System.Drawing.Size(335, 334)
|
||||
Me.lstGames.Sorted = True
|
||||
Me.lstGames.TabIndex = 1
|
||||
'
|
||||
'btnImport
|
||||
'
|
||||
Me.btnImport.Location = New System.Drawing.Point(191, 370)
|
||||
Me.btnImport.Location = New System.Drawing.Point(416, 375)
|
||||
Me.btnImport.Name = "btnImport"
|
||||
Me.btnImport.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnImport.TabIndex = 2
|
||||
Me.btnImport.TabIndex = 3
|
||||
Me.btnImport.Text = "&Import"
|
||||
Me.btnImport.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkSelectAll
|
||||
'
|
||||
Me.chkSelectAll.AutoSize = True
|
||||
Me.chkSelectAll.Location = New System.Drawing.Point(15, 12)
|
||||
Me.chkSelectAll.Location = New System.Drawing.Point(12, 12)
|
||||
Me.chkSelectAll.Name = "chkSelectAll"
|
||||
Me.chkSelectAll.Size = New System.Drawing.Size(15, 14)
|
||||
Me.chkSelectAll.Size = New System.Drawing.Size(70, 17)
|
||||
Me.chkSelectAll.TabIndex = 0
|
||||
Me.chkSelectAll.Text = "Select All"
|
||||
Me.chkSelectAll.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblGames
|
||||
'
|
||||
Me.lblGames.Location = New System.Drawing.Point(12, 12)
|
||||
Me.lblGames.Location = New System.Drawing.Point(12, 380)
|
||||
Me.lblGames.Name = "lblGames"
|
||||
Me.lblGames.Size = New System.Drawing.Size(335, 14)
|
||||
Me.lblGames.Size = New System.Drawing.Size(560, 14)
|
||||
Me.lblGames.TabIndex = 0
|
||||
Me.lblGames.Text = "Games"
|
||||
Me.lblGames.TextAlign = System.Drawing.ContentAlignment.TopCenter
|
||||
@@ -70,7 +63,7 @@ Partial Class frmAdvancedImport
|
||||
'lblSelected
|
||||
'
|
||||
Me.lblSelected.AutoSize = True
|
||||
Me.lblSelected.Location = New System.Drawing.Point(9, 375)
|
||||
Me.lblSelected.Location = New System.Drawing.Point(9, 380)
|
||||
Me.lblSelected.Name = "lblSelected"
|
||||
Me.lblSelected.Size = New System.Drawing.Size(77, 13)
|
||||
Me.lblSelected.TabIndex = 0
|
||||
@@ -78,23 +71,52 @@ Partial Class frmAdvancedImport
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.Location = New System.Drawing.Point(272, 370)
|
||||
Me.btnCancel.Location = New System.Drawing.Point(497, 375)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 3
|
||||
Me.btnCancel.TabIndex = 4
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lstGames
|
||||
'
|
||||
Me.lstGames.CheckBoxes = True
|
||||
Me.lstGames.FullRowSelect = True
|
||||
Me.lstGames.Location = New System.Drawing.Point(12, 35)
|
||||
Me.lstGames.Name = "lstGames"
|
||||
Me.lstGames.Size = New System.Drawing.Size(560, 329)
|
||||
Me.lstGames.TabIndex = 2
|
||||
Me.lstGames.UseCompatibleStateImageBehavior = False
|
||||
Me.lstGames.View = System.Windows.Forms.View.Details
|
||||
'
|
||||
'txtFilter
|
||||
'
|
||||
Me.txtFilter.Location = New System.Drawing.Point(416, 9)
|
||||
Me.txtFilter.Name = "txtFilter"
|
||||
Me.txtFilter.Size = New System.Drawing.Size(156, 20)
|
||||
Me.txtFilter.TabIndex = 1
|
||||
'
|
||||
'lblFilter
|
||||
'
|
||||
Me.lblFilter.Location = New System.Drawing.Point(307, 12)
|
||||
Me.lblFilter.Name = "lblFilter"
|
||||
Me.lblFilter.Size = New System.Drawing.Size(103, 14)
|
||||
Me.lblFilter.TabIndex = 0
|
||||
Me.lblFilter.Text = "Filter:"
|
||||
Me.lblFilter.TextAlign = System.Drawing.ContentAlignment.TopRight
|
||||
'
|
||||
'frmAdvancedImport
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(359, 402)
|
||||
Me.ClientSize = New System.Drawing.Size(584, 411)
|
||||
Me.Controls.Add(Me.lblFilter)
|
||||
Me.Controls.Add(Me.txtFilter)
|
||||
Me.Controls.Add(Me.lstGames)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.lblSelected)
|
||||
Me.Controls.Add(Me.chkSelectAll)
|
||||
Me.Controls.Add(Me.btnImport)
|
||||
Me.Controls.Add(Me.lstGames)
|
||||
Me.Controls.Add(Me.lblGames)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
@@ -107,10 +129,12 @@ Partial Class frmAdvancedImport
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents lstGames As System.Windows.Forms.CheckedListBox
|
||||
Friend WithEvents btnImport As System.Windows.Forms.Button
|
||||
Friend WithEvents chkSelectAll As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents lblGames As System.Windows.Forms.Label
|
||||
Friend WithEvents lblSelected As System.Windows.Forms.Label
|
||||
Friend WithEvents btnCancel As System.Windows.Forms.Button
|
||||
Friend WithEvents lstGames As System.Windows.Forms.ListView
|
||||
Friend WithEvents txtFilter As System.Windows.Forms.TextBox
|
||||
Friend WithEvents lblFilter As System.Windows.Forms.Label
|
||||
End Class
|
||||
|
||||
+148
-25
@@ -1,8 +1,13 @@
|
||||
Public Class frmAdvancedImport
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmAdvancedImport
|
||||
|
||||
Private hshImportData As Hashtable
|
||||
Private hshFinalData As New Hashtable
|
||||
Private bSelectAll As Boolean = False
|
||||
Private bIsLoading As Boolean = False
|
||||
Private iCurrentSort As Integer = 0
|
||||
Private WithEvents tmFilterTimer As Timer
|
||||
|
||||
Public Property ImportData As Hashtable
|
||||
Set(value As Hashtable)
|
||||
@@ -13,46 +18,125 @@
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property FinalData As Hashtable
|
||||
Get
|
||||
Return hshFinalData
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub SelectToggle()
|
||||
Cursor.Current = Cursors.WaitCursor
|
||||
lstGames.BeginUpdate()
|
||||
bSelectAll = Not bSelectAll
|
||||
For i As Integer = 0 To lstGames.Items.Count - 1
|
||||
lstGames.SetItemChecked(i, bSelectAll)
|
||||
lstGames.Items(i).Checked = bSelectAll
|
||||
Next
|
||||
lstGames.EndUpdate()
|
||||
Cursor.Current = Cursors.Default
|
||||
UpdateSelected()
|
||||
End Sub
|
||||
|
||||
Private Sub LoadData()
|
||||
Dim oApp As clsGame
|
||||
Dim oData As KeyValuePair(Of String, String)
|
||||
Private Sub SaveChecked(ByVal oItem As ListViewItem)
|
||||
If oItem.Checked Then
|
||||
FinalData.Add(oItem.Tag, ImportData(oItem.Tag))
|
||||
Else
|
||||
FinalData.Remove(oItem.Tag)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
lstGames.ValueMember = "Key"
|
||||
lstGames.DisplayMember = "Value"
|
||||
Private Sub LoadData(Optional ByVal sFilter As String = "")
|
||||
Dim oApp As clsGame
|
||||
Dim oListViewItem As ListViewItem
|
||||
Dim sTags As String
|
||||
Dim bAddItem As Boolean
|
||||
Dim bResetSelectAll As Boolean = False
|
||||
|
||||
Cursor.Current = Cursors.WaitCursor
|
||||
lstGames.BeginUpdate()
|
||||
|
||||
lstGames.Clear()
|
||||
|
||||
lstGames.Columns.Add(frmAdvancedImport_ColumnName, 215)
|
||||
lstGames.Columns.Add(frmAdvancedImport_ColumnProcess, 130)
|
||||
lstGames.Columns.Add(frmAdvancedImport_ColumnTags, 190)
|
||||
|
||||
For Each de As DictionaryEntry In ImportData
|
||||
bAddItem = False
|
||||
oApp = DirectCast(de.Value, clsGame)
|
||||
oData = New KeyValuePair(Of String, String)(oApp.ProcessName, oApp.Name & " (" & oApp.TrueProcess & ")")
|
||||
lstGames.Items.Add(oData)
|
||||
sTags = String.Empty
|
||||
oApp.ImportTags.Sort(AddressOf mgrCommon.CompareImportTagsByName)
|
||||
For Each oTag As Tag In oApp.ImportTags
|
||||
sTags &= oTag.Name & ", "
|
||||
Next
|
||||
sTags = sTags.TrimEnd(New Char() {",", " "})
|
||||
|
||||
oListViewItem = New ListViewItem(New String() {oApp.Name, oApp.TrueProcess, sTags})
|
||||
oListViewItem.Tag = oApp.CompoundKey
|
||||
|
||||
If FinalData.ContainsKey(oApp.CompoundKey) Then
|
||||
oListViewItem.Checked = True
|
||||
Else
|
||||
oListViewItem.Checked = False
|
||||
End If
|
||||
|
||||
If sFilter = String.Empty Then
|
||||
bAddItem = True
|
||||
Else
|
||||
If oApp.Name.ToLower.Contains(sFilter.ToLower) Or oApp.TrueProcess.ToLower.Contains(sFilter.ToLower) Or sTags.ToLower.Contains(sFilter.ToLower) Then
|
||||
bAddItem = True
|
||||
End If
|
||||
End If
|
||||
|
||||
If bAddItem Then
|
||||
If oListViewItem.Checked Then bResetSelectAll = True
|
||||
lstGames.Items.Add(oListViewItem)
|
||||
End If
|
||||
Next
|
||||
|
||||
'Change the status of the "Select All" checkbox depending on the status of the items filter results. Set loading flag so we don't trigger any events
|
||||
bIsLoading = True
|
||||
If Not bResetSelectAll And bSelectAll Then
|
||||
bSelectAll = False
|
||||
chkSelectAll.Checked = False
|
||||
ElseIf bResetSelectAll And Not bSelectAll Then
|
||||
bSelectAll = True
|
||||
chkSelectAll.Checked = True
|
||||
End If
|
||||
bIsLoading = False
|
||||
|
||||
lstGames.ListViewItemSorter = New ListViewItemComparer(iCurrentSort)
|
||||
lstGames.EndUpdate()
|
||||
UpdateSelected()
|
||||
|
||||
If txtFilter.Text = String.Empty Then
|
||||
lblGames.Text = mgrCommon.FormatString(frmAdvancedImport_Configs, lstGames.Items.Count)
|
||||
Else
|
||||
lblGames.Text = mgrCommon.FormatString(frmAdvancedImport_Configs, lstGames.Items.Count) & " " & frmAdvancedImport_Filtered
|
||||
End If
|
||||
|
||||
Cursor.Current = Cursors.Default
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmAdvancedImport_FormName
|
||||
|
||||
'Set Form Text
|
||||
lblFilter.Text = frmAdvancedImport_lblFilter
|
||||
btnCancel.Text = frmAdvancedImport_btnCancel
|
||||
btnImport.Text = frmAdvancedImport_btnImport
|
||||
chkSelectAll.Text = frmAdvancedImport_chkSelectAll
|
||||
|
||||
chkSelectAll.Checked = True
|
||||
lblGames.Text = ImportData.Count & " new configurations available."
|
||||
End Sub
|
||||
|
||||
Private Sub BuildList()
|
||||
Dim oData As KeyValuePair(Of String, String)
|
||||
|
||||
For i As Integer = 0 To lstGames.Items.Count - 1
|
||||
If Not lstGames.GetItemChecked(i) Then
|
||||
oData = lstGames.Items(i)
|
||||
ImportData.Remove(oData.Key)
|
||||
End If
|
||||
Next
|
||||
'Init Filter Timer
|
||||
tmFilterTimer = New Timer()
|
||||
tmFilterTimer.Interval = 1000
|
||||
tmFilterTimer.Enabled = False
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateSelected()
|
||||
lblSelected.Text = lstGames.CheckedItems.Count & " Selected"
|
||||
lblSelected.Text = mgrCommon.FormatString(frmAdvancedImport_Selected, FinalData.Count)
|
||||
End Sub
|
||||
|
||||
Private Sub frmAdvancedImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
@@ -67,8 +151,11 @@
|
||||
If Not bIsLoading Then SelectToggle()
|
||||
End Sub
|
||||
|
||||
Private Sub lstGames_SelectedValueChanged(sender As Object, e As EventArgs) Handles lstGames.SelectedValueChanged
|
||||
If Not bIsLoading Then UpdateSelected()
|
||||
Private Sub lstGames_ItemChecked(sender As Object, e As ItemCheckedEventArgs) Handles lstGames.ItemChecked
|
||||
SaveChecked(e.Item)
|
||||
If Not bIsLoading Then
|
||||
UpdateSelected()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
@@ -76,8 +163,44 @@
|
||||
End Sub
|
||||
|
||||
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
|
||||
BuildList()
|
||||
If ImportData.Count > 0 Then Me.DialogResult = Windows.Forms.DialogResult.OK
|
||||
If FinalData.Count > 0 Then Me.DialogResult = Windows.Forms.DialogResult.OK
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub lstGames_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles lstGames.ColumnClick
|
||||
iCurrentSort = e.Column
|
||||
lstGames.ListViewItemSorter = New ListViewItemComparer(e.Column)
|
||||
End Sub
|
||||
|
||||
Private Sub txtFilter_TextChanged(sender As Object, e As EventArgs) Handles txtFilter.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
|
||||
LoadData(txtFilter.Text)
|
||||
tmFilterTimer.Stop()
|
||||
tmFilterTimer.Enabled = False
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
' Column Sorter
|
||||
Class ListViewItemComparer
|
||||
Implements IComparer
|
||||
|
||||
Private col As Integer
|
||||
|
||||
Public Sub New()
|
||||
col = 0
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal column As Integer)
|
||||
col = column
|
||||
End Sub
|
||||
|
||||
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
|
||||
Return String.Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
|
||||
End Function
|
||||
End Class
|
||||
Generated
+15
-2
@@ -25,6 +25,7 @@ Partial Class frmChooseGame
|
||||
Me.lblChoose = New System.Windows.Forms.Label()
|
||||
Me.btnChoose = New System.Windows.Forms.Button()
|
||||
Me.lstGameBox = New System.Windows.Forms.ListBox()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'lblChoose
|
||||
@@ -38,9 +39,9 @@ Partial Class frmChooseGame
|
||||
'
|
||||
'btnChoose
|
||||
'
|
||||
Me.btnChoose.Location = New System.Drawing.Point(124, 135)
|
||||
Me.btnChoose.Location = New System.Drawing.Point(72, 135)
|
||||
Me.btnChoose.Name = "btnChoose"
|
||||
Me.btnChoose.Size = New System.Drawing.Size(119, 23)
|
||||
Me.btnChoose.Size = New System.Drawing.Size(90, 23)
|
||||
Me.btnChoose.TabIndex = 2
|
||||
Me.btnChoose.Text = "C&hoose Game"
|
||||
Me.btnChoose.UseVisualStyleBackColor = True
|
||||
@@ -51,13 +52,24 @@ Partial Class frmChooseGame
|
||||
Me.lstGameBox.Location = New System.Drawing.Point(15, 34)
|
||||
Me.lstGameBox.Name = "lstGameBox"
|
||||
Me.lstGameBox.Size = New System.Drawing.Size(228, 95)
|
||||
Me.lstGameBox.Sorted = True
|
||||
Me.lstGameBox.TabIndex = 1
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.Location = New System.Drawing.Point(168, 135)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 3
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'frmChooseGame
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(255, 166)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.lstGameBox)
|
||||
Me.Controls.Add(Me.btnChoose)
|
||||
Me.Controls.Add(Me.lblChoose)
|
||||
@@ -75,4 +87,5 @@ Partial Class frmChooseGame
|
||||
Friend WithEvents lblChoose As System.Windows.Forms.Label
|
||||
Friend WithEvents btnChoose As System.Windows.Forms.Button
|
||||
Friend WithEvents lstGameBox As System.Windows.Forms.ListBox
|
||||
Friend WithEvents btnCancel As Button
|
||||
End Class
|
||||
|
||||
+26
-11
@@ -1,8 +1,9 @@
|
||||
Public Class frmChooseGame
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmChooseGame
|
||||
|
||||
Private oProcess As mgrProcesses
|
||||
Private oGame As clsGame
|
||||
Private oGamesList As New List(Of KeyValuePair(Of String, String))
|
||||
Private oGamesHash As New Hashtable
|
||||
Private bGameSelected As Boolean = False
|
||||
|
||||
@@ -25,16 +26,15 @@
|
||||
End Property
|
||||
|
||||
Private Sub FillComboBox()
|
||||
lstGameBox.ValueMember = "Key"
|
||||
lstGameBox.DisplayMember = "Value"
|
||||
|
||||
For Each o As clsGame In Process.DuplicateList
|
||||
oGamesList.Add(New KeyValuePair(Of String, String)(o.ID, o.Name))
|
||||
lstGameBox.Items.Add(New KeyValuePair(Of String, String)(o.ID, o.Name))
|
||||
oGamesHash.Add(o.ID, o)
|
||||
Next
|
||||
|
||||
lstGameBox.DataSource = oGamesList
|
||||
lstGameBox.ValueMember = "key"
|
||||
lstGameBox.DisplayMember = "value"
|
||||
lstGameBox.SelectedIndex = 0
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SaveSelection()
|
||||
@@ -43,15 +43,26 @@
|
||||
End Sub
|
||||
|
||||
Private Sub GetSelection()
|
||||
Dim sSelectedGame As String
|
||||
sSelectedGame = CStr(lstGameBox.SelectedValue)
|
||||
oGame = DirectCast(oGamesHash.Item(sSelectedGame), clsGame)
|
||||
Dim oSelected As KeyValuePair(Of String, String) = lstGameBox.SelectedItem
|
||||
oGame = DirectCast(oGamesHash.Item(oSelected.Key), clsGame)
|
||||
SaveSelection()
|
||||
bGameSelected = True
|
||||
Me.DialogResult = DialogResult.OK
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmChooseGame_FormName
|
||||
|
||||
'Set Form Text
|
||||
btnCancel.Text = frmChooseGame_btnCancel
|
||||
btnChoose.Text = frmChooseGame_btnChoose
|
||||
lblChoose.Text = frmChooseGame_lblChoose
|
||||
End Sub
|
||||
|
||||
Private Sub frmChooseGame_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
FillComboBox()
|
||||
Me.Focus()
|
||||
End Sub
|
||||
@@ -62,7 +73,11 @@
|
||||
|
||||
Private Sub frmChooseGame_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
|
||||
If bGameSelected = False Then
|
||||
e.Cancel = True
|
||||
Me.DialogResult = DialogResult.Cancel
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
End Class
|
||||
+52
-16
@@ -22,35 +22,30 @@ Partial Class frmFileFolderSearch
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.pgbProgress = New System.Windows.Forms.ProgressBar()
|
||||
Me.txtCurrentLocation = New System.Windows.Forms.TextBox()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.bwSearch = New System.ComponentModel.BackgroundWorker()
|
||||
Me.lstResults = New System.Windows.Forms.ListBox()
|
||||
Me.btnOk = New System.Windows.Forms.Button()
|
||||
Me.lblResults = New System.Windows.Forms.Label()
|
||||
Me.cboDrive = New System.Windows.Forms.ComboBox()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'pgbProgress
|
||||
'
|
||||
Me.pgbProgress.Location = New System.Drawing.Point(12, 12)
|
||||
Me.pgbProgress.MarqueeAnimationSpeed = 0
|
||||
Me.pgbProgress.Name = "pgbProgress"
|
||||
Me.pgbProgress.Size = New System.Drawing.Size(460, 23)
|
||||
Me.pgbProgress.TabIndex = 0
|
||||
'
|
||||
'txtCurrentLocation
|
||||
'
|
||||
Me.txtCurrentLocation.Location = New System.Drawing.Point(12, 43)
|
||||
Me.txtCurrentLocation.Location = New System.Drawing.Point(102, 13)
|
||||
Me.txtCurrentLocation.Name = "txtCurrentLocation"
|
||||
Me.txtCurrentLocation.ReadOnly = True
|
||||
Me.txtCurrentLocation.Size = New System.Drawing.Size(379, 20)
|
||||
Me.txtCurrentLocation.Size = New System.Drawing.Size(370, 20)
|
||||
Me.txtCurrentLocation.TabIndex = 0
|
||||
Me.txtCurrentLocation.TabStop = False
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.Location = New System.Drawing.Point(397, 41)
|
||||
Me.btnCancel.Location = New System.Drawing.Point(397, 146)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 0
|
||||
Me.btnCancel.TabIndex = 4
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -58,14 +53,52 @@ Partial Class frmFileFolderSearch
|
||||
'
|
||||
Me.bwSearch.WorkerSupportsCancellation = True
|
||||
'
|
||||
'lstResults
|
||||
'
|
||||
Me.lstResults.FormattingEnabled = True
|
||||
Me.lstResults.Location = New System.Drawing.Point(12, 58)
|
||||
Me.lstResults.Name = "lstResults"
|
||||
Me.lstResults.Size = New System.Drawing.Size(460, 82)
|
||||
Me.lstResults.TabIndex = 2
|
||||
'
|
||||
'btnOk
|
||||
'
|
||||
Me.btnOk.Location = New System.Drawing.Point(316, 146)
|
||||
Me.btnOk.Name = "btnOk"
|
||||
Me.btnOk.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnOk.TabIndex = 3
|
||||
Me.btnOk.Text = "&OK"
|
||||
Me.btnOk.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblResults
|
||||
'
|
||||
Me.lblResults.Location = New System.Drawing.Point(9, 42)
|
||||
Me.lblResults.Name = "lblResults"
|
||||
Me.lblResults.Size = New System.Drawing.Size(463, 13)
|
||||
Me.lblResults.TabIndex = 1
|
||||
Me.lblResults.Text = "Search Results"
|
||||
Me.lblResults.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'cboDrive
|
||||
'
|
||||
Me.cboDrive.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.cboDrive.FormattingEnabled = True
|
||||
Me.cboDrive.Location = New System.Drawing.Point(12, 13)
|
||||
Me.cboDrive.Name = "cboDrive"
|
||||
Me.cboDrive.Size = New System.Drawing.Size(85, 21)
|
||||
Me.cboDrive.TabIndex = 5
|
||||
'
|
||||
'frmFileFolderSearch
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(484, 77)
|
||||
Me.ClientSize = New System.Drawing.Size(484, 181)
|
||||
Me.Controls.Add(Me.cboDrive)
|
||||
Me.Controls.Add(Me.lblResults)
|
||||
Me.Controls.Add(Me.btnOk)
|
||||
Me.Controls.Add(Me.lstResults)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.txtCurrentLocation)
|
||||
Me.Controls.Add(Me.pgbProgress)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
@@ -77,8 +110,11 @@ Partial Class frmFileFolderSearch
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents pgbProgress As System.Windows.Forms.ProgressBar
|
||||
Friend WithEvents txtCurrentLocation As System.Windows.Forms.TextBox
|
||||
Friend WithEvents btnCancel As System.Windows.Forms.Button
|
||||
Friend WithEvents bwSearch As System.ComponentModel.BackgroundWorker
|
||||
Friend WithEvents lstResults As System.Windows.Forms.ListBox
|
||||
Friend WithEvents btnOk As System.Windows.Forms.Button
|
||||
Friend WithEvents lblResults As System.Windows.Forms.Label
|
||||
Friend WithEvents cboDrive As System.Windows.Forms.ComboBox
|
||||
End Class
|
||||
|
||||
@@ -1,15 +1,36 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmFileFolderSearch
|
||||
Private sSearchItem As String
|
||||
Private sGameName As String = String.Empty
|
||||
Private bIsLoading As Boolean
|
||||
Private bIsFolder As Boolean
|
||||
Private sFoundItem As String
|
||||
Private oDrives As List(Of DriveInfo)
|
||||
Private iCurrentDrive As Integer
|
||||
Private oSearchDrive As DirectoryInfo
|
||||
Dim bShutdown As Boolean = False
|
||||
|
||||
Private Enum eStopStatus As Integer
|
||||
Cancel = 1
|
||||
ChangeDrive = 2
|
||||
FoundResult = 3
|
||||
FinishedDrive = 4
|
||||
End Enum
|
||||
|
||||
Private iStopStatus As eStopStatus
|
||||
|
||||
Delegate Sub UpdateInfoCallBack(ByVal sCurrentFolder As String)
|
||||
Delegate Sub UpdateResultsCallBack(ByVal sItem As String)
|
||||
|
||||
Public Property GameName As String
|
||||
Get
|
||||
Return sGameName
|
||||
End Get
|
||||
Set(value As String)
|
||||
sGameName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property SearchItem As String
|
||||
Get
|
||||
@@ -47,19 +68,38 @@ Public Class frmFileFolderSearch
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateResults(ByVal sItem As String)
|
||||
If lstResults.InvokeRequired = True Then
|
||||
Dim d As New UpdateInfoCallBack(AddressOf UpdateResults)
|
||||
Me.Invoke(d, New Object() {sItem})
|
||||
Else
|
||||
'It's possible the same location will be searched twice when using Linux. Filter out duplicate results
|
||||
If Not lstResults.Items.Contains(sItem) Then
|
||||
lstResults.Items.Add(sItem)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function SearchDirectory(ByVal dir As DirectoryInfo, ByVal sDirectoryName As String) As String
|
||||
Dim sSubSearch As String = String.Empty
|
||||
Dim sFoundItem As String = String.Empty
|
||||
|
||||
If bwSearch.CancellationPending Then
|
||||
Return "Cancel"
|
||||
End If
|
||||
|
||||
'Ignore Symlinks
|
||||
If (dir.Attributes And FileAttributes.ReparsePoint) = FileAttributes.ReparsePoint Then
|
||||
Return String.Empty
|
||||
End If
|
||||
|
||||
UpdateInfo(dir.FullName)
|
||||
|
||||
Try
|
||||
'Search Current Directory
|
||||
If dir.GetDirectories(sDirectoryName).Length > 0 Then
|
||||
Return dir.FullName & "\" & sDirectoryName
|
||||
sFoundItem = dir.FullName & Path.DirectorySeparatorChar & sDirectoryName
|
||||
UpdateResults(sFoundItem)
|
||||
End If
|
||||
|
||||
'Search Sub Directory
|
||||
@@ -81,26 +121,34 @@ Public Class frmFileFolderSearch
|
||||
|
||||
Private Function SearchFile(ByVal dir As DirectoryInfo, ByVal sFileName As String) As String
|
||||
Dim sSubSearch As String = String.Empty
|
||||
Dim sFoundItem As String = String.Empty
|
||||
|
||||
If bwSearch.CancellationPending Then
|
||||
Return "Cancel"
|
||||
End If
|
||||
|
||||
'Ignore Symlinks
|
||||
If (dir.Attributes And FileAttributes.ReparsePoint) = FileAttributes.ReparsePoint Then
|
||||
Return String.Empty
|
||||
End If
|
||||
|
||||
UpdateInfo(dir.FullName)
|
||||
|
||||
Try
|
||||
'Search Current Directory
|
||||
If dir.GetFiles(sFileName).Length > 0 Then
|
||||
Return dir.FullName & "\" & sFileName
|
||||
sFoundItem = Path.GetDirectoryName(dir.FullName & Path.DirectorySeparatorChar & sFileName)
|
||||
UpdateResults(sFoundItem)
|
||||
End If
|
||||
|
||||
'Search Sub Directory
|
||||
Dim subdirs() As DirectoryInfo = dir.GetDirectories("*")
|
||||
For Each newDir As DirectoryInfo In subdirs
|
||||
sSubSearch = SearchFile(newDir, sFileName)
|
||||
If sSubSearch <> String.Empty Then
|
||||
Return sSubSearch
|
||||
End If
|
||||
sSubSearch = SearchFile(newDir, sFileName)
|
||||
|
||||
If sSubSearch <> String.Empty Then
|
||||
Return sSubSearch
|
||||
End If
|
||||
Next
|
||||
Catch e As System.UnauthorizedAccessException
|
||||
'Do Nothing
|
||||
@@ -112,47 +160,79 @@ Public Class frmFileFolderSearch
|
||||
End Function
|
||||
|
||||
Private Sub GetDrives()
|
||||
Dim oComboItems As New List(Of KeyValuePair(Of Integer, String))
|
||||
Dim iCount As Integer = 0
|
||||
|
||||
'cboDrive
|
||||
cboDrive.ValueMember = "Key"
|
||||
cboDrive.DisplayMember = "Value"
|
||||
|
||||
oDrives = New List(Of DriveInfo)
|
||||
For Each oDrive As DriveInfo In My.Computer.FileSystem.Drives
|
||||
If oDrive.DriveType = IO.DriveType.Fixed Then
|
||||
oDrives.Add(oDrive)
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(iCount, oDrive.RootDirectory.ToString))
|
||||
iCount += 1
|
||||
End If
|
||||
Next
|
||||
cboDrive.DataSource = oComboItems
|
||||
End Sub
|
||||
|
||||
Private Sub Search(ByVal oDrive As DriveInfo)
|
||||
pgbProgress.Style = ProgressBarStyle.Marquee
|
||||
pgbProgress.MarqueeAnimationSpeed = 5
|
||||
iStopStatus = eStopStatus.FinishedDrive
|
||||
oSearchDrive = oDrive.RootDirectory
|
||||
bwSearch.RunWorkerAsync()
|
||||
iCurrentDrive += 1
|
||||
End Sub
|
||||
|
||||
Private Sub EndSearch()
|
||||
Dim oResult As MsgBoxResult
|
||||
pgbProgress.MarqueeAnimationSpeed = 0
|
||||
|
||||
If FoundItem = "Cancel" Then FoundItem = String.Empty
|
||||
|
||||
If oDrives.Count > iCurrentDrive And FoundItem = String.Empty Then
|
||||
oResult = MsgBox("The location was not found on the " & oSearchDrive.Root.ToString & _
|
||||
" drive. Do you wish to search the " & oDrives(iCurrentDrive).RootDirectory.ToString & _
|
||||
" drive?", MsgBoxStyle.YesNo, "Game Backup Monitor")
|
||||
If oResult = MsgBoxResult.Yes Then
|
||||
Search(oDrives(iCurrentDrive))
|
||||
Else
|
||||
Select Case iStopStatus
|
||||
Case eStopStatus.Cancel
|
||||
SearchComplete(frmFileFolderSearch_SearchCancel)
|
||||
Case eStopStatus.ChangeDrive
|
||||
Search(oDrives(cboDrive.SelectedValue))
|
||||
Case eStopStatus.FinishedDrive
|
||||
'Attempt to move onto the next drive it one exists and there's been no results
|
||||
If oDrives.Count > 1 And lstResults.Items.Count = 0 Then
|
||||
If cboDrive.SelectedIndex = (cboDrive.Items.Count - 1) Then
|
||||
cboDrive.SelectedIndex = 0
|
||||
Else
|
||||
cboDrive.SelectedIndex = cboDrive.SelectedIndex + 1
|
||||
End If
|
||||
Else
|
||||
SearchComplete(frmFileFolderSearch_SearchComplete)
|
||||
End If
|
||||
Case eStopStatus.FoundResult
|
||||
FoundItem = lstResults.SelectedItem.ToString
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End If
|
||||
Else
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub SearchComplete(ByVal sStopMessage As String)
|
||||
txtCurrentLocation.Text = sStopMessage
|
||||
If lstResults.Items.Count > 0 Then
|
||||
lstResults.SelectedIndex = 0
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmFileFolderSearch_FormName
|
||||
|
||||
'Set Form Text
|
||||
lblResults.Text = frmFileFolderSearch_lblResults
|
||||
btnOk.Text = frmFileFolderSearch_btnOk
|
||||
btnCancel.Text = frmFileFolderSearch_btnCancel
|
||||
End Sub
|
||||
|
||||
Private Sub frmFileFolderSearch_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
bIsLoading = True
|
||||
SetForm()
|
||||
GetDrives()
|
||||
Search(oDrives(iCurrentDrive))
|
||||
bIsLoading = False
|
||||
Search(oDrives(0))
|
||||
End Sub
|
||||
|
||||
Private Sub bwSearch_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bwSearch.DoWork
|
||||
@@ -168,11 +248,54 @@ Public Class frmFileFolderSearch
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
bwSearch.CancelAsync()
|
||||
If bwSearch.IsBusy Then
|
||||
iStopStatus = eStopStatus.Cancel
|
||||
bwSearch.CancelAsync()
|
||||
Else
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmFileFolderSearch_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
|
||||
bwSearch.CancelAsync()
|
||||
If Not bShutdown Then e.Cancel = True
|
||||
End Sub
|
||||
|
||||
Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
|
||||
Dim sItem As String
|
||||
|
||||
If lstResults.SelectedItems.Count = 1 Then
|
||||
sItem = lstResults.SelectedItem.ToString
|
||||
If mgrCommon.ShowMessage(mgrPath_ConfirmPathCorrect, New String() {GameName, sItem}, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
If bwSearch.IsBusy Then
|
||||
iStopStatus = eStopStatus.FoundResult
|
||||
bwSearch.CancelAsync()
|
||||
Else
|
||||
FoundItem = sItem
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub cboDrive_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboDrive.SelectedIndexChanged
|
||||
If Not bIsLoading Then
|
||||
Dim oResult As MsgBoxResult
|
||||
|
||||
oResult = mgrCommon.ShowMessage(frmFileFolderSearch_SwitchDrives, New String() {oDrives(cboDrive.SelectedValue).RootDirectory.ToString}, MsgBoxStyle.YesNo)
|
||||
|
||||
If oResult = MsgBoxResult.Yes Then
|
||||
If bwSearch.IsBusy Then
|
||||
iStopStatus = eStopStatus.ChangeDrive
|
||||
bwSearch.CancelAsync()
|
||||
Else
|
||||
Search(oDrives(cboDrive.SelectedValue))
|
||||
End If
|
||||
Else
|
||||
iStopStatus = eStopStatus.FinishedDrive
|
||||
SearchComplete(frmFileFolderSearch_SearchCancel)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+248
-88
@@ -22,96 +22,83 @@ Partial Class frmFilter
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.btnOK = New System.Windows.Forms.Button()
|
||||
Me.optGameInfo = New System.Windows.Forms.RadioButton()
|
||||
Me.optTag = New System.Windows.Forms.RadioButton()
|
||||
Me.grpTagFilter = New System.Windows.Forms.GroupBox()
|
||||
Me.grpTagOptions = New System.Windows.Forms.GroupBox()
|
||||
Me.optAll = New System.Windows.Forms.RadioButton()
|
||||
Me.optAny = New System.Windows.Forms.RadioButton()
|
||||
Me.lblGameTags = New System.Windows.Forms.Label()
|
||||
Me.lblTags = New System.Windows.Forms.Label()
|
||||
Me.btnRemove = New System.Windows.Forms.Button()
|
||||
Me.btnAdd = New System.Windows.Forms.Button()
|
||||
Me.lstFilter = New System.Windows.Forms.ListBox()
|
||||
Me.lstTags = New System.Windows.Forms.ListBox()
|
||||
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||
Me.optAll = New System.Windows.Forms.RadioButton()
|
||||
Me.optAny = New System.Windows.Forms.RadioButton()
|
||||
Me.GroupBox1.SuspendLayout()
|
||||
Me.btnOK = New System.Windows.Forms.Button()
|
||||
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
|
||||
Me.grpGameInfoOptions = New System.Windows.Forms.GroupBox()
|
||||
Me.optOr = New System.Windows.Forms.RadioButton()
|
||||
Me.optAnd = New System.Windows.Forms.RadioButton()
|
||||
Me.txtCompany = New System.Windows.Forms.TextBox()
|
||||
Me.lblCompany = New System.Windows.Forms.Label()
|
||||
Me.txtProcess = New System.Windows.Forms.TextBox()
|
||||
Me.lblProcess = New System.Windows.Forms.Label()
|
||||
Me.lblName = New System.Windows.Forms.Label()
|
||||
Me.txtName = New System.Windows.Forms.TextBox()
|
||||
Me.grpTagFilter.SuspendLayout()
|
||||
Me.grpTagOptions.SuspendLayout()
|
||||
Me.grpGameFilter.SuspendLayout()
|
||||
Me.grpGameInfoOptions.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'btnOK
|
||||
'optGameInfo
|
||||
'
|
||||
Me.btnOK.Location = New System.Drawing.Point(297, 229)
|
||||
Me.btnOK.Name = "btnOK"
|
||||
Me.btnOK.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnOK.TabIndex = 7
|
||||
Me.btnOK.Text = "&OK"
|
||||
Me.btnOK.UseVisualStyleBackColor = True
|
||||
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
|
||||
'
|
||||
'lblGameTags
|
||||
'optTag
|
||||
'
|
||||
Me.lblGameTags.AutoSize = True
|
||||
Me.lblGameTags.Location = New System.Drawing.Point(263, 8)
|
||||
Me.lblGameTags.Name = "lblGameTags"
|
||||
Me.lblGameTags.Size = New System.Drawing.Size(66, 13)
|
||||
Me.lblGameTags.TabIndex = 5
|
||||
Me.lblGameTags.Text = "Current Filter"
|
||||
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
|
||||
'
|
||||
'lblTags
|
||||
'grpTagFilter
|
||||
'
|
||||
Me.lblTags.AutoSize = True
|
||||
Me.lblTags.Location = New System.Drawing.Point(49, 8)
|
||||
Me.lblTags.Name = "lblTags"
|
||||
Me.lblTags.Size = New System.Drawing.Size(77, 13)
|
||||
Me.lblTags.TabIndex = 0
|
||||
Me.lblTags.Text = "Available Tags"
|
||||
Me.grpTagFilter.Controls.Add(Me.grpTagOptions)
|
||||
Me.grpTagFilter.Controls.Add(Me.lblGameTags)
|
||||
Me.grpTagFilter.Controls.Add(Me.lblTags)
|
||||
Me.grpTagFilter.Controls.Add(Me.btnRemove)
|
||||
Me.grpTagFilter.Controls.Add(Me.btnAdd)
|
||||
Me.grpTagFilter.Controls.Add(Me.lstFilter)
|
||||
Me.grpTagFilter.Controls.Add(Me.lstTags)
|
||||
Me.grpTagFilter.Location = New System.Drawing.Point(12, 213)
|
||||
Me.grpTagFilter.Name = "grpTagFilter"
|
||||
Me.grpTagFilter.Size = New System.Drawing.Size(385, 265)
|
||||
Me.grpTagFilter.TabIndex = 3
|
||||
Me.grpTagFilter.TabStop = False
|
||||
'
|
||||
'btnRemove
|
||||
'grpTagOptions
|
||||
'
|
||||
Me.btnRemove.Location = New System.Drawing.Point(168, 114)
|
||||
Me.btnRemove.Name = "btnRemove"
|
||||
Me.btnRemove.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnRemove.TabIndex = 4
|
||||
Me.btnRemove.Text = "< <"
|
||||
Me.btnRemove.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnAdd
|
||||
'
|
||||
Me.btnAdd.Location = New System.Drawing.Point(168, 85)
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnAdd.TabIndex = 3
|
||||
Me.btnAdd.Text = "> >"
|
||||
Me.btnAdd.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lstFilter
|
||||
'
|
||||
Me.lstFilter.FormattingEnabled = True
|
||||
Me.lstFilter.Location = New System.Drawing.Point(222, 24)
|
||||
Me.lstFilter.Name = "lstFilter"
|
||||
Me.lstFilter.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstFilter.Size = New System.Drawing.Size(150, 173)
|
||||
Me.lstFilter.TabIndex = 6
|
||||
'
|
||||
'lstTags
|
||||
'
|
||||
Me.lstTags.FormattingEnabled = True
|
||||
Me.lstTags.Location = New System.Drawing.Point(12, 24)
|
||||
Me.lstTags.Name = "lstTags"
|
||||
Me.lstTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstTags.Size = New System.Drawing.Size(150, 173)
|
||||
Me.lstTags.TabIndex = 1
|
||||
'
|
||||
'GroupBox1
|
||||
'
|
||||
Me.GroupBox1.Controls.Add(Me.optAll)
|
||||
Me.GroupBox1.Controls.Add(Me.optAny)
|
||||
Me.GroupBox1.Location = New System.Drawing.Point(12, 206)
|
||||
Me.GroupBox1.Name = "GroupBox1"
|
||||
Me.GroupBox1.Size = New System.Drawing.Size(150, 46)
|
||||
Me.GroupBox1.TabIndex = 2
|
||||
Me.GroupBox1.TabStop = False
|
||||
Me.GroupBox1.Text = "Matching Options"
|
||||
Me.grpTagOptions.Controls.Add(Me.optAll)
|
||||
Me.grpTagOptions.Controls.Add(Me.optAny)
|
||||
Me.grpTagOptions.Location = New System.Drawing.Point(6, 211)
|
||||
Me.grpTagOptions.Name = "grpTagOptions"
|
||||
Me.grpTagOptions.Size = New System.Drawing.Size(150, 46)
|
||||
Me.grpTagOptions.TabIndex = 6
|
||||
Me.grpTagOptions.TabStop = False
|
||||
Me.grpTagOptions.Text = "Options"
|
||||
'
|
||||
'optAll
|
||||
'
|
||||
Me.optAll.AutoSize = True
|
||||
Me.optAll.Location = New System.Drawing.Point(77, 19)
|
||||
Me.optAll.Name = "optAll"
|
||||
Me.optAll.Size = New System.Drawing.Size(63, 17)
|
||||
@@ -122,7 +109,6 @@ Partial Class frmFilter
|
||||
'
|
||||
'optAny
|
||||
'
|
||||
Me.optAny.AutoSize = True
|
||||
Me.optAny.Checked = True
|
||||
Me.optAny.Location = New System.Drawing.Point(6, 19)
|
||||
Me.optAny.Name = "optAny"
|
||||
@@ -132,40 +118,214 @@ Partial Class frmFilter
|
||||
Me.optAny.Text = "Any Tag"
|
||||
Me.optAny.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblGameTags
|
||||
'
|
||||
Me.lblGameTags.AutoSize = True
|
||||
Me.lblGameTags.Location = New System.Drawing.Point(271, 16)
|
||||
Me.lblGameTags.Name = "lblGameTags"
|
||||
Me.lblGameTags.Size = New System.Drawing.Size(66, 13)
|
||||
Me.lblGameTags.TabIndex = 4
|
||||
Me.lblGameTags.Text = "Current Filter"
|
||||
'
|
||||
'lblTags
|
||||
'
|
||||
Me.lblTags.AutoSize = True
|
||||
Me.lblTags.Location = New System.Drawing.Point(43, 16)
|
||||
Me.lblTags.Name = "lblTags"
|
||||
Me.lblTags.Size = New System.Drawing.Size(77, 13)
|
||||
Me.lblTags.TabIndex = 0
|
||||
Me.lblTags.Text = "Available Tags"
|
||||
'
|
||||
'btnRemove
|
||||
'
|
||||
Me.btnRemove.Location = New System.Drawing.Point(162, 122)
|
||||
Me.btnRemove.Name = "btnRemove"
|
||||
Me.btnRemove.Size = New System.Drawing.Size(61, 23)
|
||||
Me.btnRemove.TabIndex = 3
|
||||
Me.btnRemove.Text = "<"
|
||||
Me.btnRemove.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnAdd
|
||||
'
|
||||
Me.btnAdd.Location = New System.Drawing.Point(162, 93)
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(61, 23)
|
||||
Me.btnAdd.TabIndex = 2
|
||||
Me.btnAdd.Text = ">"
|
||||
Me.btnAdd.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lstFilter
|
||||
'
|
||||
Me.lstFilter.FormattingEnabled = True
|
||||
Me.lstFilter.Location = New System.Drawing.Point(229, 32)
|
||||
Me.lstFilter.Name = "lstFilter"
|
||||
Me.lstFilter.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstFilter.Size = New System.Drawing.Size(150, 173)
|
||||
Me.lstFilter.Sorted = True
|
||||
Me.lstFilter.TabIndex = 5
|
||||
'
|
||||
'lstTags
|
||||
'
|
||||
Me.lstTags.FormattingEnabled = True
|
||||
Me.lstTags.Location = New System.Drawing.Point(6, 32)
|
||||
Me.lstTags.Name = "lstTags"
|
||||
Me.lstTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstTags.Size = New System.Drawing.Size(150, 173)
|
||||
Me.lstTags.Sorted = True
|
||||
Me.lstTags.TabIndex = 1
|
||||
'
|
||||
'btnOK
|
||||
'
|
||||
Me.btnOK.Location = New System.Drawing.Point(322, 484)
|
||||
Me.btnOK.Name = "btnOK"
|
||||
Me.btnOK.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnOK.TabIndex = 4
|
||||
Me.btnOK.Text = "&OK"
|
||||
Me.btnOK.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpGameFilter
|
||||
'
|
||||
Me.grpGameFilter.Controls.Add(Me.grpGameInfoOptions)
|
||||
Me.grpGameFilter.Controls.Add(Me.txtCompany)
|
||||
Me.grpGameFilter.Controls.Add(Me.lblCompany)
|
||||
Me.grpGameFilter.Controls.Add(Me.txtProcess)
|
||||
Me.grpGameFilter.Controls.Add(Me.lblProcess)
|
||||
Me.grpGameFilter.Controls.Add(Me.lblName)
|
||||
Me.grpGameFilter.Controls.Add(Me.txtName)
|
||||
Me.grpGameFilter.Location = New System.Drawing.Point(12, 35)
|
||||
Me.grpGameFilter.Name = "grpGameFilter"
|
||||
Me.grpGameFilter.Size = New System.Drawing.Size(385, 150)
|
||||
Me.grpGameFilter.TabIndex = 1
|
||||
Me.grpGameFilter.TabStop = False
|
||||
'
|
||||
'grpGameInfoOptions
|
||||
'
|
||||
Me.grpGameInfoOptions.Controls.Add(Me.optOr)
|
||||
Me.grpGameInfoOptions.Controls.Add(Me.optAnd)
|
||||
Me.grpGameInfoOptions.Location = New System.Drawing.Point(14, 97)
|
||||
Me.grpGameInfoOptions.Name = "grpGameInfoOptions"
|
||||
Me.grpGameInfoOptions.Size = New System.Drawing.Size(106, 46)
|
||||
Me.grpGameInfoOptions.TabIndex = 6
|
||||
Me.grpGameInfoOptions.TabStop = False
|
||||
Me.grpGameInfoOptions.Text = "Options"
|
||||
'
|
||||
'optOr
|
||||
'
|
||||
Me.optOr.Location = New System.Drawing.Point(56, 19)
|
||||
Me.optOr.Name = "optOr"
|
||||
Me.optOr.Size = New System.Drawing.Size(36, 17)
|
||||
Me.optOr.TabIndex = 1
|
||||
Me.optOr.TabStop = True
|
||||
Me.optOr.Text = "Or"
|
||||
Me.optOr.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optAnd
|
||||
'
|
||||
Me.optAnd.Checked = True
|
||||
Me.optAnd.Location = New System.Drawing.Point(6, 19)
|
||||
Me.optAnd.Name = "optAnd"
|
||||
Me.optAnd.Size = New System.Drawing.Size(44, 17)
|
||||
Me.optAnd.TabIndex = 0
|
||||
Me.optAnd.TabStop = True
|
||||
Me.optAnd.Text = "And"
|
||||
Me.optAnd.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtCompany
|
||||
'
|
||||
Me.txtCompany.Location = New System.Drawing.Point(70, 71)
|
||||
Me.txtCompany.Name = "txtCompany"
|
||||
Me.txtCompany.Size = New System.Drawing.Size(309, 20)
|
||||
Me.txtCompany.TabIndex = 5
|
||||
'
|
||||
'lblCompany
|
||||
'
|
||||
Me.lblCompany.AutoSize = True
|
||||
Me.lblCompany.Location = New System.Drawing.Point(11, 74)
|
||||
Me.lblCompany.Name = "lblCompany"
|
||||
Me.lblCompany.Size = New System.Drawing.Size(54, 13)
|
||||
Me.lblCompany.TabIndex = 4
|
||||
Me.lblCompany.Text = "Company:"
|
||||
'
|
||||
'txtProcess
|
||||
'
|
||||
Me.txtProcess.Location = New System.Drawing.Point(70, 45)
|
||||
Me.txtProcess.Name = "txtProcess"
|
||||
Me.txtProcess.Size = New System.Drawing.Size(309, 20)
|
||||
Me.txtProcess.TabIndex = 3
|
||||
'
|
||||
'lblProcess
|
||||
'
|
||||
Me.lblProcess.AutoSize = True
|
||||
Me.lblProcess.Location = New System.Drawing.Point(11, 48)
|
||||
Me.lblProcess.Name = "lblProcess"
|
||||
Me.lblProcess.Size = New System.Drawing.Size(48, 13)
|
||||
Me.lblProcess.TabIndex = 2
|
||||
Me.lblProcess.Text = "Process:"
|
||||
'
|
||||
'lblName
|
||||
'
|
||||
Me.lblName.AutoSize = True
|
||||
Me.lblName.Location = New System.Drawing.Point(11, 22)
|
||||
Me.lblName.Name = "lblName"
|
||||
Me.lblName.Size = New System.Drawing.Size(38, 13)
|
||||
Me.lblName.TabIndex = 0
|
||||
Me.lblName.Text = "Name:"
|
||||
'
|
||||
'txtName
|
||||
'
|
||||
Me.txtName.Location = New System.Drawing.Point(70, 19)
|
||||
Me.txtName.Name = "txtName"
|
||||
Me.txtName.Size = New System.Drawing.Size(309, 20)
|
||||
Me.txtName.TabIndex = 1
|
||||
'
|
||||
'frmFilter
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(384, 261)
|
||||
Me.Controls.Add(Me.GroupBox1)
|
||||
Me.ClientSize = New System.Drawing.Size(409, 516)
|
||||
Me.Controls.Add(Me.grpGameFilter)
|
||||
Me.Controls.Add(Me.grpTagFilter)
|
||||
Me.Controls.Add(Me.btnOK)
|
||||
Me.Controls.Add(Me.lblGameTags)
|
||||
Me.Controls.Add(Me.lblTags)
|
||||
Me.Controls.Add(Me.btnRemove)
|
||||
Me.Controls.Add(Me.btnAdd)
|
||||
Me.Controls.Add(Me.lstFilter)
|
||||
Me.Controls.Add(Me.lstTags)
|
||||
Me.Controls.Add(Me.optTag)
|
||||
Me.Controls.Add(Me.optGameInfo)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "frmFilter"
|
||||
Me.ShowIcon = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "Filter by Tags"
|
||||
Me.GroupBox1.ResumeLayout(False)
|
||||
Me.GroupBox1.PerformLayout()
|
||||
Me.Text = "Custom Filter"
|
||||
Me.grpTagFilter.ResumeLayout(False)
|
||||
Me.grpTagFilter.PerformLayout()
|
||||
Me.grpTagOptions.ResumeLayout(False)
|
||||
Me.grpGameFilter.ResumeLayout(False)
|
||||
Me.grpGameFilter.PerformLayout()
|
||||
Me.grpGameInfoOptions.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents btnOK As System.Windows.Forms.Button
|
||||
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 grpTagOptions As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents optAll As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optAny As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents lblGameTags As System.Windows.Forms.Label
|
||||
Friend WithEvents lblTags As System.Windows.Forms.Label
|
||||
Friend WithEvents btnRemove As System.Windows.Forms.Button
|
||||
Friend WithEvents btnAdd As System.Windows.Forms.Button
|
||||
Friend WithEvents lstFilter As System.Windows.Forms.ListBox
|
||||
Friend WithEvents lstTags As System.Windows.Forms.ListBox
|
||||
Friend WithEvents GroupBox1 As GroupBox
|
||||
Friend WithEvents optAll As RadioButton
|
||||
Friend WithEvents optAny As RadioButton
|
||||
Friend WithEvents btnOK As System.Windows.Forms.Button
|
||||
Friend WithEvents grpGameFilter As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents txtProcess As System.Windows.Forms.TextBox
|
||||
Friend WithEvents lblProcess As System.Windows.Forms.Label
|
||||
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 optAnd As System.Windows.Forms.RadioButton
|
||||
End Class
|
||||
|
||||
+88
-17
@@ -1,18 +1,31 @@
|
||||
Public Class frmFilter
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmFilter
|
||||
|
||||
Public Enum eFilterType As Integer
|
||||
Any = 1
|
||||
All = 2
|
||||
NoFilter = 1
|
||||
AnyTag = 2
|
||||
AllTags = 3
|
||||
NoTags = 4
|
||||
FieldAnd = 5
|
||||
FieldOr = 6
|
||||
End Enum
|
||||
|
||||
Dim oFilters As New List(Of clsTag)
|
||||
Dim eCurrentFilterType As eFilterType = eFilterType.Any
|
||||
Dim oTagFilters As New List(Of clsTag)
|
||||
Dim hshStringFilters As New Hashtable
|
||||
Dim eCurrentFilterType As eFilterType = eFilterType.AnyTag
|
||||
Dim hshTags As New Hashtable
|
||||
Dim bShutdown As Boolean = False
|
||||
|
||||
Public ReadOnly Property Filters As List(Of clsTag)
|
||||
Public ReadOnly Property StringFilters As Hashtable
|
||||
Get
|
||||
Return oFilters
|
||||
Return hshStringFilters
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property TagFilters As List(Of clsTag)
|
||||
Get
|
||||
Return oTagFilters
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -96,29 +109,77 @@
|
||||
Dim oData As KeyValuePair(Of String, String)
|
||||
Dim oTag As clsTag
|
||||
|
||||
'Set Tags
|
||||
For Each oData In lstFilter.Items
|
||||
oTag = DirectCast(hshTags(oData.Value), clsTag)
|
||||
Filters.Add(oTag)
|
||||
Next
|
||||
|
||||
'Set Filter Type
|
||||
If optAll.Checked Then
|
||||
eCurrentFilterType = eFilterType.All
|
||||
If optGameInfo.Checked Then
|
||||
'Set Filter Type
|
||||
If optAnd.Checked Then
|
||||
eCurrentFilterType = eFilterType.FieldAnd
|
||||
Else
|
||||
eCurrentFilterType = eFilterType.FieldOr
|
||||
End If
|
||||
|
||||
'Set String Filter
|
||||
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
|
||||
eCurrentFilterType = eFilterType.Any
|
||||
'Set Tags
|
||||
For Each oData In lstFilter.Items
|
||||
oTag = DirectCast(hshTags(oData.Value), clsTag)
|
||||
TagFilters.Add(oTag)
|
||||
Next
|
||||
|
||||
'Set Filter Type
|
||||
If TagFilters.Count = 0 Then
|
||||
eCurrentFilterType = eFilterType.NoTags
|
||||
ElseIf optAll.Checked Then
|
||||
eCurrentFilterType = eFilterType.AllTags
|
||||
Else
|
||||
eCurrentFilterType = eFilterType.AnyTag
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmFilter_FormName
|
||||
|
||||
'Set Form Text
|
||||
optOr.Text = frmFilter_optOr
|
||||
optAnd.Text = frmFilter_optAnd
|
||||
lblCompany.Text = frmFilter_lblCompany
|
||||
lblProcess.Text = frmFilter_lblProcess
|
||||
lblName.Text = frmFilter_lblName
|
||||
grpGameInfoOptions.Text = frmFilter_grpGameInfoOptions
|
||||
optAll.Text = frmFilter_optAll
|
||||
optAny.Text = frmFilter_optAny
|
||||
lblGameTags.Text = frmFilter_lblGameTags
|
||||
lblTags.Text = frmFilter_lblTags
|
||||
btnRemove.Text = frmFilter_btnRemove
|
||||
btnAdd.Text = frmFilter_btnAdd
|
||||
btnOK.Text = frmFilter_btnOK
|
||||
grpTagOptions.Text = frmFilter_grpTagOptions
|
||||
optTag.Text = frmFilter_optTag
|
||||
optGameInfo.Text = frmFilter_optGameInfo
|
||||
End Sub
|
||||
|
||||
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
optGameInfo.Checked = True
|
||||
LoadData()
|
||||
End Sub
|
||||
|
||||
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
||||
GetFilters()
|
||||
bShutdown = True
|
||||
Me.close
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
|
||||
@@ -134,4 +195,14 @@
|
||||
e.Cancel = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub optGameInfo_Click(sender As Object, e As EventArgs) Handles optGameInfo.Click, optTag.Click
|
||||
If optGameInfo.Checked = True Then
|
||||
grpGameFilter.Enabled = True
|
||||
grpTagFilter.Enabled = False
|
||||
Else
|
||||
grpGameFilter.Enabled = False
|
||||
grpTagFilter.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+246
-149
@@ -22,14 +22,15 @@ Partial Class frmGameManager
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Me.btnAdd = New System.Windows.Forms.Button()
|
||||
Me.btnDelete = New System.Windows.Forms.Button()
|
||||
Me.btnBackup = New System.Windows.Forms.Button()
|
||||
Me.btnClose = New System.Windows.Forms.Button()
|
||||
Me.grpConfig = New System.Windows.Forms.GroupBox()
|
||||
Me.btnExclude = New System.Windows.Forms.Button()
|
||||
Me.btnInclude = New System.Windows.Forms.Button()
|
||||
Me.txtID = New System.Windows.Forms.TextBox()
|
||||
Me.lblExclude = New System.Windows.Forms.Label()
|
||||
Me.lblFileType = New System.Windows.Forms.Label()
|
||||
Me.btnSavePathBrowse = New System.Windows.Forms.Button()
|
||||
Me.btnProcessBrowse = New System.Windows.Forms.Button()
|
||||
Me.lblSavePath = New System.Windows.Forms.Label()
|
||||
@@ -52,7 +53,7 @@ Partial Class frmGameManager
|
||||
Me.txtCompany = New System.Windows.Forms.TextBox()
|
||||
Me.lblCompany = New System.Windows.Forms.Label()
|
||||
Me.pbIcon = New System.Windows.Forms.PictureBox()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.lblIcon = New System.Windows.Forms.Label()
|
||||
Me.btnAppPathBrowse = New System.Windows.Forms.Button()
|
||||
Me.lblGamePath = New System.Windows.Forms.Label()
|
||||
Me.txtAppPath = New System.Windows.Forms.TextBox()
|
||||
@@ -60,6 +61,8 @@ Partial Class frmGameManager
|
||||
Me.lblHours = New System.Windows.Forms.Label()
|
||||
Me.btnTags = New System.Windows.Forms.Button()
|
||||
Me.grpStats = New System.Windows.Forms.GroupBox()
|
||||
Me.lblRestorePath = New System.Windows.Forms.Label()
|
||||
Me.txtRestorePath = New System.Windows.Forms.TextBox()
|
||||
Me.btnOpenRestorePath = New System.Windows.Forms.Button()
|
||||
Me.btnOpenBackupFile = New System.Windows.Forms.Button()
|
||||
Me.txtFileSize = New System.Windows.Forms.TextBox()
|
||||
@@ -77,26 +80,34 @@ Partial Class frmGameManager
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.chkEnabled = New System.Windows.Forms.CheckBox()
|
||||
Me.grpFilter = New System.Windows.Forms.GroupBox()
|
||||
Me.optTag = New System.Windows.Forms.RadioButton()
|
||||
Me.optCustom = New System.Windows.Forms.RadioButton()
|
||||
Me.optBackupData = New System.Windows.Forms.RadioButton()
|
||||
Me.optPendingRestores = New System.Windows.Forms.RadioButton()
|
||||
Me.optAllGames = New System.Windows.Forms.RadioButton()
|
||||
Me.btnImport = New System.Windows.Forms.Button()
|
||||
Me.btnExport = New System.Windows.Forms.Button()
|
||||
Me.cmsImport = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.cmsOfficial = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.cmsFile = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.txtQuickFilter = New System.Windows.Forms.TextBox()
|
||||
Me.lblQuickFilter = New System.Windows.Forms.Label()
|
||||
Me.grpConfig.SuspendLayout()
|
||||
Me.grpExtra.SuspendLayout()
|
||||
CType(Me.pbIcon, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.nudHours, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.grpStats.SuspendLayout()
|
||||
Me.grpFilter.SuspendLayout()
|
||||
Me.cmsImport.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'btnAdd
|
||||
'
|
||||
Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnAdd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.btnAdd.Location = New System.Drawing.Point(12, 527)
|
||||
Me.btnAdd.Location = New System.Drawing.Point(12, 526)
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(30, 23)
|
||||
Me.btnAdd.TabIndex = 2
|
||||
Me.btnAdd.TabIndex = 4
|
||||
Me.btnAdd.Text = "+"
|
||||
Me.btnAdd.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -104,39 +115,39 @@ Partial Class frmGameManager
|
||||
'
|
||||
Me.btnDelete.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnDelete.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.btnDelete.Location = New System.Drawing.Point(48, 527)
|
||||
Me.btnDelete.Location = New System.Drawing.Point(48, 526)
|
||||
Me.btnDelete.Name = "btnDelete"
|
||||
Me.btnDelete.Size = New System.Drawing.Size(30, 23)
|
||||
Me.btnDelete.TabIndex = 3
|
||||
Me.btnDelete.TabIndex = 5
|
||||
Me.btnDelete.Text = "-"
|
||||
Me.btnDelete.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnBackup
|
||||
'
|
||||
Me.btnBackup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnBackup.Location = New System.Drawing.Point(616, 526)
|
||||
Me.btnBackup.Location = New System.Drawing.Point(616, 525)
|
||||
Me.btnBackup.Name = "btnBackup"
|
||||
Me.btnBackup.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnBackup.TabIndex = 13
|
||||
Me.btnBackup.TabIndex = 18
|
||||
Me.btnBackup.Text = "&Backup"
|
||||
Me.btnBackup.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnClose
|
||||
'
|
||||
Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnClose.Location = New System.Drawing.Point(697, 526)
|
||||
Me.btnClose.Location = New System.Drawing.Point(697, 525)
|
||||
Me.btnClose.Name = "btnClose"
|
||||
Me.btnClose.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnClose.TabIndex = 14
|
||||
Me.btnClose.TabIndex = 19
|
||||
Me.btnClose.Text = "C&lose"
|
||||
Me.btnClose.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpConfig
|
||||
'
|
||||
Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.grpConfig.Controls.Add(Me.btnExclude)
|
||||
Me.grpConfig.Controls.Add(Me.btnInclude)
|
||||
Me.grpConfig.Controls.Add(Me.txtID)
|
||||
Me.grpConfig.Controls.Add(Me.lblExclude)
|
||||
Me.grpConfig.Controls.Add(Me.lblFileType)
|
||||
Me.grpConfig.Controls.Add(Me.btnSavePathBrowse)
|
||||
Me.grpConfig.Controls.Add(Me.btnProcessBrowse)
|
||||
Me.grpConfig.Controls.Add(Me.lblSavePath)
|
||||
@@ -150,56 +161,56 @@ Partial Class frmGameManager
|
||||
Me.grpConfig.Controls.Add(Me.txtProcess)
|
||||
Me.grpConfig.Controls.Add(Me.txtName)
|
||||
Me.grpConfig.Enabled = False
|
||||
Me.grpConfig.Location = New System.Drawing.Point(238, 12)
|
||||
Me.grpConfig.Location = New System.Drawing.Point(247, 12)
|
||||
Me.grpConfig.Name = "grpConfig"
|
||||
Me.grpConfig.Size = New System.Drawing.Size(534, 182)
|
||||
Me.grpConfig.TabIndex = 4
|
||||
Me.grpConfig.Size = New System.Drawing.Size(525, 157)
|
||||
Me.grpConfig.TabIndex = 8
|
||||
Me.grpConfig.TabStop = False
|
||||
Me.grpConfig.Text = "Configuration"
|
||||
'
|
||||
'btnExclude
|
||||
'
|
||||
Me.btnExclude.Location = New System.Drawing.Point(9, 125)
|
||||
Me.btnExclude.Name = "btnExclude"
|
||||
Me.btnExclude.Size = New System.Drawing.Size(175, 23)
|
||||
Me.btnExclude.TabIndex = 13
|
||||
Me.btnExclude.Text = "E&xclude Items..."
|
||||
Me.btnExclude.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnInclude
|
||||
'
|
||||
Me.btnInclude.Location = New System.Drawing.Point(9, 97)
|
||||
Me.btnInclude.Name = "btnInclude"
|
||||
Me.btnInclude.Size = New System.Drawing.Size(175, 23)
|
||||
Me.btnInclude.TabIndex = 10
|
||||
Me.btnInclude.Text = "In&clude Items..."
|
||||
Me.btnInclude.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtID
|
||||
'
|
||||
Me.txtID.Enabled = False
|
||||
Me.txtID.Location = New System.Drawing.Point(495, 147)
|
||||
Me.txtID.Location = New System.Drawing.Point(489, 19)
|
||||
Me.txtID.Name = "txtID"
|
||||
Me.txtID.Size = New System.Drawing.Size(33, 20)
|
||||
Me.txtID.TabIndex = 0
|
||||
Me.txtID.Size = New System.Drawing.Size(30, 20)
|
||||
Me.txtID.TabIndex = 16
|
||||
Me.txtID.TabStop = False
|
||||
Me.txtID.Visible = False
|
||||
'
|
||||
'lblExclude
|
||||
'
|
||||
Me.lblExclude.AutoSize = True
|
||||
Me.lblExclude.Location = New System.Drawing.Point(6, 126)
|
||||
Me.lblExclude.Name = "lblExclude"
|
||||
Me.lblExclude.Size = New System.Drawing.Size(48, 13)
|
||||
Me.lblExclude.TabIndex = 13
|
||||
Me.lblExclude.Text = "Exclude:"
|
||||
'
|
||||
'lblFileType
|
||||
'
|
||||
Me.lblFileType.AutoSize = True
|
||||
Me.lblFileType.Location = New System.Drawing.Point(6, 100)
|
||||
Me.lblFileType.Name = "lblFileType"
|
||||
Me.lblFileType.Size = New System.Drawing.Size(45, 13)
|
||||
Me.lblFileType.TabIndex = 12
|
||||
Me.lblFileType.Text = "Include:"
|
||||
'
|
||||
'btnSavePathBrowse
|
||||
'
|
||||
Me.btnSavePathBrowse.Location = New System.Drawing.Point(498, 71)
|
||||
Me.btnSavePathBrowse.Location = New System.Drawing.Point(489, 71)
|
||||
Me.btnSavePathBrowse.Name = "btnSavePathBrowse"
|
||||
Me.btnSavePathBrowse.Size = New System.Drawing.Size(30, 20)
|
||||
Me.btnSavePathBrowse.TabIndex = 10
|
||||
Me.btnSavePathBrowse.TabIndex = 9
|
||||
Me.btnSavePathBrowse.Text = "..."
|
||||
Me.btnSavePathBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnProcessBrowse
|
||||
'
|
||||
Me.btnProcessBrowse.Location = New System.Drawing.Point(498, 45)
|
||||
Me.btnProcessBrowse.Location = New System.Drawing.Point(489, 45)
|
||||
Me.btnProcessBrowse.Name = "btnProcessBrowse"
|
||||
Me.btnProcessBrowse.Size = New System.Drawing.Size(30, 20)
|
||||
Me.btnProcessBrowse.TabIndex = 8
|
||||
Me.btnProcessBrowse.TabIndex = 7
|
||||
Me.btnProcessBrowse.Text = "..."
|
||||
Me.btnProcessBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -209,7 +220,7 @@ Partial Class frmGameManager
|
||||
Me.lblSavePath.Location = New System.Drawing.Point(6, 74)
|
||||
Me.lblSavePath.Name = "lblSavePath"
|
||||
Me.lblSavePath.Size = New System.Drawing.Size(60, 13)
|
||||
Me.lblSavePath.TabIndex = 9
|
||||
Me.lblSavePath.TabIndex = 2
|
||||
Me.lblSavePath.Text = "Save Path:"
|
||||
'
|
||||
'lblProcess
|
||||
@@ -218,7 +229,7 @@ Partial Class frmGameManager
|
||||
Me.lblProcess.Location = New System.Drawing.Point(6, 48)
|
||||
Me.lblProcess.Name = "lblProcess"
|
||||
Me.lblProcess.Size = New System.Drawing.Size(48, 13)
|
||||
Me.lblProcess.TabIndex = 8
|
||||
Me.lblProcess.TabIndex = 1
|
||||
Me.lblProcess.Text = "Process:"
|
||||
'
|
||||
'lblName
|
||||
@@ -227,27 +238,31 @@ Partial Class frmGameManager
|
||||
Me.lblName.Location = New System.Drawing.Point(6, 22)
|
||||
Me.lblName.Name = "lblName"
|
||||
Me.lblName.Size = New System.Drawing.Size(38, 13)
|
||||
Me.lblName.TabIndex = 7
|
||||
Me.lblName.TabIndex = 0
|
||||
Me.lblName.Text = "Name:"
|
||||
'
|
||||
'txtExclude
|
||||
'
|
||||
Me.txtExclude.Location = New System.Drawing.Point(69, 123)
|
||||
Me.txtExclude.Location = New System.Drawing.Point(363, 128)
|
||||
Me.txtExclude.Name = "txtExclude"
|
||||
Me.txtExclude.Size = New System.Drawing.Size(459, 20)
|
||||
Me.txtExclude.TabIndex = 12
|
||||
Me.txtExclude.Size = New System.Drawing.Size(156, 20)
|
||||
Me.txtExclude.TabIndex = 0
|
||||
Me.txtExclude.TabStop = False
|
||||
Me.txtExclude.Visible = False
|
||||
'
|
||||
'txtFileType
|
||||
'
|
||||
Me.txtFileType.Location = New System.Drawing.Point(69, 97)
|
||||
Me.txtFileType.Location = New System.Drawing.Point(363, 99)
|
||||
Me.txtFileType.Name = "txtFileType"
|
||||
Me.txtFileType.Size = New System.Drawing.Size(459, 20)
|
||||
Me.txtFileType.TabIndex = 11
|
||||
Me.txtFileType.Size = New System.Drawing.Size(156, 20)
|
||||
Me.txtFileType.TabIndex = 0
|
||||
Me.txtFileType.TabStop = False
|
||||
Me.txtFileType.Visible = False
|
||||
'
|
||||
'chkTimeStamp
|
||||
'
|
||||
Me.chkTimeStamp.AutoSize = True
|
||||
Me.chkTimeStamp.Location = New System.Drawing.Point(124, 149)
|
||||
Me.chkTimeStamp.Location = New System.Drawing.Point(190, 129)
|
||||
Me.chkTimeStamp.Name = "chkTimeStamp"
|
||||
Me.chkTimeStamp.Size = New System.Drawing.Size(146, 17)
|
||||
Me.chkTimeStamp.TabIndex = 14
|
||||
@@ -257,10 +272,10 @@ Partial Class frmGameManager
|
||||
'chkFolderSave
|
||||
'
|
||||
Me.chkFolderSave.AutoSize = True
|
||||
Me.chkFolderSave.Location = New System.Drawing.Point(9, 149)
|
||||
Me.chkFolderSave.Location = New System.Drawing.Point(190, 101)
|
||||
Me.chkFolderSave.Name = "chkFolderSave"
|
||||
Me.chkFolderSave.Size = New System.Drawing.Size(109, 17)
|
||||
Me.chkFolderSave.TabIndex = 13
|
||||
Me.chkFolderSave.TabIndex = 11
|
||||
Me.chkFolderSave.Text = "Save entire folder"
|
||||
Me.chkFolderSave.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -268,30 +283,30 @@ Partial Class frmGameManager
|
||||
'
|
||||
Me.txtSavePath.Location = New System.Drawing.Point(69, 71)
|
||||
Me.txtSavePath.Name = "txtSavePath"
|
||||
Me.txtSavePath.Size = New System.Drawing.Size(423, 20)
|
||||
Me.txtSavePath.TabIndex = 9
|
||||
Me.txtSavePath.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtSavePath.TabIndex = 8
|
||||
'
|
||||
'txtProcess
|
||||
'
|
||||
Me.txtProcess.Location = New System.Drawing.Point(69, 45)
|
||||
Me.txtProcess.Name = "txtProcess"
|
||||
Me.txtProcess.Size = New System.Drawing.Size(423, 20)
|
||||
Me.txtProcess.TabIndex = 7
|
||||
Me.txtProcess.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtProcess.TabIndex = 6
|
||||
'
|
||||
'txtName
|
||||
'
|
||||
Me.txtName.Location = New System.Drawing.Point(69, 19)
|
||||
Me.txtName.Name = "txtName"
|
||||
Me.txtName.Size = New System.Drawing.Size(459, 20)
|
||||
Me.txtName.TabIndex = 6
|
||||
Me.txtName.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtName.TabIndex = 5
|
||||
'
|
||||
'chkMonitorOnly
|
||||
'
|
||||
Me.chkMonitorOnly.AutoSize = True
|
||||
Me.chkMonitorOnly.Location = New System.Drawing.Point(353, 365)
|
||||
Me.chkMonitorOnly.Location = New System.Drawing.Point(362, 340)
|
||||
Me.chkMonitorOnly.Name = "chkMonitorOnly"
|
||||
Me.chkMonitorOnly.Size = New System.Drawing.Size(145, 17)
|
||||
Me.chkMonitorOnly.TabIndex = 7
|
||||
Me.chkMonitorOnly.TabIndex = 11
|
||||
Me.chkMonitorOnly.Text = "Monitor only (No backup)"
|
||||
Me.chkMonitorOnly.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -306,16 +321,16 @@ Partial Class frmGameManager
|
||||
Me.grpExtra.Controls.Add(Me.txtCompany)
|
||||
Me.grpExtra.Controls.Add(Me.lblCompany)
|
||||
Me.grpExtra.Controls.Add(Me.pbIcon)
|
||||
Me.grpExtra.Controls.Add(Me.Label1)
|
||||
Me.grpExtra.Controls.Add(Me.lblIcon)
|
||||
Me.grpExtra.Controls.Add(Me.btnAppPathBrowse)
|
||||
Me.grpExtra.Controls.Add(Me.lblGamePath)
|
||||
Me.grpExtra.Controls.Add(Me.txtAppPath)
|
||||
Me.grpExtra.Controls.Add(Me.nudHours)
|
||||
Me.grpExtra.Controls.Add(Me.lblHours)
|
||||
Me.grpExtra.Location = New System.Drawing.Point(238, 200)
|
||||
Me.grpExtra.Location = New System.Drawing.Point(247, 175)
|
||||
Me.grpExtra.Name = "grpExtra"
|
||||
Me.grpExtra.Size = New System.Drawing.Size(534, 155)
|
||||
Me.grpExtra.TabIndex = 5
|
||||
Me.grpExtra.Size = New System.Drawing.Size(525, 155)
|
||||
Me.grpExtra.TabIndex = 9
|
||||
Me.grpExtra.TabStop = False
|
||||
Me.grpExtra.Text = "Game Information"
|
||||
'
|
||||
@@ -323,19 +338,19 @@ Partial Class frmGameManager
|
||||
'
|
||||
Me.lblTags.AutoEllipsis = True
|
||||
Me.lblTags.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblTags.Location = New System.Drawing.Point(163, 124)
|
||||
Me.lblTags.Location = New System.Drawing.Point(161, 124)
|
||||
Me.lblTags.Name = "lblTags"
|
||||
Me.lblTags.Size = New System.Drawing.Size(311, 20)
|
||||
Me.lblTags.Size = New System.Drawing.Size(304, 20)
|
||||
Me.lblTags.TabIndex = 0
|
||||
Me.lblTags.Text = "#Tags"
|
||||
Me.lblTags.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'btnIconBrowse
|
||||
'
|
||||
Me.btnIconBrowse.Location = New System.Drawing.Point(444, 96)
|
||||
Me.btnIconBrowse.Location = New System.Drawing.Point(435, 97)
|
||||
Me.btnIconBrowse.Name = "btnIconBrowse"
|
||||
Me.btnIconBrowse.Size = New System.Drawing.Size(30, 20)
|
||||
Me.btnIconBrowse.TabIndex = 20
|
||||
Me.btnIconBrowse.TabIndex = 10
|
||||
Me.btnIconBrowse.Text = "..."
|
||||
Me.btnIconBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -343,8 +358,8 @@ Partial Class frmGameManager
|
||||
'
|
||||
Me.txtIcon.Location = New System.Drawing.Point(69, 97)
|
||||
Me.txtIcon.Name = "txtIcon"
|
||||
Me.txtIcon.Size = New System.Drawing.Size(369, 20)
|
||||
Me.txtIcon.TabIndex = 19
|
||||
Me.txtIcon.Size = New System.Drawing.Size(360, 20)
|
||||
Me.txtIcon.TabIndex = 9
|
||||
'
|
||||
'lblVersion
|
||||
'
|
||||
@@ -352,22 +367,22 @@ Partial Class frmGameManager
|
||||
Me.lblVersion.Location = New System.Drawing.Point(6, 74)
|
||||
Me.lblVersion.Name = "lblVersion"
|
||||
Me.lblVersion.Size = New System.Drawing.Size(45, 13)
|
||||
Me.lblVersion.TabIndex = 20
|
||||
Me.lblVersion.TabIndex = 2
|
||||
Me.lblVersion.Text = "Version:"
|
||||
'
|
||||
'txtVersion
|
||||
'
|
||||
Me.txtVersion.Location = New System.Drawing.Point(69, 71)
|
||||
Me.txtVersion.Name = "txtVersion"
|
||||
Me.txtVersion.Size = New System.Drawing.Size(459, 20)
|
||||
Me.txtVersion.TabIndex = 18
|
||||
Me.txtVersion.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtVersion.TabIndex = 8
|
||||
'
|
||||
'txtCompany
|
||||
'
|
||||
Me.txtCompany.Location = New System.Drawing.Point(69, 45)
|
||||
Me.txtCompany.Name = "txtCompany"
|
||||
Me.txtCompany.Size = New System.Drawing.Size(459, 20)
|
||||
Me.txtCompany.TabIndex = 17
|
||||
Me.txtCompany.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtCompany.TabIndex = 7
|
||||
'
|
||||
'lblCompany
|
||||
'
|
||||
@@ -375,34 +390,34 @@ Partial Class frmGameManager
|
||||
Me.lblCompany.Location = New System.Drawing.Point(6, 48)
|
||||
Me.lblCompany.Name = "lblCompany"
|
||||
Me.lblCompany.Size = New System.Drawing.Size(54, 13)
|
||||
Me.lblCompany.TabIndex = 17
|
||||
Me.lblCompany.TabIndex = 1
|
||||
Me.lblCompany.Text = "Company:"
|
||||
'
|
||||
'pbIcon
|
||||
'
|
||||
Me.pbIcon.InitialImage = Nothing
|
||||
Me.pbIcon.Location = New System.Drawing.Point(480, 100)
|
||||
Me.pbIcon.Location = New System.Drawing.Point(471, 97)
|
||||
Me.pbIcon.Name = "pbIcon"
|
||||
Me.pbIcon.Size = New System.Drawing.Size(48, 48)
|
||||
Me.pbIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
|
||||
Me.pbIcon.TabIndex = 15
|
||||
Me.pbIcon.TabStop = False
|
||||
'
|
||||
'Label1
|
||||
'lblIcon
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Location = New System.Drawing.Point(6, 100)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(31, 13)
|
||||
Me.Label1.TabIndex = 16
|
||||
Me.Label1.Text = "Icon:"
|
||||
Me.lblIcon.AutoSize = True
|
||||
Me.lblIcon.Location = New System.Drawing.Point(6, 100)
|
||||
Me.lblIcon.Name = "lblIcon"
|
||||
Me.lblIcon.Size = New System.Drawing.Size(31, 13)
|
||||
Me.lblIcon.TabIndex = 3
|
||||
Me.lblIcon.Text = "Icon:"
|
||||
'
|
||||
'btnAppPathBrowse
|
||||
'
|
||||
Me.btnAppPathBrowse.Location = New System.Drawing.Point(498, 19)
|
||||
Me.btnAppPathBrowse.Location = New System.Drawing.Point(489, 19)
|
||||
Me.btnAppPathBrowse.Name = "btnAppPathBrowse"
|
||||
Me.btnAppPathBrowse.Size = New System.Drawing.Size(30, 20)
|
||||
Me.btnAppPathBrowse.TabIndex = 16
|
||||
Me.btnAppPathBrowse.TabIndex = 6
|
||||
Me.btnAppPathBrowse.Text = "..."
|
||||
Me.btnAppPathBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -412,15 +427,15 @@ Partial Class frmGameManager
|
||||
Me.lblGamePath.Location = New System.Drawing.Point(6, 23)
|
||||
Me.lblGamePath.Name = "lblGamePath"
|
||||
Me.lblGamePath.Size = New System.Drawing.Size(63, 13)
|
||||
Me.lblGamePath.TabIndex = 13
|
||||
Me.lblGamePath.TabIndex = 0
|
||||
Me.lblGamePath.Text = "Game Path:"
|
||||
'
|
||||
'txtAppPath
|
||||
'
|
||||
Me.txtAppPath.Location = New System.Drawing.Point(69, 19)
|
||||
Me.txtAppPath.Name = "txtAppPath"
|
||||
Me.txtAppPath.Size = New System.Drawing.Size(423, 20)
|
||||
Me.txtAppPath.TabIndex = 15
|
||||
Me.txtAppPath.Size = New System.Drawing.Size(414, 20)
|
||||
Me.txtAppPath.TabIndex = 5
|
||||
'
|
||||
'nudHours
|
||||
'
|
||||
@@ -430,7 +445,7 @@ Partial Class frmGameManager
|
||||
Me.nudHours.Maximum = New Decimal(New Integer() {10000, 0, 0, 0})
|
||||
Me.nudHours.Name = "nudHours"
|
||||
Me.nudHours.Size = New System.Drawing.Size(88, 20)
|
||||
Me.nudHours.TabIndex = 21
|
||||
Me.nudHours.TabIndex = 12
|
||||
'
|
||||
'lblHours
|
||||
'
|
||||
@@ -438,21 +453,23 @@ Partial Class frmGameManager
|
||||
Me.lblHours.Location = New System.Drawing.Point(6, 126)
|
||||
Me.lblHours.Name = "lblHours"
|
||||
Me.lblHours.Size = New System.Drawing.Size(38, 13)
|
||||
Me.lblHours.TabIndex = 0
|
||||
Me.lblHours.TabIndex = 11
|
||||
Me.lblHours.Text = "Hours:"
|
||||
'
|
||||
'btnTags
|
||||
'
|
||||
Me.btnTags.Location = New System.Drawing.Point(535, 360)
|
||||
Me.btnTags.Location = New System.Drawing.Point(535, 336)
|
||||
Me.btnTags.Name = "btnTags"
|
||||
Me.btnTags.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnTags.TabIndex = 22
|
||||
Me.btnTags.TabIndex = 12
|
||||
Me.btnTags.Text = "Tags..."
|
||||
Me.btnTags.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpStats
|
||||
'
|
||||
Me.grpStats.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.grpStats.Controls.Add(Me.lblRestorePath)
|
||||
Me.grpStats.Controls.Add(Me.txtRestorePath)
|
||||
Me.grpStats.Controls.Add(Me.btnOpenRestorePath)
|
||||
Me.grpStats.Controls.Add(Me.btnOpenBackupFile)
|
||||
Me.grpStats.Controls.Add(Me.txtFileSize)
|
||||
@@ -463,30 +480,45 @@ Partial Class frmGameManager
|
||||
Me.grpStats.Controls.Add(Me.lblCurrentBackup)
|
||||
Me.grpStats.Controls.Add(Me.txtLocalBackup)
|
||||
Me.grpStats.Controls.Add(Me.lblLastBackup)
|
||||
Me.grpStats.Location = New System.Drawing.Point(238, 390)
|
||||
Me.grpStats.Location = New System.Drawing.Point(247, 365)
|
||||
Me.grpStats.Name = "grpStats"
|
||||
Me.grpStats.Size = New System.Drawing.Size(534, 129)
|
||||
Me.grpStats.TabIndex = 10
|
||||
Me.grpStats.Size = New System.Drawing.Size(525, 154)
|
||||
Me.grpStats.TabIndex = 15
|
||||
Me.grpStats.TabStop = False
|
||||
Me.grpStats.Text = "Backup Information"
|
||||
'
|
||||
'lblRestorePath
|
||||
'
|
||||
Me.lblRestorePath.AutoSize = True
|
||||
Me.lblRestorePath.Location = New System.Drawing.Point(6, 102)
|
||||
Me.lblRestorePath.Name = "lblRestorePath"
|
||||
Me.lblRestorePath.Size = New System.Drawing.Size(72, 13)
|
||||
Me.lblRestorePath.TabIndex = 3
|
||||
Me.lblRestorePath.Text = "Restore Path:"
|
||||
'
|
||||
'txtRestorePath
|
||||
'
|
||||
Me.txtRestorePath.Location = New System.Drawing.Point(96, 99)
|
||||
Me.txtRestorePath.Name = "txtRestorePath"
|
||||
Me.txtRestorePath.ReadOnly = True
|
||||
Me.txtRestorePath.Size = New System.Drawing.Size(387, 20)
|
||||
Me.txtRestorePath.TabIndex = 8
|
||||
'
|
||||
'btnOpenRestorePath
|
||||
'
|
||||
Me.btnOpenRestorePath.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnOpenRestorePath.Location = New System.Drawing.Point(336, 100)
|
||||
Me.btnOpenRestorePath.Location = New System.Drawing.Point(339, 125)
|
||||
Me.btnOpenRestorePath.Name = "btnOpenRestorePath"
|
||||
Me.btnOpenRestorePath.Size = New System.Drawing.Size(114, 23)
|
||||
Me.btnOpenRestorePath.TabIndex = 28
|
||||
Me.btnOpenRestorePath.TabIndex = 12
|
||||
Me.btnOpenRestorePath.Text = "O&pen Restore Path"
|
||||
Me.btnOpenRestorePath.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnOpenBackupFile
|
||||
'
|
||||
Me.btnOpenBackupFile.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnOpenBackupFile.Location = New System.Drawing.Point(216, 100)
|
||||
Me.btnOpenBackupFile.Location = New System.Drawing.Point(216, 125)
|
||||
Me.btnOpenBackupFile.Name = "btnOpenBackupFile"
|
||||
Me.btnOpenBackupFile.Size = New System.Drawing.Size(114, 23)
|
||||
Me.btnOpenBackupFile.TabIndex = 27
|
||||
Me.btnOpenBackupFile.TabIndex = 11
|
||||
Me.btnOpenBackupFile.Text = "&Open Backup File"
|
||||
Me.btnOpenBackupFile.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -495,17 +527,16 @@ Partial Class frmGameManager
|
||||
Me.txtFileSize.Location = New System.Drawing.Point(96, 74)
|
||||
Me.txtFileSize.Name = "txtFileSize"
|
||||
Me.txtFileSize.ReadOnly = True
|
||||
Me.txtFileSize.Size = New System.Drawing.Size(275, 20)
|
||||
Me.txtFileSize.TabIndex = 0
|
||||
Me.txtFileSize.Size = New System.Drawing.Size(387, 20)
|
||||
Me.txtFileSize.TabIndex = 7
|
||||
Me.txtFileSize.TabStop = False
|
||||
'
|
||||
'btnDeleteBackup
|
||||
'
|
||||
Me.btnDeleteBackup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnDeleteBackup.Location = New System.Drawing.Point(96, 100)
|
||||
Me.btnDeleteBackup.Location = New System.Drawing.Point(96, 125)
|
||||
Me.btnDeleteBackup.Name = "btnDeleteBackup"
|
||||
Me.btnDeleteBackup.Size = New System.Drawing.Size(114, 23)
|
||||
Me.btnDeleteBackup.TabIndex = 26
|
||||
Me.btnDeleteBackup.TabIndex = 10
|
||||
Me.btnDeleteBackup.Text = "&Delete Backup"
|
||||
Me.btnDeleteBackup.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -515,16 +546,16 @@ Partial Class frmGameManager
|
||||
Me.lblFileSize.Location = New System.Drawing.Point(6, 77)
|
||||
Me.lblFileSize.Name = "lblFileSize"
|
||||
Me.lblFileSize.Size = New System.Drawing.Size(70, 13)
|
||||
Me.lblFileSize.TabIndex = 108
|
||||
Me.lblFileSize.TabIndex = 2
|
||||
Me.lblFileSize.Text = "Backup Size:"
|
||||
'
|
||||
'lblSync
|
||||
'
|
||||
Me.lblSync.AutoSize = True
|
||||
Me.lblSync.Location = New System.Drawing.Point(6, 105)
|
||||
Me.lblSync.Location = New System.Drawing.Point(6, 130)
|
||||
Me.lblSync.Name = "lblSync"
|
||||
Me.lblSync.Size = New System.Drawing.Size(62, 13)
|
||||
Me.lblSync.TabIndex = 24
|
||||
Me.lblSync.TabIndex = 4
|
||||
Me.lblSync.Text = "Up to Date!"
|
||||
Me.lblSync.Visible = False
|
||||
'
|
||||
@@ -533,8 +564,8 @@ Partial Class frmGameManager
|
||||
Me.txtCurrentBackup.Location = New System.Drawing.Point(96, 24)
|
||||
Me.txtCurrentBackup.Name = "txtCurrentBackup"
|
||||
Me.txtCurrentBackup.ReadOnly = True
|
||||
Me.txtCurrentBackup.Size = New System.Drawing.Size(275, 20)
|
||||
Me.txtCurrentBackup.TabIndex = 0
|
||||
Me.txtCurrentBackup.Size = New System.Drawing.Size(387, 20)
|
||||
Me.txtCurrentBackup.TabIndex = 5
|
||||
Me.txtCurrentBackup.TabStop = False
|
||||
'
|
||||
'lblCurrentBackup
|
||||
@@ -543,7 +574,7 @@ Partial Class frmGameManager
|
||||
Me.lblCurrentBackup.Location = New System.Drawing.Point(6, 27)
|
||||
Me.lblCurrentBackup.Name = "lblCurrentBackup"
|
||||
Me.lblCurrentBackup.Size = New System.Drawing.Size(84, 13)
|
||||
Me.lblCurrentBackup.TabIndex = 22
|
||||
Me.lblCurrentBackup.TabIndex = 0
|
||||
Me.lblCurrentBackup.Text = "Current Backup:"
|
||||
'
|
||||
'txtLocalBackup
|
||||
@@ -551,8 +582,8 @@ Partial Class frmGameManager
|
||||
Me.txtLocalBackup.Location = New System.Drawing.Point(96, 50)
|
||||
Me.txtLocalBackup.Name = "txtLocalBackup"
|
||||
Me.txtLocalBackup.ReadOnly = True
|
||||
Me.txtLocalBackup.Size = New System.Drawing.Size(275, 20)
|
||||
Me.txtLocalBackup.TabIndex = 0
|
||||
Me.txtLocalBackup.Size = New System.Drawing.Size(387, 20)
|
||||
Me.txtLocalBackup.TabIndex = 6
|
||||
Me.txtLocalBackup.TabStop = False
|
||||
'
|
||||
'lblLastBackup
|
||||
@@ -561,92 +592,91 @@ Partial Class frmGameManager
|
||||
Me.lblLastBackup.Location = New System.Drawing.Point(6, 53)
|
||||
Me.lblLastBackup.Name = "lblLastBackup"
|
||||
Me.lblLastBackup.Size = New System.Drawing.Size(76, 13)
|
||||
Me.lblLastBackup.TabIndex = 20
|
||||
Me.lblLastBackup.TabIndex = 1
|
||||
Me.lblLastBackup.Text = "Local Backup:"
|
||||
'
|
||||
'btnMarkAsRestored
|
||||
'
|
||||
Me.btnMarkAsRestored.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnMarkAsRestored.Location = New System.Drawing.Point(429, 526)
|
||||
Me.btnMarkAsRestored.Location = New System.Drawing.Point(429, 525)
|
||||
Me.btnMarkAsRestored.Name = "btnMarkAsRestored"
|
||||
Me.btnMarkAsRestored.Size = New System.Drawing.Size(100, 23)
|
||||
Me.btnMarkAsRestored.TabIndex = 11
|
||||
Me.btnMarkAsRestored.TabIndex = 16
|
||||
Me.btnMarkAsRestored.Text = "&Mark as Restored"
|
||||
Me.btnMarkAsRestored.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnRestore
|
||||
'
|
||||
Me.btnRestore.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnRestore.Location = New System.Drawing.Point(535, 526)
|
||||
Me.btnRestore.Location = New System.Drawing.Point(535, 525)
|
||||
Me.btnRestore.Name = "btnRestore"
|
||||
Me.btnRestore.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnRestore.TabIndex = 12
|
||||
Me.btnRestore.TabIndex = 17
|
||||
Me.btnRestore.Text = "&Restore"
|
||||
Me.btnRestore.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnSave
|
||||
'
|
||||
Me.btnSave.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnSave.Location = New System.Drawing.Point(616, 360)
|
||||
Me.btnSave.Location = New System.Drawing.Point(616, 336)
|
||||
Me.btnSave.Name = "btnSave"
|
||||
Me.btnSave.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnSave.TabIndex = 8
|
||||
Me.btnSave.TabIndex = 13
|
||||
Me.btnSave.Text = "&Save"
|
||||
Me.btnSave.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lstGames
|
||||
'
|
||||
Me.lstGames.FormattingEnabled = True
|
||||
Me.lstGames.Location = New System.Drawing.Point(12, 138)
|
||||
Me.lstGames.Location = New System.Drawing.Point(12, 160)
|
||||
Me.lstGames.Name = "lstGames"
|
||||
Me.lstGames.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstGames.Size = New System.Drawing.Size(220, 381)
|
||||
Me.lstGames.Sorted = True
|
||||
Me.lstGames.TabIndex = 1
|
||||
Me.lstGames.Size = New System.Drawing.Size(228, 355)
|
||||
Me.lstGames.TabIndex = 3
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btnCancel.Location = New System.Drawing.Point(697, 360)
|
||||
Me.btnCancel.Location = New System.Drawing.Point(697, 336)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 9
|
||||
Me.btnCancel.TabIndex = 14
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkEnabled
|
||||
'
|
||||
Me.chkEnabled.AutoSize = True
|
||||
Me.chkEnabled.Location = New System.Drawing.Point(238, 365)
|
||||
Me.chkEnabled.Location = New System.Drawing.Point(247, 340)
|
||||
Me.chkEnabled.Name = "chkEnabled"
|
||||
Me.chkEnabled.Size = New System.Drawing.Size(109, 17)
|
||||
Me.chkEnabled.TabIndex = 6
|
||||
Me.chkEnabled.TabIndex = 10
|
||||
Me.chkEnabled.Text = "Monitor this game"
|
||||
Me.chkEnabled.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpFilter
|
||||
'
|
||||
Me.grpFilter.Controls.Add(Me.optTag)
|
||||
Me.grpFilter.Controls.Add(Me.optCustom)
|
||||
Me.grpFilter.Controls.Add(Me.optBackupData)
|
||||
Me.grpFilter.Controls.Add(Me.optPendingRestores)
|
||||
Me.grpFilter.Controls.Add(Me.optAllGames)
|
||||
Me.grpFilter.Location = New System.Drawing.Point(12, 12)
|
||||
Me.grpFilter.Name = "grpFilter"
|
||||
Me.grpFilter.Size = New System.Drawing.Size(220, 113)
|
||||
Me.grpFilter.Size = New System.Drawing.Size(228, 113)
|
||||
Me.grpFilter.TabIndex = 0
|
||||
Me.grpFilter.TabStop = False
|
||||
Me.grpFilter.Text = "Games Filter"
|
||||
'
|
||||
'optTag
|
||||
'optCustom
|
||||
'
|
||||
Me.optTag.AutoSize = True
|
||||
Me.optTag.Location = New System.Drawing.Point(6, 87)
|
||||
Me.optTag.Name = "optTag"
|
||||
Me.optTag.Size = New System.Drawing.Size(49, 17)
|
||||
Me.optTag.TabIndex = 3
|
||||
Me.optTag.TabStop = True
|
||||
Me.optTag.Text = "Tags"
|
||||
Me.optTag.UseVisualStyleBackColor = True
|
||||
Me.optCustom.AutoSize = True
|
||||
Me.optCustom.Location = New System.Drawing.Point(6, 87)
|
||||
Me.optCustom.Name = "optCustom"
|
||||
Me.optCustom.Size = New System.Drawing.Size(60, 17)
|
||||
Me.optCustom.TabIndex = 3
|
||||
Me.optCustom.TabStop = True
|
||||
Me.optCustom.Text = "Custom"
|
||||
Me.optCustom.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optBackupData
|
||||
'
|
||||
@@ -664,10 +694,10 @@ Partial Class frmGameManager
|
||||
Me.optPendingRestores.AutoSize = True
|
||||
Me.optPendingRestores.Location = New System.Drawing.Point(6, 64)
|
||||
Me.optPendingRestores.Name = "optPendingRestores"
|
||||
Me.optPendingRestores.Size = New System.Drawing.Size(104, 17)
|
||||
Me.optPendingRestores.Size = New System.Drawing.Size(122, 17)
|
||||
Me.optPendingRestores.TabIndex = 2
|
||||
Me.optPendingRestores.TabStop = True
|
||||
Me.optPendingRestores.Text = "Pending Restore"
|
||||
Me.optPendingRestores.Text = "New Saves Pending"
|
||||
Me.optPendingRestores.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optAllGames
|
||||
@@ -681,11 +711,68 @@ Partial Class frmGameManager
|
||||
Me.optAllGames.Text = "All"
|
||||
Me.optAllGames.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnImport
|
||||
'
|
||||
Me.btnImport.Location = New System.Drawing.Point(84, 526)
|
||||
Me.btnImport.Name = "btnImport"
|
||||
Me.btnImport.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnImport.TabIndex = 6
|
||||
Me.btnImport.Text = "&Import"
|
||||
Me.btnImport.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnExport
|
||||
'
|
||||
Me.btnExport.Location = New System.Drawing.Point(165, 526)
|
||||
Me.btnExport.Name = "btnExport"
|
||||
Me.btnExport.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnExport.TabIndex = 7
|
||||
Me.btnExport.Text = "&Export"
|
||||
Me.btnExport.UseVisualStyleBackColor = True
|
||||
'
|
||||
'cmsImport
|
||||
'
|
||||
Me.cmsImport.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmsOfficial, Me.cmsFile})
|
||||
Me.cmsImport.Name = "cmsImport"
|
||||
Me.cmsImport.ShowImageMargin = False
|
||||
Me.cmsImport.Size = New System.Drawing.Size(118, 48)
|
||||
'
|
||||
'cmsOfficial
|
||||
'
|
||||
Me.cmsOfficial.Name = "cmsOfficial"
|
||||
Me.cmsOfficial.Size = New System.Drawing.Size(117, 22)
|
||||
Me.cmsOfficial.Text = "&Official List..."
|
||||
'
|
||||
'cmsFile
|
||||
'
|
||||
Me.cmsFile.Name = "cmsFile"
|
||||
Me.cmsFile.Size = New System.Drawing.Size(117, 22)
|
||||
Me.cmsFile.Text = "&File..."
|
||||
'
|
||||
'txtQuickFilter
|
||||
'
|
||||
Me.txtQuickFilter.Location = New System.Drawing.Point(80, 134)
|
||||
Me.txtQuickFilter.Name = "txtQuickFilter"
|
||||
Me.txtQuickFilter.Size = New System.Drawing.Size(160, 20)
|
||||
Me.txtQuickFilter.TabIndex = 2
|
||||
'
|
||||
'lblQuickFilter
|
||||
'
|
||||
Me.lblQuickFilter.AutoSize = True
|
||||
Me.lblQuickFilter.Location = New System.Drawing.Point(12, 137)
|
||||
Me.lblQuickFilter.Name = "lblQuickFilter"
|
||||
Me.lblQuickFilter.Size = New System.Drawing.Size(63, 13)
|
||||
Me.lblQuickFilter.TabIndex = 1
|
||||
Me.lblQuickFilter.Text = "Quick Filter:"
|
||||
'
|
||||
'frmGameManager
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(784, 561)
|
||||
Me.Controls.Add(Me.lblQuickFilter)
|
||||
Me.Controls.Add(Me.txtQuickFilter)
|
||||
Me.Controls.Add(Me.btnExport)
|
||||
Me.Controls.Add(Me.btnImport)
|
||||
Me.Controls.Add(Me.grpFilter)
|
||||
Me.Controls.Add(Me.btnTags)
|
||||
Me.Controls.Add(Me.chkEnabled)
|
||||
@@ -719,6 +806,7 @@ Partial Class frmGameManager
|
||||
Me.grpStats.PerformLayout()
|
||||
Me.grpFilter.ResumeLayout(False)
|
||||
Me.grpFilter.PerformLayout()
|
||||
Me.cmsImport.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
@@ -742,13 +830,11 @@ Partial Class frmGameManager
|
||||
Friend WithEvents txtFileType As System.Windows.Forms.TextBox
|
||||
Friend WithEvents btnSavePathBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents btnProcessBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents lblExclude As System.Windows.Forms.Label
|
||||
Friend WithEvents lblFileType As System.Windows.Forms.Label
|
||||
Friend WithEvents btnSave As System.Windows.Forms.Button
|
||||
Friend WithEvents btnAppPathBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents lblGamePath As System.Windows.Forms.Label
|
||||
Friend WithEvents txtAppPath As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||
Friend WithEvents lblIcon As System.Windows.Forms.Label
|
||||
Friend WithEvents pbIcon As System.Windows.Forms.PictureBox
|
||||
Friend WithEvents lblVersion As System.Windows.Forms.Label
|
||||
Friend WithEvents txtVersion As System.Windows.Forms.TextBox
|
||||
@@ -781,5 +867,16 @@ Partial Class frmGameManager
|
||||
Friend WithEvents btnOpenRestorePath As System.Windows.Forms.Button
|
||||
Friend WithEvents btnTags As System.Windows.Forms.Button
|
||||
Friend WithEvents lblTags As System.Windows.Forms.Label
|
||||
Friend WithEvents optTag As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optCustom As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents btnInclude As System.Windows.Forms.Button
|
||||
Friend WithEvents btnExclude As System.Windows.Forms.Button
|
||||
Friend WithEvents lblRestorePath As Label
|
||||
Friend WithEvents txtRestorePath As TextBox
|
||||
Friend WithEvents btnImport As System.Windows.Forms.Button
|
||||
Friend WithEvents btnExport As System.Windows.Forms.Button
|
||||
Friend WithEvents cmsImport As System.Windows.Forms.ContextMenuStrip
|
||||
Friend WithEvents cmsOfficial As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents cmsFile As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents txtQuickFilter As TextBox
|
||||
Friend WithEvents lblQuickFilter As Label
|
||||
End Class
|
||||
|
||||
@@ -117,4 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="cmsImport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
+451
-109
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmGameManager
|
||||
|
||||
@@ -16,6 +17,10 @@ Public Class frmGameManager
|
||||
Private oRemoteBackupData As SortedList
|
||||
Private bIsDirty As Boolean = False
|
||||
Private bIsLoading As Boolean = False
|
||||
Private oCurrentTagFilters As New List(Of clsTag)
|
||||
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
|
||||
@@ -30,7 +35,7 @@ Public Class frmGameManager
|
||||
|
||||
Property BackupFolder As String
|
||||
Get
|
||||
Return sBackupFolder & "\"
|
||||
Return sBackupFolder & Path.DirectorySeparatorChar
|
||||
End Get
|
||||
Set(value As String)
|
||||
sBackupFolder = value
|
||||
@@ -171,7 +176,7 @@ Public Class frmGameManager
|
||||
sFileName = BackupFolder & oBackupItem.FileName
|
||||
|
||||
'Rename Backup File
|
||||
sNewFileName = Path.GetDirectoryName(sFileName) & "\" & Path.GetFileName(sFileName).Replace(oOriginalApp.Name, oNewApp.Name)
|
||||
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(oOriginalApp.Name, oNewApp.Name)
|
||||
If File.Exists(sFileName) Then
|
||||
FileSystem.Rename(sFileName, sNewFileName)
|
||||
End If
|
||||
@@ -201,22 +206,27 @@ Public Class frmGameManager
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadData()
|
||||
Private Sub LoadData(Optional ByVal bRetainFilter As Boolean = True)
|
||||
Dim oRestoreData As New SortedList
|
||||
Dim oGame As clsGame
|
||||
Dim oBackup As clsBackup
|
||||
Dim frm As frmFilter
|
||||
Dim oFilters As New List(Of clsTag)
|
||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.Any
|
||||
|
||||
If optTag.Checked Then
|
||||
frm = New frmFilter
|
||||
frm.ShowDialog()
|
||||
oFilters = frm.Filters
|
||||
eCurrentFilter = frm.FilterType
|
||||
If optCustom.Checked Then
|
||||
If Not bRetainFilter Then
|
||||
frm = New frmFilter
|
||||
frm.ShowDialog()
|
||||
oCurrentTagFilters = frm.TagFilters
|
||||
oCurrentStringFilters = frm.StringFilters
|
||||
eCurrentFilter = frm.FilterType
|
||||
End If
|
||||
Else
|
||||
oCurrentTagFilters.Clear()
|
||||
oCurrentStringFilters.Clear()
|
||||
eCurrentFilter = frmFilter.eFilterType.NoFilter
|
||||
End If
|
||||
|
||||
AppData = mgrMonitorList.ReadFilteredList(oFilters, eCurrentFilter)
|
||||
AppData = mgrMonitorList.ReadFilteredList(oCurrentTagFilters, oCurrentStringFilters, eCurrentFilter)
|
||||
|
||||
If optPendingRestores.Checked Then
|
||||
oRestoreData = mgrRestore.CompareManifests
|
||||
@@ -256,7 +266,7 @@ Public Class frmGameManager
|
||||
Next
|
||||
End If
|
||||
|
||||
lstGames.Items.Clear()
|
||||
lstGames.DataSource = Nothing
|
||||
FormatAndFillList()
|
||||
End Sub
|
||||
|
||||
@@ -271,8 +281,8 @@ Public Class frmGameManager
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFileBrowser("Choose exe file that starts the application", "exe", _
|
||||
"Executable", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFileBrowser(frmGameManager_ChooseExe, "exe", _
|
||||
frmGameManager_Executable, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then
|
||||
txtAppPath.Text = Path.GetDirectoryName(sNewPath)
|
||||
@@ -292,7 +302,7 @@ Public Class frmGameManager
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose the location of application's exe file:", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmGameManager_ChooseExePath, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtAppPath.Text = sNewPath
|
||||
End Sub
|
||||
@@ -308,7 +318,7 @@ Public Class frmGameManager
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose the application save folder:", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmGameManager_ChooseSaveFolder, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then
|
||||
txtSavePath.Text = sNewPath
|
||||
@@ -327,8 +337,14 @@ Public Class frmGameManager
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFileBrowser("Choose a custom icon for the application", "ico", _
|
||||
"Icon", sDefaultFolder, False)
|
||||
'Unix Handler
|
||||
If Not mgrCommon.IsUnix Then
|
||||
sNewPath = mgrCommon.OpenFileBrowser(frmGameManager_ChooseCustomIcon, "ico", _
|
||||
frmGameManager_Icon, sDefaultFolder, False)
|
||||
Else
|
||||
sNewPath = mgrCommon.OpenFileBrowser(frmGameManager_ChooseCustomIcon, "png", _
|
||||
"PNG", sDefaultFolder, False)
|
||||
End If
|
||||
|
||||
If sNewPath <> String.Empty Then
|
||||
txtIcon.Text = sNewPath
|
||||
@@ -341,7 +357,7 @@ Public Class frmGameManager
|
||||
Private Function HandleDirty() As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
|
||||
oResult = MsgBox("There are unsaved changes on this form. Do you want to save?", MsgBoxStyle.YesNoCancel, "Game Backup Monitor")
|
||||
oResult = mgrCommon.ShowMessage(App_ConfirmDirty, MsgBoxStyle.YesNoCancel)
|
||||
|
||||
Select Case oResult
|
||||
Case MsgBoxResult.Yes
|
||||
@@ -361,29 +377,93 @@ Public Class frmGameManager
|
||||
|
||||
Dim oApp As clsGame
|
||||
Dim oData As KeyValuePair(Of String, String)
|
||||
|
||||
lstGames.ValueMember = "Key"
|
||||
lstGames.DisplayMember = "Value"
|
||||
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)
|
||||
lstGames.Items.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)
|
||||
|
||||
lstGames.BeginUpdate()
|
||||
lstGames.DataSource = oList
|
||||
lstGames.ValueMember = "Key"
|
||||
lstGames.DisplayMember = "Value"
|
||||
lstGames.EndUpdate()
|
||||
lstGames.ClearSelected()
|
||||
IsLoading = False
|
||||
End Sub
|
||||
|
||||
Private Sub OpenBackupFile()
|
||||
Dim sFileName As String
|
||||
Dim oProcessStartInfo As ProcessStartInfo
|
||||
|
||||
sFileName = BackupFolder & CurrentBackupItem.FileName
|
||||
|
||||
If File.Exists(sFileName) Then
|
||||
Process.Start("explorer.exe", "/select," & sFileName)
|
||||
oProcessStartInfo = New ProcessStartInfo
|
||||
oProcessStartInfo.FileName = sFileName
|
||||
oProcessStartInfo.UseShellExecute = True
|
||||
oProcessStartInfo.Verb = "open"
|
||||
Process.Start(oProcessStartInfo)
|
||||
Else
|
||||
MsgBox("The backup file does not exist.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoBackupExists, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateBuilderButtonLabel(ByVal sBuilderString As String, ByVal sLabel As String, ByVal btn As Button, ByVal bDirty As Boolean)
|
||||
Dim iCount As Integer = sBuilderString.Split(":").Length
|
||||
|
||||
If sBuilderString <> String.Empty And iCount > 0 Then
|
||||
btn.Text = sLabel & " " & mgrCommon.FormatString(frmGameManager_ItemsExist, iCount)
|
||||
Else
|
||||
btn.Text = sLabel & " " & frmGameManager_Items
|
||||
End If
|
||||
|
||||
If bDirty Then
|
||||
btn.Font = New Font(FontFamily.GenericSansSerif, 8.25, FontStyle.Bold)
|
||||
Else
|
||||
btn.Font = New Font(FontFamily.GenericSansSerif, 8.25, FontStyle.Regular)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function GetBuilderRoot() As String
|
||||
Dim sRoot As String = String.Empty
|
||||
|
||||
If Path.IsPathRooted(txtSavePath.Text) Then
|
||||
If Directory.Exists(txtSavePath.Text) Then
|
||||
sRoot = txtSavePath.Text
|
||||
End If
|
||||
Else
|
||||
If txtAppPath.Text <> String.Empty Then
|
||||
If Directory.Exists(txtAppPath.Text & Path.DirectorySeparatorChar & txtSavePath.Text) Then
|
||||
sRoot = txtAppPath.Text & Path.DirectorySeparatorChar & txtSavePath.Text
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Return sRoot
|
||||
End Function
|
||||
|
||||
Private Sub OpenBuilder(ByVal sFormText As String, ByRef txtBox As TextBox)
|
||||
Dim frm As New frmIncludeExclude
|
||||
frm.FormName = sFormText
|
||||
frm.BuilderString = txtBox.Text
|
||||
frm.RootFolder = GetBuilderRoot()
|
||||
|
||||
frm.ShowDialog()
|
||||
|
||||
txtBox.Text = frm.BuilderString
|
||||
End Sub
|
||||
|
||||
Private Function FindRestorePath() As Boolean
|
||||
@@ -393,14 +473,14 @@ Public Class frmGameManager
|
||||
|
||||
If Not CurrentBackupItem.AbsolutePath Then
|
||||
If CurrentGame.ProcessPath <> String.Empty Then
|
||||
CurrentBackupItem.RelativeRestorePath = CurrentGame.ProcessPath & "\" & CurrentBackupItem.RestorePath
|
||||
CurrentBackupItem.RelativeRestorePath = CurrentGame.ProcessPath & Path.DirectorySeparatorChar & CurrentBackupItem.RestorePath
|
||||
Else
|
||||
sProcess = CurrentGame.TrueProcess
|
||||
If CurrentGame.Duplicate = True Or CurrentGame.ProcessName.Contains("dosbox") Then bNoAuto = True
|
||||
sRestorePath = mgrPath.ProcessPathSearch(CurrentBackupItem.Name, sProcess, CurrentBackupItem.Name & " uses a relative path and the game path has not been set.", bNoAuto)
|
||||
If mgrCommon.IsProcessNotSearchable(CurrentGame) Then bNoAuto = True
|
||||
sRestorePath = mgrPath.ProcessPathSearch(CurrentBackupItem.Name, sProcess, mgrCommon.FormatString(frmGameManager_ErrorPathNotSet, CurrentBackupItem.Name), bNoAuto)
|
||||
|
||||
If sRestorePath <> String.Empty Then
|
||||
CurrentBackupItem.RelativeRestorePath = sRestorePath & "\" & CurrentBackupItem.RestorePath
|
||||
CurrentBackupItem.RelativeRestorePath = sRestorePath & Path.DirectorySeparatorChar & CurrentBackupItem.RestorePath
|
||||
txtAppPath.Text = sRestorePath
|
||||
Else
|
||||
Return False
|
||||
@@ -413,21 +493,25 @@ Public Class frmGameManager
|
||||
|
||||
Private Sub OpenRestorePath()
|
||||
Dim sPath As String = String.Empty
|
||||
Dim oProcessStartInfo As ProcessStartInfo
|
||||
|
||||
If CurrentBackupItem.AbsolutePath Then
|
||||
sPath = CurrentBackupItem.RestorePath
|
||||
Else
|
||||
If FindRestorePath() Then
|
||||
sPath = CurrentBackupItem.RelativeRestorePath
|
||||
sPath = CurrentBackupItem.RestorePath
|
||||
Else
|
||||
If FindRestorePath() Then
|
||||
sPath = CurrentBackupItem.RelativeRestorePath
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If Directory.Exists(sPath) Then
|
||||
Process.Start("explorer.exe", sPath)
|
||||
oProcessStartInfo = New ProcessStartInfo
|
||||
oProcessStartInfo.FileName = sPath
|
||||
oProcessStartInfo.UseShellExecute = True
|
||||
oProcessStartInfo.Verb = "open"
|
||||
Process.Start(oProcessStartInfo)
|
||||
Else
|
||||
MsgBox("The restore path does not exist.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoRestorePathExists, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub OpenTags()
|
||||
@@ -443,18 +527,27 @@ Public Class frmGameManager
|
||||
frm.IDList = sMonitorIDs
|
||||
frm.GameName = CurrentGame.Name
|
||||
frm.ShowDialog()
|
||||
FillTags(CurrentGame.ID)
|
||||
|
||||
'Only update visible tags if one item is selected
|
||||
If lstGames.SelectedItems.Count = 1 Then FillTags(CurrentGame.ID)
|
||||
|
||||
'If a tag filter is enabled, reload list to reflect changes
|
||||
If optCustom.Checked Then
|
||||
LoadData()
|
||||
End If
|
||||
|
||||
'If the selected game(s) no longer match the filter, disable the form
|
||||
If lstGames.SelectedIndex = -1 Then eCurrentMode = eModes.Disabled
|
||||
ModeChange()
|
||||
End Sub
|
||||
|
||||
Private Sub GetBackupInfo(ByVal oApp As clsGame)
|
||||
Dim oBackupInfo As clsBackup
|
||||
Dim sFileName As String
|
||||
Dim oFileInfo As FileInfo
|
||||
Dim dFileSize As Double
|
||||
|
||||
If oRemoteBackupData.Contains(oApp.Name) Then
|
||||
CurrentBackupItem = DirectCast(oRemoteBackupData(oApp.Name), clsBackup)
|
||||
txtCurrentBackup.Text = CurrentBackupItem.DateUpdated & " by " & CurrentBackupItem.UpdatedBy
|
||||
txtCurrentBackup.Text = mgrCommon.FormatString(frmGameManager_BackupTimeAndName, New String() {CurrentBackupItem.DateUpdated, CurrentBackupItem.UpdatedBy})
|
||||
sFileName = BackupFolder & CurrentBackupItem.FileName
|
||||
|
||||
btnOpenBackupFile.Enabled = True
|
||||
@@ -463,19 +556,17 @@ Public Class frmGameManager
|
||||
btnDeleteBackup.Enabled = True
|
||||
|
||||
If File.Exists(sFileName) Then
|
||||
oFileInfo = New FileInfo(sFileName)
|
||||
dFileSize = oFileInfo.Length
|
||||
If dFileSize > 1048576 Then
|
||||
txtFileSize.Text = Math.Round(dFileSize / 1048576, 2) & " MB"
|
||||
Else
|
||||
txtFileSize.Text = Math.Round(dFileSize / 1024, 2) & " KB"
|
||||
End If
|
||||
txtFileSize.Text = mgrCommon.GetFileSize(sFileName)
|
||||
Else
|
||||
txtFileSize.Text = "Backup file was not found!"
|
||||
txtFileSize.Text = frmGameManager_ErrorNoBackupExists
|
||||
End If
|
||||
|
||||
mgrRestore.DoPathOverride(CurrentBackupItem, oApp)
|
||||
txtRestorePath.Text = CurrentBackupItem.RestorePath
|
||||
Else
|
||||
txtCurrentBackup.Text = "Never"
|
||||
txtCurrentBackup.Text = frmGameManager_Never
|
||||
txtFileSize.Text = String.Empty
|
||||
txtRestorePath.Text = String.Empty
|
||||
btnOpenBackupFile.Enabled = False
|
||||
btnOpenRestorePath.Enabled = False
|
||||
btnRestore.Enabled = False
|
||||
@@ -484,22 +575,25 @@ Public Class frmGameManager
|
||||
|
||||
If oLocalBackupData.Contains(oApp.Name) Then
|
||||
oBackupInfo = DirectCast(oLocalBackupData(oApp.Name), clsBackup)
|
||||
txtLocalBackup.Text = oBackupInfo.DateUpdated & " by " & oBackupInfo.UpdatedBy
|
||||
txtLocalBackup.Text = mgrCommon.FormatString(frmGameManager_BackupTimeAndName, New String() {oBackupInfo.DateUpdated, oBackupInfo.UpdatedBy})
|
||||
Else
|
||||
txtLocalBackup.Text = "Never"
|
||||
txtLocalBackup.Text = frmGameManager_Never
|
||||
End If
|
||||
|
||||
If txtCurrentBackup.Text = "Never" And txtLocalBackup.Text = "Never" Then
|
||||
If txtCurrentBackup.Text = frmGameManager_Never And txtLocalBackup.Text = frmGameManager_Never Then
|
||||
lblSync.Visible = False
|
||||
btnMarkAsRestored.Enabled = False
|
||||
ElseIf txtCurrentBackup.Text = frmGameManager_Never And txtLocalBackup.Text <> frmGameManager_Never Then
|
||||
lblSync.Visible = False
|
||||
btnMarkAsRestored.Enabled = False
|
||||
ElseIf txtCurrentBackup.Text <> txtLocalBackup.Text Then
|
||||
lblSync.ForeColor = Color.Red
|
||||
lblSync.Text = "Out of Sync!"
|
||||
lblSync.Text = frmGameManager_OutofSync
|
||||
lblSync.Visible = True
|
||||
btnMarkAsRestored.Enabled = True
|
||||
Else
|
||||
lblSync.ForeColor = Color.Green
|
||||
lblSync.Text = "Up to Date!"
|
||||
lblSync.Text = frmGameManager_UpToDate
|
||||
lblSync.Visible = True
|
||||
btnMarkAsRestored.Enabled = False
|
||||
End If
|
||||
@@ -510,16 +604,15 @@ Public Class frmGameManager
|
||||
Dim oDir As DirectoryInfo
|
||||
Dim sSubDir As String
|
||||
|
||||
If MsgBox("This will delete the backup file and all records of this backup. This cannot be undone. " & vbCrLf & vbCrLf & "Do you want to remove the data for " _
|
||||
& CurrentBackupItem.Name & "?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmBackupDelete, CurrentBackupItem.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrManifest.DoManifestDelete(CurrentBackupItem, mgrSQLite.Database.Local)
|
||||
mgrManifest.DoManifestDelete(CurrentBackupItem, mgrSQLite.Database.Remote)
|
||||
|
||||
'Delete referenced backup file from the backup folder
|
||||
If File.Exists(BackupFolder & CurrentBackupItem.FileName) Then File.Delete(BackupFolder & CurrentBackupItem.FileName)
|
||||
mgrCommon.DeleteFile(BackupFolder & CurrentBackupItem.FileName)
|
||||
|
||||
'Check if using backup sub-directories (Probably not the best way to check for this)
|
||||
If CurrentBackupItem.FileName.StartsWith(CurrentBackupItem.Name & "\") Then
|
||||
If CurrentBackupItem.FileName.StartsWith(CurrentBackupItem.Name & Path.DirectorySeparatorChar) Then
|
||||
'Build sub-dir backup path
|
||||
sSubDir = BackupFolder & CurrentBackupItem.Name
|
||||
|
||||
@@ -528,14 +621,12 @@ Public Class frmGameManager
|
||||
oDir = New DirectoryInfo(sSubDir)
|
||||
If oDir.GetDirectories.Length > 0 Or oDir.GetFiles.Length > 0 Then
|
||||
'Confirm
|
||||
If MsgBox("The backup folder " & sSubDir & " still contains " & oDir.GetDirectories.Length & " directories and " & _
|
||||
oDir.GetFiles.Length & " files." & vbCrLf & vbCrLf & "Do you want to delete the contents and remove the sub-folder for this game?", _
|
||||
MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If Directory.Exists(sSubDir) Then Directory.Delete(sSubDir, True)
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmBackupFolderDelete, New String() {sSubDir, oDir.GetDirectories.Length, oDir.GetFiles.Length}, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
If Directory.Exists(sSubDir) Then mgrCommon.DeleteDirectory(sSubDir, True)
|
||||
End If
|
||||
Else
|
||||
'Folder is empty, delete the empty sub-folder
|
||||
If Directory.Exists(sSubDir) Then Directory.Delete(sSubDir)
|
||||
If Directory.Exists(sSubDir) Then mgrCommon.DeleteDirectory(sSubDir)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
@@ -570,6 +661,10 @@ Public Class frmGameManager
|
||||
chkEnabled.Checked = oApp.Enabled
|
||||
chkMonitorOnly.Checked = oApp.MonitorOnly
|
||||
|
||||
'Update Buttons
|
||||
UpdateBuilderButtonLabel(oApp.FileType, frmGameManager_IncludeShortcut, btnInclude, False)
|
||||
UpdateBuilderButtonLabel(oApp.ExcludeList, frmGameManager_ExcludeShortcut, btnExclude, False)
|
||||
|
||||
'Extra
|
||||
txtAppPath.Text = oApp.ProcessPath
|
||||
txtCompany.Text = oApp.Company
|
||||
@@ -582,7 +677,7 @@ Public Class frmGameManager
|
||||
If IO.File.Exists(oApp.Icon) Then
|
||||
pbIcon.Image = Image.FromFile(oApp.Icon)
|
||||
Else
|
||||
pbIcon.Image = My.Resources.Unknown
|
||||
pbIcon.Image = Icon_Unknown
|
||||
End If
|
||||
|
||||
'Stats
|
||||
@@ -634,6 +729,9 @@ Public Class frmGameManager
|
||||
AddHandler DirectCast(ctl, NumericUpDown).ValueChanged, AddressOf DirtyCheck_ValueChanged
|
||||
End If
|
||||
Next
|
||||
|
||||
'Exemptions
|
||||
RemoveHandler txtRestorePath.TextChanged, AddressOf DirtyCheck_ValueChanged
|
||||
End Sub
|
||||
|
||||
Private Sub AssignDirtyHandlersMisc()
|
||||
@@ -660,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
|
||||
@@ -667,7 +767,7 @@ Public Class frmGameManager
|
||||
WipeControls(grpConfig.Controls)
|
||||
WipeControls(grpExtra.Controls)
|
||||
WipeControls(grpStats.Controls)
|
||||
pbIcon.Image = My.Resources.Unknown
|
||||
pbIcon.Image = Icon_Unknown
|
||||
chkEnabled.Enabled = True
|
||||
chkMonitorOnly.Enabled = True
|
||||
btnSave.Enabled = True
|
||||
@@ -685,9 +785,15 @@ Public Class frmGameManager
|
||||
chkMonitorOnly.Checked = False
|
||||
btnTags.Enabled = False
|
||||
lblTags.Visible = False
|
||||
btnInclude.Text = frmGameManager_btnInclude
|
||||
btnExclude.Text = frmGameManager_btnExclude
|
||||
btnImport.Enabled = False
|
||||
btnExport.Enabled = False
|
||||
Case eModes.Edit
|
||||
grpFilter.Enabled = False
|
||||
lstGames.Enabled = False
|
||||
lblQuickFilter.Enabled = False
|
||||
txtQuickFilter.Enabled = False
|
||||
grpConfig.Enabled = True
|
||||
chkEnabled.Enabled = True
|
||||
chkMonitorOnly.Enabled = True
|
||||
@@ -705,9 +811,13 @@ Public Class frmGameManager
|
||||
btnOpenRestorePath.Enabled = False
|
||||
btnTags.Enabled = True
|
||||
lblTags.Visible = True
|
||||
btnImport.Enabled = False
|
||||
btnExport.Enabled = False
|
||||
Case eModes.View
|
||||
grpFilter.Enabled = True
|
||||
lstGames.Enabled = True
|
||||
lblQuickFilter.Enabled = True
|
||||
txtQuickFilter.Enabled = True
|
||||
grpConfig.Enabled = True
|
||||
chkEnabled.Enabled = True
|
||||
chkMonitorOnly.Enabled = True
|
||||
@@ -720,9 +830,13 @@ Public Class frmGameManager
|
||||
btnBackup.Enabled = True
|
||||
btnTags.Enabled = True
|
||||
lblTags.Visible = True
|
||||
btnImport.Enabled = True
|
||||
btnExport.Enabled = True
|
||||
Case eModes.ViewTemp
|
||||
grpFilter.Enabled = True
|
||||
lstGames.Enabled = True
|
||||
lblQuickFilter.Enabled = True
|
||||
txtQuickFilter.Enabled = True
|
||||
grpConfig.Enabled = False
|
||||
chkEnabled.Enabled = False
|
||||
chkMonitorOnly.Enabled = False
|
||||
@@ -733,16 +847,22 @@ Public Class frmGameManager
|
||||
btnAdd.Enabled = True
|
||||
btnDelete.Enabled = False
|
||||
btnBackup.Enabled = False
|
||||
btnOpenRestorePath.Enabled = False
|
||||
btnTags.Enabled = False
|
||||
lblTags.Visible = False
|
||||
btnInclude.Text = frmGameManager_btnInclude
|
||||
btnExclude.Text = frmGameManager_btnExclude
|
||||
btnImport.Enabled = True
|
||||
btnExport.Enabled = True
|
||||
Case eModes.Disabled
|
||||
grpFilter.Enabled = True
|
||||
lstGames.Enabled = True
|
||||
lblQuickFilter.Enabled = True
|
||||
txtQuickFilter.Enabled = True
|
||||
WipeControls(grpConfig.Controls)
|
||||
WipeControls(grpExtra.Controls)
|
||||
WipeControls(grpStats.Controls)
|
||||
pbIcon.Image = My.Resources.Unknown
|
||||
lblTags.Text = String.Empty
|
||||
pbIcon.Image = Icon_Unknown
|
||||
lblSync.Visible = False
|
||||
btnSave.Enabled = False
|
||||
btnCancel.Enabled = False
|
||||
@@ -757,12 +877,19 @@ Public Class frmGameManager
|
||||
btnRestore.Enabled = False
|
||||
btnMarkAsRestored.Enabled = False
|
||||
btnTags.Enabled = False
|
||||
lblTags.Visible = False
|
||||
btnInclude.Text = frmGameManager_btnInclude
|
||||
btnExclude.Text = frmGameManager_btnExclude
|
||||
btnImport.Enabled = True
|
||||
btnExport.Enabled = True
|
||||
Case eModes.MultiSelect
|
||||
lstGames.Enabled = True
|
||||
lblQuickFilter.Enabled = False
|
||||
txtQuickFilter.Enabled = False
|
||||
WipeControls(grpConfig.Controls)
|
||||
WipeControls(grpExtra.Controls)
|
||||
WipeControls(grpStats.Controls)
|
||||
pbIcon.Image = My.Resources.Unknown
|
||||
pbIcon.Image = Icon_Unknown
|
||||
lblSync.Visible = False
|
||||
btnSave.Enabled = True
|
||||
btnCancel.Enabled = False
|
||||
@@ -779,11 +906,61 @@ Public Class frmGameManager
|
||||
btnRestore.Enabled = True
|
||||
btnMarkAsRestored.Enabled = True
|
||||
btnTags.Enabled = True
|
||||
lblTags.Visible = False
|
||||
btnImport.Enabled = True
|
||||
btnExport.Enabled = True
|
||||
End Select
|
||||
|
||||
lstGames.Focus()
|
||||
|
||||
IsLoading = False
|
||||
End Sub
|
||||
|
||||
Private Sub FolderSaveModeChange()
|
||||
If chkFolderSave.Checked Then
|
||||
btnInclude.Enabled = False
|
||||
If txtFileType.Text <> String.Empty Then
|
||||
txtFileType.Text = String.Empty
|
||||
UpdateBuilderButtonLabel(txtFileType.Text, frmGameManager_IncludeShortcut, btnInclude, False)
|
||||
End If
|
||||
Else
|
||||
btnInclude.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub MonitorOnlyModeChange()
|
||||
If chkMonitorOnly.Checked Then
|
||||
txtSavePath.Text = String.Empty
|
||||
chkFolderSave.Checked = True
|
||||
chkTimeStamp.Checked = False
|
||||
|
||||
If txtFileType.Text <> String.Empty Then
|
||||
txtFileType.Text = String.Empty
|
||||
UpdateBuilderButtonLabel(txtFileType.Text, frmGameManager_IncludeShortcut, btnInclude, False)
|
||||
End If
|
||||
If txtExclude.Text <> String.Empty Then
|
||||
txtExclude.Text = String.Empty
|
||||
UpdateBuilderButtonLabel(txtExclude.Text, frmGameManager_ExcludeShortcut, btnExclude, False)
|
||||
End If
|
||||
|
||||
lblSavePath.Enabled = False
|
||||
btnSavePathBrowse.Enabled = False
|
||||
txtSavePath.Enabled = False
|
||||
chkFolderSave.Enabled = False
|
||||
chkTimeStamp.Enabled = False
|
||||
btnInclude.Enabled = False
|
||||
btnExclude.Enabled = False
|
||||
Else
|
||||
lblSavePath.Enabled = True
|
||||
btnSavePathBrowse.Enabled = True
|
||||
txtSavePath.Enabled = True
|
||||
chkFolderSave.Enabled = True
|
||||
chkTimeStamp.Enabled = True
|
||||
btnInclude.Enabled = True
|
||||
btnExclude.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub EditApp()
|
||||
eCurrentMode = eModes.Edit
|
||||
ModeChange()
|
||||
@@ -875,13 +1052,11 @@ Public Class frmGameManager
|
||||
End If
|
||||
Case eModes.MultiSelect
|
||||
Dim sMonitorIDs As New List(Of String)
|
||||
Dim sChanges As String
|
||||
For Each oData In lstGames.SelectedItems
|
||||
sMonitorIDs.Add(AppData(oData.Key))
|
||||
sMonitorIDs.Add(oData.Key)
|
||||
Next
|
||||
|
||||
sChanges = vbCrLf & vbCrLf & "Monitor this game: " & mgrCommon.BooleanYesNo(oApp.Enabled) & vbCrLf & "Monitor only (No backup): " & mgrCommon.BooleanYesNo(oApp.MonitorOnly)
|
||||
If MsgBox("Are you sure you want to save the following changes to " & sMonitorIDs.Count & " selected games?" & sChanges, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmMultiSave, New String() {sMonitorIDs.Count, mgrCommon.BooleanYesNo(oApp.Enabled), mgrCommon.BooleanYesNo(oApp.MonitorOnly)}, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
bSuccess = True
|
||||
mgrMonitorList.DoListUpdateMulti(sMonitorIDs, oApp)
|
||||
eCurrentMode = eModes.Disabled
|
||||
@@ -889,13 +1064,10 @@ Public Class frmGameManager
|
||||
End Select
|
||||
|
||||
If bSuccess Then
|
||||
Dim iSelected As Integer
|
||||
IsDirty = False
|
||||
LoadData()
|
||||
iSelected = lstGames.Items.IndexOf(New KeyValuePair(Of String, String)(oApp.ID, oApp.Name))
|
||||
If iSelected = -1 Then eCurrentMode = eModes.Disabled
|
||||
ModeChange()
|
||||
If eCurrentMode = eModes.View Then lstGames.SelectedIndex = iSelected
|
||||
If eCurrentMode = eModes.View Then lstGames.SelectedValue = oApp.ID
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -907,7 +1079,7 @@ Public Class frmGameManager
|
||||
oData = lstGames.SelectedItems(0)
|
||||
oApp = DirectCast(AppData(oData.Key), clsGame)
|
||||
|
||||
If MsgBox("Are you sure you want to delete " & oApp.Name & "? This cannot be undone." & vbCrLf & vbCrLf & "This will not delete any backup files that already exist for this game.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmGameDelete, oApp.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrMonitorList.DoListDelete(oApp.ID)
|
||||
LoadData()
|
||||
eCurrentMode = eModes.Disabled
|
||||
@@ -921,7 +1093,7 @@ Public Class frmGameManager
|
||||
sMonitorIDs.Add(oApp.ID)
|
||||
Next
|
||||
|
||||
If MsgBox("Are you sure you want to delete the " & sMonitorIDs.Count & " selected games? This cannot be undone.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmMultiGameDelete, sMonitorIDs.Count, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrMonitorList.DoListDeleteMulti(sMonitorIDs)
|
||||
LoadData()
|
||||
eCurrentMode = eModes.Disabled
|
||||
@@ -931,31 +1103,39 @@ Public Class frmGameManager
|
||||
End Sub
|
||||
|
||||
Private Sub SwitchApp()
|
||||
If lstGames.SelectedItems.Count = 1 Then
|
||||
eCurrentMode = eModes.View
|
||||
FillData()
|
||||
ModeChange()
|
||||
ElseIf lstGames.SelectedItems.Count > 1 Then
|
||||
eCurrentMode = eModes.MultiSelect
|
||||
ModeChange()
|
||||
If Not bIsLoading Then
|
||||
If lstGames.SelectedItems.Count = 1 Then
|
||||
eCurrentMode = eModes.View
|
||||
FillData()
|
||||
ModeChange()
|
||||
ElseIf lstGames.SelectedItems.Count > 1 Then
|
||||
eCurrentMode = eModes.MultiSelect
|
||||
ModeChange()
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function CoreValidatation(ByVal oApp As clsGame) As Boolean
|
||||
If txtName.Text = String.Empty Then
|
||||
MsgBox("You must enter a valid application name.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorValidName, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If txtProcess.Text = String.Empty Then
|
||||
MsgBox("You must enter a valid process name.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorValidProcess, MsgBoxStyle.Exclamation)
|
||||
txtProcess.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If chkFolderSave.Checked = False And txtFileType.Text = String.Empty Then
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoItems, MsgBoxStyle.Exclamation)
|
||||
btnInclude.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If mgrMonitorList.DoDuplicateListCheck(oApp.Name, oApp.ProcessName, , oApp.ID) Then
|
||||
MsgBox("A game with this exact name and process already exists.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorGameDupe, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -978,7 +1158,7 @@ Public Class frmGameManager
|
||||
Next
|
||||
|
||||
If oMarkList.Count = 1 Then
|
||||
If MsgBox("Do you want to mark " & oMarkList(0).Name & " as restored? This cannot be undone.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmMark, oMarkList(0).Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
bWasUpdated = True
|
||||
If mgrManifest.DoManifestCheck(oMarkList(0).Name, mgrSQLite.Database.Local) Then
|
||||
mgrManifest.DoManifestUpdate(oMarkList(0), mgrSQLite.Database.Local)
|
||||
@@ -987,7 +1167,7 @@ Public Class frmGameManager
|
||||
End If
|
||||
End If
|
||||
ElseIf oMarkList.Count > 1 Then
|
||||
If MsgBox("Do you want to mark " & oMarkList.Count & " games as restored? This cannot be undone.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmMultiMark, oMarkList.Count, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
bWasUpdated = True
|
||||
For Each oGameBackup In oMarkList
|
||||
If mgrManifest.DoManifestCheck(oGameBackup.Name, mgrSQLite.Database.Local) Then
|
||||
@@ -998,7 +1178,7 @@ Public Class frmGameManager
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
MsgBox("The selected game(s) have no backup data.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoBackupData, MsgBoxStyle.Information)
|
||||
End If
|
||||
|
||||
'Don't bother updating unless we actually did something
|
||||
@@ -1022,27 +1202,34 @@ Public Class frmGameManager
|
||||
Dim oData As KeyValuePair(Of String, String)
|
||||
Dim sMsg As String = String.Empty
|
||||
Dim oGame As clsGame
|
||||
Dim bDoBackup As Boolean = False
|
||||
|
||||
If lstGames.SelectedItems.Count > 0 Then
|
||||
BackupList.Clear()
|
||||
|
||||
For Each oData In lstGames.SelectedItems
|
||||
oGame = DirectCast(AppData(oData.Key), clsGame)
|
||||
BackupList.Add(oGame)
|
||||
'Filter out any games set to monitor only
|
||||
If Not oGame.MonitorOnly Then BackupList.Add(oGame)
|
||||
Next
|
||||
|
||||
If BackupList.Count = 1 Then
|
||||
sMsg = "Are you sure you want to run a backup for " & BackupList(0).Name & "? This will close the form."
|
||||
bDoBackup = True
|
||||
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmBackup, BackupList(0).Name)
|
||||
ElseIf BackupList.Count > 1 Then
|
||||
sMsg = "Are you sure you want to run a backup for " & BackupList.Count & " games? This will close the form."
|
||||
bDoBackup = True
|
||||
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmMultiBackup, BackupList.Count)
|
||||
Else
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoValidBackup, MsgBoxStyle.Information)
|
||||
End If
|
||||
|
||||
If MsgBox(sMsg, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
TriggerBackup = True
|
||||
Me.Close()
|
||||
If bDoBackup Then
|
||||
If mgrCommon.ShowMessage(sMsg, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
TriggerBackup = True
|
||||
Me.Close()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TriggerSelectedRestore()
|
||||
@@ -1057,27 +1244,27 @@ Public Class frmGameManager
|
||||
For Each oData In lstGames.SelectedItems
|
||||
If oRemoteBackupData.Contains(oData.Value) Then
|
||||
oGame = DirectCast(AppData(oData.Key), clsGame)
|
||||
RestoreList.Add(oGame)
|
||||
'Filter out any games set to monitor only
|
||||
If Not oGame.MonitorOnly Then RestoreList.Add(oGame)
|
||||
End If
|
||||
Next
|
||||
|
||||
If RestoreList.Count = 1 Then
|
||||
bDoRestore = True
|
||||
If Not mgrRestore.CheckManifest(RestoreList(0).Name) Then
|
||||
sMsg = RestoreList(0).Name & " is already up to date." & vbCrLf & vbCrLf & "Would you like to restore this backup anyway?"
|
||||
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmRestoreAnyway, RestoreList(0).Name)
|
||||
Else
|
||||
sMsg = "Are you sure you want to restore the backup for " & RestoreList(0).Name & "? This will close the form."
|
||||
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmRestore, RestoreList(0).Name)
|
||||
End If
|
||||
ElseIf RestoreList.Count > 1 Then
|
||||
bDoRestore = True
|
||||
sMsg = "Are you sure you want to restore the backups for " & RestoreList.Count & " games? This will close the form."
|
||||
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmMultiRestore, RestoreList.Count)
|
||||
Else
|
||||
MsgBox("The selected game(s) have no backup data.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmGameManager_ErrorNoBackupData, MsgBoxStyle.Information)
|
||||
End If
|
||||
|
||||
'We need this check in case a bunch of games with no backups are multi-selected
|
||||
If bDoRestore Then
|
||||
If MsgBox(sMsg, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(sMsg, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
TriggerRestore = True
|
||||
Me.Close()
|
||||
End If
|
||||
@@ -1085,7 +1272,107 @@ Public Class frmGameManager
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ImportGameListFile()
|
||||
Dim sLocation As String
|
||||
|
||||
sLocation = mgrCommon.OpenFileBrowser(frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False)
|
||||
|
||||
If sLocation <> String.Empty Then
|
||||
If mgrMonitorList.DoImport(sLocation) Then
|
||||
LoadData()
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub ExportGameList()
|
||||
Dim sLocation As String
|
||||
|
||||
sLocation = mgrCommon.SaveFileBrowser(frmGameManager_ChooseExportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), frmGameManager_DefaultExportFileName & " " & Date.Now.ToString("dd-MMM-yyyy"))
|
||||
|
||||
If sLocation <> String.Empty Then
|
||||
mgrMonitorList.ExportMonitorList(sLocation)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub ImportOfficialGameList()
|
||||
Dim sImportURL As String
|
||||
|
||||
If mgrCommon.IsUnix Then
|
||||
sImportURL = App_URLImportLinux
|
||||
Else
|
||||
sImportURL = App_URLImport
|
||||
End If
|
||||
|
||||
If mgrCommon.ShowMessage(frmGameManager_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
If mgrMonitorList.DoImport(sImportURL) Then
|
||||
LoadData()
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Name = frmGameManager_FormName
|
||||
|
||||
'Set Form text
|
||||
grpFilter.Text = frmGameManager_grpFilter
|
||||
grpConfig.Text = frmGameManager_grpConfig
|
||||
grpExtra.Text = frmGameManager_grpExtra
|
||||
grpStats.Text = frmGameManager_grpStats
|
||||
btnExport.Text = frmGameManager_btnExport
|
||||
btnImport.Text = frmGameManager_btnImport
|
||||
optCustom.Text = frmGameManager_optCustom
|
||||
optBackupData.Text = frmGameManager_optBackupData
|
||||
optPendingRestores.Text = frmGameManager_optPendingRestores
|
||||
optAllGames.Text = frmGameManager_optAllGames
|
||||
btnTags.Text = frmGameManager_btnTags
|
||||
chkEnabled.Text = frmGameManager_chkEnabled
|
||||
btnCancel.Text = frmGameManager_btnCancel
|
||||
chkMonitorOnly.Text = frmGameManager_chkMonitorOnly
|
||||
btnMarkAsRestored.Text = frmGameManager_btnMarkAsRestored
|
||||
btnRestore.Text = frmGameManager_btnRestore
|
||||
btnSave.Text = frmGameManager_btnSave
|
||||
lblRestorePath.Text = frmGameManager_lblRestorePath
|
||||
btnOpenRestorePath.Text = frmGameManager_btnOpenRestorePath
|
||||
btnOpenBackupFile.Text = frmGameManager_btnOpenBackupFile
|
||||
btnDeleteBackup.Text = frmGameManager_btnDeleteBackup
|
||||
lblFileSize.Text = frmGameManager_lblFileSize
|
||||
lblCurrentBackup.Text = frmGameManager_lblCurrentBackup
|
||||
lblLastBackup.Text = frmGameManager_lblLastBackup
|
||||
btnIconBrowse.Text = frmGameManager_btnIconBrowse
|
||||
lblVersion.Text = frmGameManager_lblVersion
|
||||
lblCompany.Text = frmGameManager_lblCompany
|
||||
lblIcon.Text = frmGameManager_lblIcon
|
||||
btnAppPathBrowse.Text = frmGameManager_btnAppPathBrowse
|
||||
lblGamePath.Text = frmGameManager_lblGamePath
|
||||
lblHours.Text = frmGameManager_lblHours
|
||||
btnExclude.Text = frmGameManager_btnExclude
|
||||
btnInclude.Text = frmGameManager_btnInclude
|
||||
btnSavePathBrowse.Text = frmGameManager_btnSavePathBrowse
|
||||
btnProcessBrowse.Text = frmGameManager_btnProcessBrowse
|
||||
lblSavePath.Text = frmGameManager_lblSavePath
|
||||
lblProcess.Text = frmGameManager_lblProcess
|
||||
lblName.Text = frmGameManager_lblName
|
||||
chkTimeStamp.Text = frmGameManager_chkTimeStamp
|
||||
chkFolderSave.Text = frmGameManager_chkFolderSave
|
||||
btnBackup.Text = frmGameManager_btnBackup
|
||||
btnClose.Text = frmGameManager_btnClose
|
||||
btnDelete.Text = frmGameManager_btnDelete
|
||||
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
|
||||
SetForm()
|
||||
|
||||
If DisableExternalFunctions Then
|
||||
btnBackup.Visible = False
|
||||
@@ -1109,6 +1396,9 @@ Public Class frmGameManager
|
||||
AssignDirtyHandlers(grpExtra.Controls)
|
||||
AssignDirtyHandlers(grpStats.Controls)
|
||||
AssignDirtyHandlersMisc()
|
||||
|
||||
LoadData(False)
|
||||
ModeChange()
|
||||
End Sub
|
||||
|
||||
Private Sub lstGames_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstGames.SelectedIndexChanged
|
||||
@@ -1192,12 +1482,64 @@ Public Class frmGameManager
|
||||
TriggerSelectedRestore()
|
||||
End Sub
|
||||
|
||||
Private Sub optGamesFilter_Click(sender As Object, e As EventArgs) Handles optPendingRestores.Click, optAllGames.Click, optBackupData.Click, optTag.Click
|
||||
Private Sub optGamesFilter_Click(sender As Object, e As EventArgs) Handles optPendingRestores.Click, optAllGames.Click, optBackupData.Click, optCustom.Click
|
||||
lstGames.ClearSelected()
|
||||
eCurrentMode = eModes.Disabled
|
||||
ModeChange()
|
||||
LoadData()
|
||||
LoadData(False)
|
||||
End Sub
|
||||
|
||||
Private Sub btnInclude_Click(sender As Object, e As EventArgs) Handles btnInclude.Click
|
||||
Dim sInclude As String = txtFileType.Text
|
||||
OpenBuilder(frmGameManager_Include, txtFileType)
|
||||
UpdateBuilderButtonLabel(txtFileType.Text, frmGameManager_IncludeShortcut, btnInclude, (sInclude <> txtFileType.Text))
|
||||
End Sub
|
||||
|
||||
Private Sub btnExclude_Click(sender As Object, e As EventArgs) Handles btnExclude.Click
|
||||
Dim sExclude As String = txtExclude.Text
|
||||
OpenBuilder(frmGameManager_Exclude, txtExclude)
|
||||
UpdateBuilderButtonLabel(txtExclude.Text, frmGameManager_ExcludeShortcut, btnExclude, (sExclude <> txtExclude.Text))
|
||||
End Sub
|
||||
|
||||
Private Sub chkFolderSave_CheckedChanged(sender As Object, e As EventArgs) Handles chkFolderSave.CheckedChanged
|
||||
FolderSaveModeChange()
|
||||
End Sub
|
||||
|
||||
Private Sub chkMonitorOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorOnly.CheckedChanged
|
||||
MonitorOnlyModeChange()
|
||||
End Sub
|
||||
|
||||
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
|
||||
cmsImport.Show(btnImport, New Drawing.Point(70, 11), ToolStripDropDownDirection.AboveRight)
|
||||
End Sub
|
||||
|
||||
Private Sub cmsOfficial_Click(sender As Object, e As EventArgs) Handles cmsOfficial.Click
|
||||
ImportOfficialGameList()
|
||||
End Sub
|
||||
|
||||
Private Sub cmsFile_Click(sender As Object, e As EventArgs) Handles cmsFile.Click
|
||||
ImportGameListFile()
|
||||
End Sub
|
||||
|
||||
Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
|
||||
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
|
||||
|
||||
Private Sub frmGameManager_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
||||
txtQuickFilter.Focus()
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+4
-2
@@ -39,6 +39,7 @@ Partial Class frmGameTags
|
||||
Me.lstTags.Name = "lstTags"
|
||||
Me.lstTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstTags.Size = New System.Drawing.Size(150, 199)
|
||||
Me.lstTags.Sorted = True
|
||||
Me.lstTags.TabIndex = 0
|
||||
'
|
||||
'lstGameTags
|
||||
@@ -48,6 +49,7 @@ Partial Class frmGameTags
|
||||
Me.lstGameTags.Name = "lstGameTags"
|
||||
Me.lstGameTags.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
|
||||
Me.lstGameTags.Size = New System.Drawing.Size(150, 199)
|
||||
Me.lstGameTags.Sorted = True
|
||||
Me.lstGameTags.TabIndex = 3
|
||||
'
|
||||
'btnAdd
|
||||
@@ -56,7 +58,7 @@ Partial Class frmGameTags
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnAdd.TabIndex = 1
|
||||
Me.btnAdd.Text = "> >"
|
||||
Me.btnAdd.Text = ">"
|
||||
Me.btnAdd.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnRemove
|
||||
@@ -65,7 +67,7 @@ Partial Class frmGameTags
|
||||
Me.btnRemove.Name = "btnRemove"
|
||||
Me.btnRemove.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnRemove.TabIndex = 2
|
||||
Me.btnRemove.Text = "< <"
|
||||
Me.btnRemove.Text = "<"
|
||||
Me.btnRemove.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblTags
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Public Class frmGameTags
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmGameTags
|
||||
|
||||
Dim sMonitorIDs As List(Of String)
|
||||
Dim sGameName As String = String.Empty
|
||||
@@ -160,11 +162,21 @@
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
If IDList.Count > 1 Then
|
||||
Me.Text = "Edit Tags for Multiple Games"
|
||||
Me.Text = frmGameTags_FormNameMulti
|
||||
Else
|
||||
Me.Text = "Edit Tags for " & GameName
|
||||
Me.Text = mgrCommon.FormatString(frmGameTags_FormNameSingle, GameName)
|
||||
End If
|
||||
|
||||
'Set Form Text
|
||||
btnOpenTags.Text = frmGameTags_btnOpenTags
|
||||
btnClose.Text = frmGameTags_btnClose
|
||||
lblGameTags.Text = frmGameTags_lblGameTags
|
||||
lblTags.Text = frmGameTags_lblTags
|
||||
btnRemove.Text = frmGameTags_btnRemove
|
||||
btnAdd.Text = frmGameTags_btnAdd
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
|
||||
Generated
+275
@@ -0,0 +1,275 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class frmIncludeExclude
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmIncludeExclude))
|
||||
Me.treFiles = New System.Windows.Forms.TreeView()
|
||||
Me.imgIcons = New System.Windows.Forms.ImageList(Me.components)
|
||||
Me.btnSave = New System.Windows.Forms.Button()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.txtRootFolder = New System.Windows.Forms.TextBox()
|
||||
Me.btnBrowse = New System.Windows.Forms.Button()
|
||||
Me.lstBuilder = New System.Windows.Forms.ListView()
|
||||
Me.cmsItems = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.cmsEdit = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.cmsRemove = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.cmsAdd = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.btnRemove = New System.Windows.Forms.Button()
|
||||
Me.btnAdd = New System.Windows.Forms.Button()
|
||||
Me.grpFileOptions = New System.Windows.Forms.GroupBox()
|
||||
Me.optFileTypes = New System.Windows.Forms.RadioButton()
|
||||
Me.optIndividualFiles = New System.Windows.Forms.RadioButton()
|
||||
Me.lblItems = New System.Windows.Forms.Label()
|
||||
Me.btnRawEdit = New System.Windows.Forms.Button()
|
||||
Me.lblSaveFolder = New System.Windows.Forms.Label()
|
||||
Me.ttWarning = New System.Windows.Forms.ToolTip(Me.components)
|
||||
Me.cmsItems.SuspendLayout()
|
||||
Me.grpFileOptions.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'treFiles
|
||||
'
|
||||
Me.treFiles.CheckBoxes = True
|
||||
Me.treFiles.ImageIndex = 0
|
||||
Me.treFiles.ImageList = Me.imgIcons
|
||||
Me.treFiles.Location = New System.Drawing.Point(12, 64)
|
||||
Me.treFiles.Name = "treFiles"
|
||||
Me.treFiles.SelectedImageIndex = 0
|
||||
Me.treFiles.Size = New System.Drawing.Size(250, 333)
|
||||
Me.treFiles.TabIndex = 1
|
||||
'
|
||||
'imgIcons
|
||||
'
|
||||
Me.imgIcons.ImageStream = CType(resources.GetObject("imgIcons.ImageStream"), System.Windows.Forms.ImageListStreamer)
|
||||
Me.imgIcons.TransparentColor = System.Drawing.Color.Transparent
|
||||
Me.imgIcons.Images.SetKeyName(0, "folder.ico")
|
||||
Me.imgIcons.Images.SetKeyName(1, "file.ico")
|
||||
Me.imgIcons.Images.SetKeyName(2, "type.ico")
|
||||
'
|
||||
'btnSave
|
||||
'
|
||||
Me.btnSave.Location = New System.Drawing.Point(416, 426)
|
||||
Me.btnSave.Name = "btnSave"
|
||||
Me.btnSave.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnSave.TabIndex = 7
|
||||
Me.btnSave.Text = "&Save"
|
||||
Me.btnSave.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.Location = New System.Drawing.Point(497, 426)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 8
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtRootFolder
|
||||
'
|
||||
Me.txtRootFolder.Location = New System.Drawing.Point(12, 38)
|
||||
Me.txtRootFolder.Name = "txtRootFolder"
|
||||
Me.txtRootFolder.ReadOnly = True
|
||||
Me.txtRootFolder.Size = New System.Drawing.Size(214, 20)
|
||||
Me.txtRootFolder.TabIndex = 0
|
||||
Me.txtRootFolder.TabStop = False
|
||||
'
|
||||
'btnBrowse
|
||||
'
|
||||
Me.btnBrowse.Location = New System.Drawing.Point(232, 37)
|
||||
Me.btnBrowse.Name = "btnBrowse"
|
||||
Me.btnBrowse.Size = New System.Drawing.Size(30, 20)
|
||||
Me.btnBrowse.TabIndex = 0
|
||||
Me.btnBrowse.Text = "..."
|
||||
Me.btnBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lstBuilder
|
||||
'
|
||||
Me.lstBuilder.ContextMenuStrip = Me.cmsItems
|
||||
Me.lstBuilder.LabelEdit = True
|
||||
Me.lstBuilder.Location = New System.Drawing.Point(322, 38)
|
||||
Me.lstBuilder.Name = "lstBuilder"
|
||||
Me.lstBuilder.Size = New System.Drawing.Size(250, 359)
|
||||
Me.lstBuilder.SmallImageList = Me.imgIcons
|
||||
Me.lstBuilder.TabIndex = 5
|
||||
Me.lstBuilder.UseCompatibleStateImageBehavior = False
|
||||
Me.lstBuilder.View = System.Windows.Forms.View.List
|
||||
'
|
||||
'cmsItems
|
||||
'
|
||||
Me.cmsItems.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmsEdit, Me.cmsRemove, Me.cmsAdd})
|
||||
Me.cmsItems.Name = "cmsItems"
|
||||
Me.cmsItems.Size = New System.Drawing.Size(169, 70)
|
||||
'
|
||||
'cmsEdit
|
||||
'
|
||||
Me.cmsEdit.Name = "cmsEdit"
|
||||
Me.cmsEdit.Size = New System.Drawing.Size(168, 22)
|
||||
Me.cmsEdit.Text = "Edit"
|
||||
'
|
||||
'cmsRemove
|
||||
'
|
||||
Me.cmsRemove.Name = "cmsRemove"
|
||||
Me.cmsRemove.Size = New System.Drawing.Size(168, 22)
|
||||
Me.cmsRemove.Text = "Remove"
|
||||
'
|
||||
'cmsAdd
|
||||
'
|
||||
Me.cmsAdd.Name = "cmsAdd"
|
||||
Me.cmsAdd.Size = New System.Drawing.Size(168, 22)
|
||||
Me.cmsAdd.Text = "Add Custom Item"
|
||||
'
|
||||
'btnRemove
|
||||
'
|
||||
Me.btnRemove.Location = New System.Drawing.Point(268, 201)
|
||||
Me.btnRemove.Name = "btnRemove"
|
||||
Me.btnRemove.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnRemove.TabIndex = 4
|
||||
Me.btnRemove.Text = "<"
|
||||
Me.btnRemove.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnAdd
|
||||
'
|
||||
Me.btnAdd.Location = New System.Drawing.Point(268, 172)
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(48, 23)
|
||||
Me.btnAdd.TabIndex = 3
|
||||
Me.btnAdd.Text = ">"
|
||||
Me.btnAdd.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpFileOptions
|
||||
'
|
||||
Me.grpFileOptions.Controls.Add(Me.optFileTypes)
|
||||
Me.grpFileOptions.Controls.Add(Me.optIndividualFiles)
|
||||
Me.grpFileOptions.Location = New System.Drawing.Point(12, 403)
|
||||
Me.grpFileOptions.Name = "grpFileOptions"
|
||||
Me.grpFileOptions.Size = New System.Drawing.Size(194, 46)
|
||||
Me.grpFileOptions.TabIndex = 2
|
||||
Me.grpFileOptions.TabStop = False
|
||||
Me.grpFileOptions.Text = "File Options"
|
||||
'
|
||||
'optFileTypes
|
||||
'
|
||||
Me.optFileTypes.Location = New System.Drawing.Point(6, 19)
|
||||
Me.optFileTypes.Name = "optFileTypes"
|
||||
Me.optFileTypes.Size = New System.Drawing.Size(73, 17)
|
||||
Me.optFileTypes.TabIndex = 0
|
||||
Me.optFileTypes.TabStop = True
|
||||
Me.optFileTypes.Text = "File Types"
|
||||
Me.optFileTypes.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optIndividualFiles
|
||||
'
|
||||
Me.optIndividualFiles.Location = New System.Drawing.Point(85, 19)
|
||||
Me.optIndividualFiles.Name = "optIndividualFiles"
|
||||
Me.optIndividualFiles.Size = New System.Drawing.Size(94, 17)
|
||||
Me.optIndividualFiles.TabIndex = 1
|
||||
Me.optIndividualFiles.TabStop = True
|
||||
Me.optIndividualFiles.Text = "Individual Files"
|
||||
Me.optIndividualFiles.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblItems
|
||||
'
|
||||
Me.lblItems.Location = New System.Drawing.Point(322, 16)
|
||||
Me.lblItems.Name = "lblItems"
|
||||
Me.lblItems.Size = New System.Drawing.Size(250, 13)
|
||||
Me.lblItems.TabIndex = 14
|
||||
Me.lblItems.Text = "Items"
|
||||
Me.lblItems.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'btnRawEdit
|
||||
'
|
||||
Me.btnRawEdit.Location = New System.Drawing.Point(335, 426)
|
||||
Me.btnRawEdit.Name = "btnRawEdit"
|
||||
Me.btnRawEdit.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnRawEdit.TabIndex = 6
|
||||
Me.btnRawEdit.Text = "Raw &Edit"
|
||||
Me.btnRawEdit.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblSaveFolder
|
||||
'
|
||||
Me.lblSaveFolder.Location = New System.Drawing.Point(9, 16)
|
||||
Me.lblSaveFolder.Name = "lblSaveFolder"
|
||||
Me.lblSaveFolder.Size = New System.Drawing.Size(250, 13)
|
||||
Me.lblSaveFolder.TabIndex = 15
|
||||
Me.lblSaveFolder.Text = "Saved Game Explorer"
|
||||
Me.lblSaveFolder.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'ttWarning
|
||||
'
|
||||
Me.ttWarning.AutoPopDelay = 5000
|
||||
Me.ttWarning.InitialDelay = 200
|
||||
Me.ttWarning.ReshowDelay = 50
|
||||
Me.ttWarning.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Warning
|
||||
'
|
||||
'frmIncludeExclude
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(584, 461)
|
||||
Me.Controls.Add(Me.lblSaveFolder)
|
||||
Me.Controls.Add(Me.btnRawEdit)
|
||||
Me.Controls.Add(Me.lblItems)
|
||||
Me.Controls.Add(Me.grpFileOptions)
|
||||
Me.Controls.Add(Me.btnRemove)
|
||||
Me.Controls.Add(Me.btnAdd)
|
||||
Me.Controls.Add(Me.lstBuilder)
|
||||
Me.Controls.Add(Me.btnBrowse)
|
||||
Me.Controls.Add(Me.txtRootFolder)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.btnSave)
|
||||
Me.Controls.Add(Me.treFiles)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "frmIncludeExclude"
|
||||
Me.ShowIcon = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "Include / Exclude Builder"
|
||||
Me.cmsItems.ResumeLayout(False)
|
||||
Me.grpFileOptions.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents treFiles As System.Windows.Forms.TreeView
|
||||
Friend WithEvents imgIcons As System.Windows.Forms.ImageList
|
||||
Friend WithEvents btnSave As System.Windows.Forms.Button
|
||||
Friend WithEvents btnCancel As System.Windows.Forms.Button
|
||||
Friend WithEvents txtRootFolder As System.Windows.Forms.TextBox
|
||||
Friend WithEvents btnBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents lstBuilder As System.Windows.Forms.ListView
|
||||
Friend WithEvents btnRemove As System.Windows.Forms.Button
|
||||
Friend WithEvents btnAdd As System.Windows.Forms.Button
|
||||
Friend WithEvents grpFileOptions As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents optFileTypes As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optIndividualFiles As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents lblItems As System.Windows.Forms.Label
|
||||
Friend WithEvents cmsItems As System.Windows.Forms.ContextMenuStrip
|
||||
Friend WithEvents cmsEdit As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents cmsRemove As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents cmsAdd As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents btnRawEdit As Button
|
||||
Friend WithEvents lblSaveFolder As Label
|
||||
Friend WithEvents ttWarning As ToolTip
|
||||
End Class
|
||||
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="imgIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="imgIcons.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6
|
||||
CQAAAk1TRnQBSQFMAgEBAwEAAbgBAAG4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/xMACf82AAH0CQcB/wsA
|
||||
Af8ZAAHyDLsB8gIAAfMJvAH0A/8IAAH/AbMBuwH/FgABuwyzAQkCAAHzAvIB8QkHAfQHAAH/A7MBugH/
|
||||
FQABCQyzAQkCAAHzAvIB8QnwAfMGAAH/ArQB8QG8AbQBCQH/FAABCQyzAQkCAAHzDPIB8wUAAf8CtALy
|
||||
AfEBvAG0AbsB/xMAAQkMugEJAgAC8wvyAfMEAAH/AbQBugHzA/IB8QG8AbQBuxMAAfAMugHwAgAD8wry
|
||||
AfMDAAH/AroD8wPyAfEBugG0EwAB8AzbAfACAATzAfIJ8wIAAf8CugbzAfICugL/EgABGQzcARkCAATz
|
||||
AfIJ8wIAAfQCugEJBfMCuwH/FAAB8QwJAfECAA7zAgAB9AG6AdsB3AEJA/MBCQG7Af8VAAHwB9wFugHw
|
||||
AgAB8wL0B/MB8gHvAbwB9AIAAfQB3AHzAf8B3AEJAfICCQH/FgABGQG7BO8BCQH/CAAB9AnzAe8B9wHx
|
||||
AwAB9AHcARkB8wPcAQkB/xcAAfMB8AQZAfIJAAP/AfQB8wT0AQcBvAH/BAAB9AIJAdwB4QIJAf8rAAH/
|
||||
BPMC8gYAAf8F9AH/LQAF/yYAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAL/
|
||||
AcABHwL/AgAC/wGAAQ8B/gH/AgABgAEBAYABAQH+AR8CAAGAAQEBgAEBAfwBDwIAAYABAQGAAQEB+AEH
|
||||
AgABgAEBAYABAQHwAQMCAAGAAQEBgAEBAeABAwIAAYABAQGAAQEBwAEDAgABgAEBAYABAQGAAQECAAGA
|
||||
AQEBgAEBAYABBwIAAYABAQGAAQEBgAEPAgABgAEBAYABAQGAAR8CAAGAAX8BgAEDAYABPwIAAYAB/wGA
|
||||
AQcBgAF/AgAC/wHwAR8BgAH/AgAC/wH4AT8C/wIACw==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="cmsItems.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>118, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ttWarning.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>221, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -0,0 +1,354 @@
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmIncludeExclude
|
||||
|
||||
Dim sFormName As String = String.Empty
|
||||
Dim sRootFolder As String = String.Empty
|
||||
Dim sBuilderString As String
|
||||
|
||||
Public Property BuilderString As String
|
||||
Get
|
||||
Return sBuilderString
|
||||
End Get
|
||||
Set(value As String)
|
||||
sBuilderString = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property FormName As String
|
||||
Get
|
||||
Return sFormName
|
||||
End Get
|
||||
Set(value As String)
|
||||
sFormName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property RootFolder As String
|
||||
Get
|
||||
Return sRootFolder
|
||||
End Get
|
||||
Set(value As String)
|
||||
sRootFolder = value.TrimEnd(Path.DirectorySeparatorChar)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub BuildBranch(ByVal sDirectory As String, ByVal oNode As TreeNode)
|
||||
Dim sFolders As String()
|
||||
Dim sFiles As String()
|
||||
Dim oChild As TreeNode
|
||||
Dim oPlaceHolder As TreeNode
|
||||
|
||||
If oNode.Nodes.ContainsKey("GBM_Tree_Placeholder") Then
|
||||
Try
|
||||
Cursor.Current = Cursors.WaitCursor
|
||||
treFiles.BeginUpdate()
|
||||
|
||||
oNode.Nodes.RemoveByKey("GBM_Tree_Placeholder")
|
||||
|
||||
sFolders = Directory.GetDirectories(sDirectory)
|
||||
sFiles = Directory.GetFiles(sDirectory)
|
||||
|
||||
If sFolders.Length <> 0 Then
|
||||
For Each sFolder As String In sFolders
|
||||
oChild = New TreeNode(sFolder.Replace(sDirectory, String.Empty).TrimStart(Path.DirectorySeparatorChar), 0, 0)
|
||||
oChild.Name = sFolder
|
||||
oChild.Tag = 0
|
||||
oNode.Nodes.Add(oChild)
|
||||
oPlaceHolder = New TreeNode("GBM_Tree_Placeholder")
|
||||
oPlaceHolder.Name = "GBM_Tree_Placeholder"
|
||||
oChild.Nodes.Add(oPlaceHolder)
|
||||
Next
|
||||
End If
|
||||
|
||||
If sFiles.Length <> 0 Then
|
||||
For Each sFile As String In sFiles
|
||||
oChild = New TreeNode(sFile.Replace(sDirectory, String.Empty).TrimStart(Path.DirectorySeparatorChar), 1, 1)
|
||||
oChild.Tag = 1
|
||||
oNode.Nodes.Add(oChild)
|
||||
Next
|
||||
End If
|
||||
|
||||
Catch uaex As UnauthorizedAccessException
|
||||
'Do Nothing
|
||||
Catch ex As Exception
|
||||
mgrCommon.ShowMessage(frmIncludeExclude_ErrorFileSystemRead, ex.Message, MsgBoxStyle.Critical)
|
||||
Finally
|
||||
treFiles.EndUpdate()
|
||||
Cursor.Current = Cursors.Default
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub BuildTrunk()
|
||||
Dim oRootNode As TreeNode
|
||||
|
||||
If Path.GetPathRoot(txtRootFolder.Text) = txtRootFolder.Text Then
|
||||
oRootNode = New TreeNode(txtRootFolder.Text, 0, 0)
|
||||
Else
|
||||
oRootNode = New TreeNode(Path.GetFileName(txtRootFolder.Text), 0, 0)
|
||||
End If
|
||||
|
||||
treFiles.Nodes.Clear()
|
||||
oRootNode.Name = "Root"
|
||||
oRootNode.Nodes.Add("GBM_Tree_Placeholder", "GBM_Tree_Placeholder")
|
||||
treFiles.Nodes.Add(oRootNode)
|
||||
BuildBranch(txtRootFolder.Text, oRootNode)
|
||||
End Sub
|
||||
|
||||
Private Sub RootPathBrowse()
|
||||
Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
|
||||
Dim sCurrentPath As String = txtRootFolder.Text
|
||||
Dim sNewPath As String
|
||||
|
||||
If sCurrentPath <> String.Empty Then
|
||||
If Directory.Exists(sCurrentPath) Then
|
||||
sDefaultFolder = sCurrentPath
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmIncludeExclude_BrowseSaveFolder, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtRootFolder.Text = sNewPath
|
||||
End Sub
|
||||
|
||||
Private Sub GetAllCheckedNodes(ByVal oRootNode As TreeNodeCollection, ByRef oNodeList As List(Of TreeNode))
|
||||
For Each oNode As TreeNode In oRootNode
|
||||
If oNode.Checked Then
|
||||
oNode.Checked = False
|
||||
oNodeList.Add(oNode)
|
||||
End If
|
||||
If oNode.Nodes.Count > 0 Then
|
||||
GetAllCheckedNodes(oNode.Nodes, oNodeList)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub AddItem()
|
||||
Dim oCheckedNodes As New List(Of TreeNode)
|
||||
Dim oListViewItem As ListViewItem
|
||||
Dim sItem As String
|
||||
|
||||
GetAllCheckedNodes(treFiles.Nodes, oCheckedNodes)
|
||||
|
||||
lstBuilder.BeginUpdate()
|
||||
For Each oNode In oCheckedNodes
|
||||
sItem = oNode.Text
|
||||
If oNode.Tag = 1 And optFileTypes.Checked Then
|
||||
sItem = Path.GetExtension(oNode.Text)
|
||||
If sItem <> String.Empty Then
|
||||
sItem = "*" & sItem
|
||||
oListViewItem = New ListViewItem(sItem, 2)
|
||||
oListViewItem.Name = sItem
|
||||
Else
|
||||
sItem = oNode.Text
|
||||
oListViewItem = New ListViewItem(sItem, 1)
|
||||
oListViewItem.Name = sItem
|
||||
End If
|
||||
Else
|
||||
oListViewItem = New ListViewItem(sItem, CInt(oNode.Tag))
|
||||
oListViewItem.Name = sItem
|
||||
End If
|
||||
|
||||
If Not lstBuilder.Items.ContainsKey(sItem) Then
|
||||
lstBuilder.Items.Add(oListViewItem)
|
||||
End If
|
||||
Next
|
||||
lstBuilder.EndUpdate()
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveItem()
|
||||
For Each oListViewItem As ListViewItem In lstBuilder.SelectedItems
|
||||
oListViewItem.Remove()
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub ParseBuilderString(ByVal sString As String)
|
||||
Dim iType As Integer = 1
|
||||
Dim oListViewItem As ListViewItem
|
||||
Dim sItems As String() = sString.Split(":")
|
||||
|
||||
lstBuilder.BeginUpdate()
|
||||
lstBuilder.Clear()
|
||||
|
||||
For Each sItem As String In sItems
|
||||
oListViewItem = New ListViewItem(sItem)
|
||||
oListViewItem.Name = sItem
|
||||
IdentifyEntry(oListViewItem, sItem)
|
||||
If Not lstBuilder.Items.ContainsKey(sItem) Then
|
||||
lstBuilder.Items.Add(oListViewItem)
|
||||
End If
|
||||
Next
|
||||
|
||||
lstBuilder.EndUpdate()
|
||||
End Sub
|
||||
|
||||
Private Sub IdentifyEntry(ByRef oListItem As ListViewItem, ByVal sNewLabel As String)
|
||||
Dim iType As Integer = 1
|
||||
Dim sFolderCheck As String
|
||||
|
||||
If sNewLabel.Contains("*") Or sNewLabel.Contains("?") Then
|
||||
iType = 2
|
||||
Else
|
||||
If txtRootFolder.Text <> String.Empty Then
|
||||
If Path.GetFileName(txtRootFolder.Text) = sNewLabel Then
|
||||
sFolderCheck = txtRootFolder.Text
|
||||
Else
|
||||
sFolderCheck = txtRootFolder.Text & Path.DirectorySeparatorChar & sNewLabel
|
||||
End If
|
||||
If Directory.Exists(sFolderCheck) Then
|
||||
iType = 0
|
||||
Else
|
||||
iType = 1
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
oListItem.ImageIndex = iType
|
||||
End Sub
|
||||
|
||||
Private Function CreateNewBuilderString() As String
|
||||
Dim sTempString As String = String.Empty
|
||||
|
||||
For Each oListViewItem As ListViewItem In lstBuilder.Items
|
||||
sTempString &= oListViewItem.Text & ":"
|
||||
Next
|
||||
|
||||
sTempString = sTempString.TrimEnd(":")
|
||||
|
||||
Return sTempString
|
||||
End Function
|
||||
|
||||
Private Sub OpenRawEdit()
|
||||
Dim sCurrentString As String = CreateNewBuilderString()
|
||||
Dim sNewString As String
|
||||
sNewString = InputBox(frmIncludeExclude_RawEditInfo, mgrCommon.FormatString(frmIncludeExclude_RawEditTitle, FormName), sCurrentString)
|
||||
If sNewString <> String.Empty Then
|
||||
ParseBuilderString(sNewString)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = mgrCommon.FormatString(frmIncludeExclude_FormName, FormName)
|
||||
|
||||
'Set Form Text
|
||||
lblSaveFolder.Text = frmIncludeExclude_lblSaveFolder
|
||||
btnRawEdit.Text = frmIncludeExclude_btnRawEdit
|
||||
lblItems.Text = mgrCommon.FormatString(frmIncludeExclude_lblItems, FormName)
|
||||
grpFileOptions.Text = mgrCommon.FormatString(frmIncludeExclude_grpFileOptions, FormName)
|
||||
optFileTypes.Text = frmIncludeExclude_optFileTypes
|
||||
optIndividualFiles.Text = frmIncludeExclude_optIndividualFiles
|
||||
btnRemove.Text = frmIncludeExclude_btnRemove
|
||||
btnAdd.Text = frmIncludeExclude_btnAdd
|
||||
btnBrowse.Text = frmIncludeExclude_btnBrowse
|
||||
btnCancel.Text = frmIncludeExclude_btnCancel
|
||||
btnSave.Text = frmIncludeExclude_btnSave
|
||||
cmsAdd.Text = frmIncludeExclude_cmsAdd
|
||||
cmsEdit.Text = frmIncludeExclude_cmsEdit
|
||||
cmsRemove.Text = frmIncludeExclude_cmsRemove
|
||||
|
||||
'Set Defaults
|
||||
txtRootFolder.Text = RootFolder
|
||||
optFileTypes.Checked = True
|
||||
If BuilderString <> String.Empty Then ParseBuilderString(BuilderString)
|
||||
If txtRootFolder.Text <> String.Empty Then BuildTrunk()
|
||||
End Sub
|
||||
|
||||
Private Sub frmIncludeExclude_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
End Sub
|
||||
|
||||
Private Sub frmIncludeExclude_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
||||
treFiles.Select()
|
||||
If Not treFiles.SelectedNode Is Nothing Then treFiles.SelectedNode.Expand()
|
||||
If txtRootFolder.Text = String.Empty Then
|
||||
ttWarning.ToolTipTitle = frmIncludeExclude_ToolTipTitle
|
||||
ttWarning.SetToolTip(treFiles, frmIncludeExclude_ToolTipFiles)
|
||||
ttWarning.SetToolTip(txtRootFolder, frmIncludeExclude_ToolTipFolder)
|
||||
ttWarning.SetToolTip(btnBrowse, frmIncludeExclude_ToolTipBrowse)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
|
||||
RootPathBrowse()
|
||||
If txtRootFolder.Text <> String.Empty Then
|
||||
BuildTrunk()
|
||||
ttWarning.RemoveAll()
|
||||
End If
|
||||
treFiles.Select()
|
||||
If Not treFiles.SelectedNode Is Nothing Then treFiles.SelectedNode.Expand()
|
||||
End Sub
|
||||
|
||||
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
|
||||
BuilderString = CreateNewBuilderString()
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub treFiles_BeforeExpand(sender As Object, e As TreeViewCancelEventArgs) Handles treFiles.BeforeExpand
|
||||
If Not e.Node.Name = "Root" Then
|
||||
BuildBranch(e.Node.Name, e.Node)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
|
||||
AddItem()
|
||||
End Sub
|
||||
|
||||
Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
|
||||
RemoveItem()
|
||||
End Sub
|
||||
|
||||
Private Sub cmsItems_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles cmsItems.Opening
|
||||
If lstBuilder.SelectedItems.Count = 0 Then
|
||||
cmsEdit.Visible = False
|
||||
cmsRemove.Visible = False
|
||||
cmsAdd.Visible = True
|
||||
Else
|
||||
cmsEdit.Visible = True
|
||||
cmsRemove.Visible = True
|
||||
cmsAdd.Visible = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub cmsEdit_Click(sender As Object, e As EventArgs) Handles cmsEdit.Click
|
||||
If lstBuilder.SelectedItems.Count > 0 Then
|
||||
lstBuilder.SelectedItems(0).BeginEdit()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub cmsRemove_Click(sender As Object, e As EventArgs) Handles cmsRemove.Click
|
||||
RemoveItem()
|
||||
End Sub
|
||||
|
||||
Private Sub cmsAdd_Click(sender As Object, e As EventArgs) Handles cmsAdd.Click
|
||||
Dim oNewItem As New ListViewItem(frmIncludeExclude_CustomItem, 1)
|
||||
oNewItem.Selected = True
|
||||
lstBuilder.Items.Add(oNewItem)
|
||||
lstBuilder.SelectedItems(0).BeginEdit()
|
||||
End Sub
|
||||
|
||||
Private Sub lstBuilder_AfterLabelEdit(sender As Object, e As LabelEditEventArgs) Handles lstBuilder.AfterLabelEdit
|
||||
If Not e.Label Is Nothing Then
|
||||
If e.Label = String.Empty Then
|
||||
e.CancelEdit = True
|
||||
End If
|
||||
|
||||
If lstBuilder.Items.ContainsKey(e.Label) Then
|
||||
e.CancelEdit = True
|
||||
Else
|
||||
'Unix Handler - Mono is unable to modify list items during an edit event without crashing
|
||||
If Not mgrCommon.IsUnix Then IdentifyEntry(lstBuilder.Items(e.Item), e.Label)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnRawEdit_Click(sender As Object, e As EventArgs) Handles btnRawEdit.Click
|
||||
OpenRawEdit()
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+191
-168
@@ -26,6 +26,7 @@ Partial Class frmMain
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
|
||||
Me.gMonTray = New System.Windows.Forms.NotifyIcon(Me.components)
|
||||
Me.gMonTrayMenu = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.gMonTrayNotification = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayShow = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySep2 = New System.Windows.Forms.ToolStripSeparator()
|
||||
Me.gMonTrayMon = New System.Windows.Forms.ToolStripMenuItem()
|
||||
@@ -34,21 +35,21 @@ Partial Class frmMain
|
||||
Me.gMonTraySetupAddWizard = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySetupGameManager = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySetupTags = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayTools = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsGameList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsGameImportOfficialList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsGameImportList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsGameExportList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsSyncMan = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsCleanMan = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsCompact = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayToolsLog = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayLogClear = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTrayLogSave = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySep1 = New System.Windows.Forms.ToolStripSeparator()
|
||||
Me.gMonTrayExit = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.bwMonitor = New System.ComponentModel.BackgroundWorker()
|
||||
Me.txtLog = New System.Windows.Forms.TextBox()
|
||||
Me.gMonStatusStrip = New System.Windows.Forms.StatusStrip()
|
||||
Me.gMonStripAdminButton = New System.Windows.Forms.ToolStripSplitButton()
|
||||
Me.gMonStripAdminButton = New System.Windows.Forms.ToolStripStatusLabel()
|
||||
Me.gMonStripTxtStatus = New System.Windows.Forms.ToolStripStatusLabel()
|
||||
Me.gMonStripStatusButton = New System.Windows.Forms.ToolStripSplitButton()
|
||||
Me.gMonStripStatusButton = New System.Windows.Forms.ToolStripStatusLabel()
|
||||
Me.gMonMainMenu = New System.Windows.Forms.MenuStrip()
|
||||
Me.gMonFile = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonFileMonitor = New System.Windows.Forms.ToolStripMenuItem()
|
||||
@@ -60,32 +61,35 @@ Partial Class frmMain
|
||||
Me.gMonSetupGameManager = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonSetupAddWizard = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonSetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonSetupTags = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTools = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsGameList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsGameImportOfficialList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsGameImportList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsGameExportList = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsSyncMan = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsCleanMan = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsCompact = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonToolsLog = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonLogClear = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonLogSave = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonHelp = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonHelpWebSite = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonHelpManual = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonHelpCheckforUpdates = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonHelpAbout = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonNotification = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.pbIcon = New System.Windows.Forms.PictureBox()
|
||||
Me.btnLogToggle = New System.Windows.Forms.Button()
|
||||
Me.lblGameTitle = New System.Windows.Forms.Label()
|
||||
Me.lblLastAction = New System.Windows.Forms.Label()
|
||||
Me.lblLastActionTitle = New System.Windows.Forms.Label()
|
||||
Me.lblTimeTitle = New System.Windows.Forms.Label()
|
||||
Me.lblTimeSpent = New System.Windows.Forms.Label()
|
||||
Me.txtGameInfo = New System.Windows.Forms.TextBox()
|
||||
Me.btnCancelOperation = New System.Windows.Forms.Button()
|
||||
Me.gMonSetupTags = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.gMonTraySetupTags = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.lblStatus1 = New System.Windows.Forms.Label()
|
||||
Me.lblStatus2 = New System.Windows.Forms.Label()
|
||||
Me.lblStatus3 = New System.Windows.Forms.Label()
|
||||
Me.pbTime = New System.Windows.Forms.PictureBox()
|
||||
Me.gMonTrayMenu.SuspendLayout()
|
||||
Me.gMonStatusStrip.SuspendLayout()
|
||||
Me.gMonMainMenu.SuspendLayout()
|
||||
CType(Me.pbIcon, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.pbTime, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'gMonTray
|
||||
@@ -95,13 +99,19 @@ Partial Class frmMain
|
||||
Me.gMonTray.ContextMenuStrip = Me.gMonTrayMenu
|
||||
Me.gMonTray.Icon = CType(resources.GetObject("gMonTray.Icon"), System.Drawing.Icon)
|
||||
Me.gMonTray.Text = "GBM"
|
||||
Me.gMonTray.Visible = True
|
||||
'
|
||||
'gMonTrayMenu
|
||||
'
|
||||
Me.gMonTrayMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayShow, Me.gMonTraySep2, Me.gMonTrayMon, Me.gMonTraySettings, Me.gMonTraySetup, Me.gMonTrayTools, Me.gMonTraySep1, Me.gMonTrayExit})
|
||||
Me.gMonTrayMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayNotification, Me.gMonTrayShow, Me.gMonTraySep2, Me.gMonTrayMon, Me.gMonTraySettings, Me.gMonTraySetup, Me.gMonTrayTools, Me.gMonTraySep1, Me.gMonTrayExit})
|
||||
Me.gMonTrayMenu.Name = "gMonTrayMenu"
|
||||
Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 148)
|
||||
Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 170)
|
||||
'
|
||||
'gMonTrayNotification
|
||||
'
|
||||
Me.gMonTrayNotification.Name = "gMonTrayNotification"
|
||||
Me.gMonTrayNotification.Size = New System.Drawing.Size(161, 22)
|
||||
Me.gMonTrayNotification.Text = "Notification"
|
||||
Me.gMonTrayNotification.Visible = False
|
||||
'
|
||||
'gMonTrayShow
|
||||
'
|
||||
@@ -151,50 +161,50 @@ Partial Class frmMain
|
||||
Me.gMonTraySetupCustomVariables.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTraySetupCustomVariables.Text = "Custom &Path Variables..."
|
||||
'
|
||||
'gMonTraySetupTags
|
||||
'
|
||||
Me.gMonTraySetupTags.Name = "gMonTraySetupTags"
|
||||
Me.gMonTraySetupTags.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTraySetupTags.Text = "&Tags..."
|
||||
'
|
||||
'gMonTrayTools
|
||||
'
|
||||
Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsGameList, Me.gMonTrayToolsSyncMan, Me.gMonTrayToolsCompact})
|
||||
Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsCleanMan, Me.gMonTrayToolsCompact, Me.gMonTrayToolsLog})
|
||||
Me.gMonTrayTools.Name = "gMonTrayTools"
|
||||
Me.gMonTrayTools.Size = New System.Drawing.Size(161, 22)
|
||||
Me.gMonTrayTools.Text = "&Tools"
|
||||
'
|
||||
'gMonTrayToolsGameList
|
||||
'gMonTrayToolsCleanMan
|
||||
'
|
||||
Me.gMonTrayToolsGameList.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsGameImportOfficialList, Me.gMonTrayToolsGameImportList, Me.gMonTrayToolsGameExportList})
|
||||
Me.gMonTrayToolsGameList.Name = "gMonTrayToolsGameList"
|
||||
Me.gMonTrayToolsGameList.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonTrayToolsGameList.Text = "&Game List"
|
||||
'
|
||||
'gMonTrayToolsGameImportOfficialList
|
||||
'
|
||||
Me.gMonTrayToolsGameImportOfficialList.Name = "gMonTrayToolsGameImportOfficialList"
|
||||
Me.gMonTrayToolsGameImportOfficialList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTrayToolsGameImportOfficialList.Text = "Import from &Official List"
|
||||
'
|
||||
'gMonTrayToolsGameImportList
|
||||
'
|
||||
Me.gMonTrayToolsGameImportList.Name = "gMonTrayToolsGameImportList"
|
||||
Me.gMonTrayToolsGameImportList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTrayToolsGameImportList.Text = "I&mport Game List"
|
||||
'
|
||||
'gMonTrayToolsGameExportList
|
||||
'
|
||||
Me.gMonTrayToolsGameExportList.Name = "gMonTrayToolsGameExportList"
|
||||
Me.gMonTrayToolsGameExportList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTrayToolsGameExportList.Text = "E&xport Game List"
|
||||
'
|
||||
'gMonTrayToolsSyncMan
|
||||
'
|
||||
Me.gMonTrayToolsSyncMan.Name = "gMonTrayToolsSyncMan"
|
||||
Me.gMonTrayToolsSyncMan.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonTrayToolsSyncMan.Text = "Sync Ma&nifests"
|
||||
Me.gMonTrayToolsCleanMan.Name = "gMonTrayToolsCleanMan"
|
||||
Me.gMonTrayToolsCleanMan.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonTrayToolsCleanMan.Text = "Clean Local Ma&nifest"
|
||||
'
|
||||
'gMonTrayToolsCompact
|
||||
'
|
||||
Me.gMonTrayToolsCompact.Name = "gMonTrayToolsCompact"
|
||||
Me.gMonTrayToolsCompact.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonTrayToolsCompact.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonTrayToolsCompact.Text = "&Compact Databases"
|
||||
'
|
||||
'gMonTrayToolsLog
|
||||
'
|
||||
Me.gMonTrayToolsLog.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayLogClear, Me.gMonTrayLogSave})
|
||||
Me.gMonTrayToolsLog.Name = "gMonTrayToolsLog"
|
||||
Me.gMonTrayToolsLog.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonTrayToolsLog.Text = "&Log"
|
||||
'
|
||||
'gMonTrayLogClear
|
||||
'
|
||||
Me.gMonTrayLogClear.Name = "gMonTrayLogClear"
|
||||
Me.gMonTrayLogClear.Size = New System.Drawing.Size(101, 22)
|
||||
Me.gMonTrayLogClear.Text = "&Clear"
|
||||
'
|
||||
'gMonTrayLogSave
|
||||
'
|
||||
Me.gMonTrayLogSave.Name = "gMonTrayLogSave"
|
||||
Me.gMonTrayLogSave.Size = New System.Drawing.Size(101, 22)
|
||||
Me.gMonTrayLogSave.Text = "&Save"
|
||||
'
|
||||
'gMonTraySep1
|
||||
'
|
||||
Me.gMonTraySep1.Name = "gMonTraySep1"
|
||||
@@ -213,20 +223,21 @@ Partial Class frmMain
|
||||
'txtLog
|
||||
'
|
||||
Me.txtLog.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.txtLog.Location = New System.Drawing.Point(12, 161)
|
||||
Me.txtLog.Location = New System.Drawing.Point(12, 184)
|
||||
Me.txtLog.MaxLength = 524288
|
||||
Me.txtLog.Multiline = True
|
||||
Me.txtLog.Name = "txtLog"
|
||||
Me.txtLog.ReadOnly = True
|
||||
Me.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
|
||||
Me.txtLog.Size = New System.Drawing.Size(500, 177)
|
||||
Me.txtLog.TabIndex = 2
|
||||
Me.txtLog.TabIndex = 10
|
||||
Me.txtLog.TabStop = False
|
||||
'
|
||||
'gMonStatusStrip
|
||||
'
|
||||
Me.gMonStatusStrip.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.gMonStatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonStripAdminButton, Me.gMonStripTxtStatus, Me.gMonStripStatusButton})
|
||||
Me.gMonStatusStrip.Location = New System.Drawing.Point(0, 350)
|
||||
Me.gMonStatusStrip.Location = New System.Drawing.Point(0, 379)
|
||||
Me.gMonStatusStrip.Name = "gMonStatusStrip"
|
||||
Me.gMonStatusStrip.ShowItemToolTips = True
|
||||
Me.gMonStatusStrip.Size = New System.Drawing.Size(524, 22)
|
||||
@@ -236,42 +247,35 @@ Partial Class frmMain
|
||||
'gMonStripAdminButton
|
||||
'
|
||||
Me.gMonStripAdminButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
||||
Me.gMonStripAdminButton.DropDownButtonWidth = 0
|
||||
Me.gMonStripAdminButton.Image = Global.GBM.My.Resources.Resources.User
|
||||
Me.gMonStripAdminButton.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||
Me.gMonStripAdminButton.Image = Global.GBM.My.Resources.Resources.Icon_User
|
||||
Me.gMonStripAdminButton.Name = "gMonStripAdminButton"
|
||||
Me.gMonStripAdminButton.Size = New System.Drawing.Size(21, 20)
|
||||
Me.gMonStripAdminButton.Text = "Elevation"
|
||||
Me.gMonStripAdminButton.ToolTipText = "Elevation"
|
||||
Me.gMonStripAdminButton.Size = New System.Drawing.Size(16, 17)
|
||||
Me.gMonStripAdminButton.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
|
||||
'
|
||||
'gMonStripTxtStatus
|
||||
'
|
||||
Me.gMonStripTxtStatus.Margin = New System.Windows.Forms.Padding(5, 0, 0, 0)
|
||||
Me.gMonStripTxtStatus.Name = "gMonStripTxtStatus"
|
||||
Me.gMonStripTxtStatus.Size = New System.Drawing.Size(395, 17)
|
||||
Me.gMonStripTxtStatus.Size = New System.Drawing.Size(400, 22)
|
||||
Me.gMonStripTxtStatus.Spring = True
|
||||
Me.gMonStripTxtStatus.Text = "Monitor Status"
|
||||
Me.gMonStripTxtStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'gMonStripStatusButton
|
||||
'
|
||||
Me.gMonStripStatusButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
|
||||
Me.gMonStripStatusButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
|
||||
Me.gMonStripStatusButton.DropDownButtonWidth = 0
|
||||
Me.gMonStripStatusButton.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||
Me.gMonStripStatusButton.Name = "gMonStripStatusButton"
|
||||
Me.gMonStripStatusButton.Size = New System.Drawing.Size(93, 20)
|
||||
Me.gMonStripStatusButton.Size = New System.Drawing.Size(88, 17)
|
||||
Me.gMonStripStatusButton.Text = "Monitor Status:"
|
||||
Me.gMonStripStatusButton.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
|
||||
Me.gMonStripStatusButton.ToolTipText = "Click to toggle monitoring on or off."
|
||||
'
|
||||
'gMonMainMenu
|
||||
'
|
||||
Me.gMonMainMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonFile, Me.gMonSetup, Me.gMonTools, Me.gMonHelp})
|
||||
Me.gMonMainMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonFile, Me.gMonSetup, Me.gMonTools, Me.gMonHelp, Me.gMonNotification})
|
||||
Me.gMonMainMenu.Location = New System.Drawing.Point(0, 0)
|
||||
Me.gMonMainMenu.Name = "gMonMainMenu"
|
||||
Me.gMonMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System
|
||||
Me.gMonMainMenu.Size = New System.Drawing.Size(524, 24)
|
||||
Me.gMonMainMenu.TabIndex = 8
|
||||
Me.gMonMainMenu.TabIndex = 0
|
||||
Me.gMonMainMenu.Text = "MenuStrip1"
|
||||
'
|
||||
'gMonFile
|
||||
@@ -334,75 +338,89 @@ Partial Class frmMain
|
||||
Me.gMonSetupCustomVariables.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonSetupCustomVariables.Text = "Custom &Path Variables..."
|
||||
'
|
||||
'gMonSetupTags
|
||||
'
|
||||
Me.gMonSetupTags.Name = "gMonSetupTags"
|
||||
Me.gMonSetupTags.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonSetupTags.Text = "&Tags..."
|
||||
'
|
||||
'gMonTools
|
||||
'
|
||||
Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsGameList, Me.gMonToolsSyncMan, Me.gMonToolsCompact})
|
||||
Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsCleanMan, Me.gMonToolsCompact, Me.gMonToolsLog})
|
||||
Me.gMonTools.Name = "gMonTools"
|
||||
Me.gMonTools.Size = New System.Drawing.Size(47, 20)
|
||||
Me.gMonTools.Text = "&Tools"
|
||||
'
|
||||
'gMonToolsGameList
|
||||
'gMonToolsCleanMan
|
||||
'
|
||||
Me.gMonToolsGameList.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsGameImportOfficialList, Me.gMonToolsGameImportList, Me.gMonToolsGameExportList})
|
||||
Me.gMonToolsGameList.Name = "gMonToolsGameList"
|
||||
Me.gMonToolsGameList.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonToolsGameList.Text = "&Game List"
|
||||
'
|
||||
'gMonToolsGameImportOfficialList
|
||||
'
|
||||
Me.gMonToolsGameImportOfficialList.Name = "gMonToolsGameImportOfficialList"
|
||||
Me.gMonToolsGameImportOfficialList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonToolsGameImportOfficialList.Text = "Import from &Official List"
|
||||
'
|
||||
'gMonToolsGameImportList
|
||||
'
|
||||
Me.gMonToolsGameImportList.Name = "gMonToolsGameImportList"
|
||||
Me.gMonToolsGameImportList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonToolsGameImportList.Text = "I&mport Game List"
|
||||
'
|
||||
'gMonToolsGameExportList
|
||||
'
|
||||
Me.gMonToolsGameExportList.Name = "gMonToolsGameExportList"
|
||||
Me.gMonToolsGameExportList.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonToolsGameExportList.Text = "E&xport Game List"
|
||||
'
|
||||
'gMonToolsSyncMan
|
||||
'
|
||||
Me.gMonToolsSyncMan.Name = "gMonToolsSyncMan"
|
||||
Me.gMonToolsSyncMan.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonToolsSyncMan.Text = "Sync Ma&nifests"
|
||||
Me.gMonToolsCleanMan.Name = "gMonToolsCleanMan"
|
||||
Me.gMonToolsCleanMan.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonToolsCleanMan.Text = "Clean Local Ma&nifest"
|
||||
'
|
||||
'gMonToolsCompact
|
||||
'
|
||||
Me.gMonToolsCompact.Name = "gMonToolsCompact"
|
||||
Me.gMonToolsCompact.Size = New System.Drawing.Size(179, 22)
|
||||
Me.gMonToolsCompact.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonToolsCompact.Text = "&Compact Databases"
|
||||
'
|
||||
'gMonToolsLog
|
||||
'
|
||||
Me.gMonToolsLog.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonLogClear, Me.gMonLogSave})
|
||||
Me.gMonToolsLog.Name = "gMonToolsLog"
|
||||
Me.gMonToolsLog.Size = New System.Drawing.Size(184, 22)
|
||||
Me.gMonToolsLog.Text = "&Log"
|
||||
'
|
||||
'gMonLogClear
|
||||
'
|
||||
Me.gMonLogClear.Name = "gMonLogClear"
|
||||
Me.gMonLogClear.Size = New System.Drawing.Size(101, 22)
|
||||
Me.gMonLogClear.Text = "&Clear"
|
||||
'
|
||||
'gMonLogSave
|
||||
'
|
||||
Me.gMonLogSave.Name = "gMonLogSave"
|
||||
Me.gMonLogSave.Size = New System.Drawing.Size(101, 22)
|
||||
Me.gMonLogSave.Text = "&Save"
|
||||
'
|
||||
'gMonHelp
|
||||
'
|
||||
Me.gMonHelp.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonHelpManual, Me.gMonHelpCheckforUpdates, Me.gMonHelpAbout})
|
||||
Me.gMonHelp.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonHelpWebSite, Me.gMonHelpManual, Me.gMonHelpCheckforUpdates, Me.gMonHelpAbout})
|
||||
Me.gMonHelp.Name = "gMonHelp"
|
||||
Me.gMonHelp.Size = New System.Drawing.Size(44, 20)
|
||||
Me.gMonHelp.Text = "&Help"
|
||||
'
|
||||
'gMonHelpWebSite
|
||||
'
|
||||
Me.gMonHelpWebSite.Name = "gMonHelpWebSite"
|
||||
Me.gMonHelpWebSite.Size = New System.Drawing.Size(180, 22)
|
||||
Me.gMonHelpWebSite.Text = "&Official Web Site..."
|
||||
'
|
||||
'gMonHelpManual
|
||||
'
|
||||
Me.gMonHelpManual.Name = "gMonHelpManual"
|
||||
Me.gMonHelpManual.Size = New System.Drawing.Size(171, 22)
|
||||
Me.gMonHelpManual.Text = "Online &Manual"
|
||||
Me.gMonHelpManual.Size = New System.Drawing.Size(180, 22)
|
||||
Me.gMonHelpManual.Text = "Online &Manual..."
|
||||
'
|
||||
'gMonHelpCheckforUpdates
|
||||
'
|
||||
Me.gMonHelpCheckforUpdates.Name = "gMonHelpCheckforUpdates"
|
||||
Me.gMonHelpCheckforUpdates.Size = New System.Drawing.Size(171, 22)
|
||||
Me.gMonHelpCheckforUpdates.Text = "Check for Updates"
|
||||
Me.gMonHelpCheckforUpdates.Size = New System.Drawing.Size(180, 22)
|
||||
Me.gMonHelpCheckforUpdates.Text = "&Check for Updates..."
|
||||
'
|
||||
'gMonHelpAbout
|
||||
'
|
||||
Me.gMonHelpAbout.Name = "gMonHelpAbout"
|
||||
Me.gMonHelpAbout.Size = New System.Drawing.Size(171, 22)
|
||||
Me.gMonHelpAbout.Size = New System.Drawing.Size(180, 22)
|
||||
Me.gMonHelpAbout.Text = "&About"
|
||||
'
|
||||
'gMonNotification
|
||||
'
|
||||
Me.gMonNotification.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
|
||||
Me.gMonNotification.Name = "gMonNotification"
|
||||
Me.gMonNotification.Size = New System.Drawing.Size(82, 20)
|
||||
Me.gMonNotification.Text = "Notification"
|
||||
Me.gMonNotification.Visible = False
|
||||
'
|
||||
'pbIcon
|
||||
'
|
||||
Me.pbIcon.Location = New System.Drawing.Point(12, 36)
|
||||
@@ -414,10 +432,10 @@ Partial Class frmMain
|
||||
'
|
||||
'btnLogToggle
|
||||
'
|
||||
Me.btnLogToggle.Location = New System.Drawing.Point(437, 132)
|
||||
Me.btnLogToggle.Location = New System.Drawing.Point(437, 155)
|
||||
Me.btnLogToggle.Name = "btnLogToggle"
|
||||
Me.btnLogToggle.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnLogToggle.TabIndex = 1
|
||||
Me.btnLogToggle.TabIndex = 7
|
||||
Me.btnLogToggle.Text = "Show &Log"
|
||||
Me.btnLogToggle.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -427,91 +445,91 @@ Partial Class frmMain
|
||||
Me.lblGameTitle.Location = New System.Drawing.Point(66, 36)
|
||||
Me.lblGameTitle.Name = "lblGameTitle"
|
||||
Me.lblGameTitle.Size = New System.Drawing.Size(446, 16)
|
||||
Me.lblGameTitle.TabIndex = 10
|
||||
Me.lblGameTitle.TabIndex = 1
|
||||
Me.lblGameTitle.Text = "Game Title"
|
||||
'
|
||||
'lblLastAction
|
||||
'
|
||||
Me.lblLastAction.AutoEllipsis = True
|
||||
Me.lblLastAction.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblLastAction.Location = New System.Drawing.Point(12, 139)
|
||||
Me.lblLastAction.Location = New System.Drawing.Point(12, 165)
|
||||
Me.lblLastAction.Name = "lblLastAction"
|
||||
Me.lblLastAction.Size = New System.Drawing.Size(419, 16)
|
||||
Me.lblLastAction.TabIndex = 11
|
||||
Me.lblLastAction.Size = New System.Drawing.Size(419, 13)
|
||||
Me.lblLastAction.TabIndex = 9
|
||||
Me.lblLastAction.Text = "Last Action"
|
||||
'
|
||||
'lblLastActionTitle
|
||||
'
|
||||
Me.lblLastActionTitle.AutoSize = True
|
||||
Me.lblLastActionTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblLastActionTitle.Location = New System.Drawing.Point(12, 126)
|
||||
Me.lblLastActionTitle.Location = New System.Drawing.Point(12, 147)
|
||||
Me.lblLastActionTitle.Name = "lblLastActionTitle"
|
||||
Me.lblLastActionTitle.Size = New System.Drawing.Size(75, 13)
|
||||
Me.lblLastActionTitle.TabIndex = 12
|
||||
Me.lblLastActionTitle.TabIndex = 8
|
||||
Me.lblLastActionTitle.Text = "Last Action:"
|
||||
'
|
||||
'lblTimeTitle
|
||||
'
|
||||
Me.lblTimeTitle.AutoSize = True
|
||||
Me.lblTimeTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblTimeTitle.Location = New System.Drawing.Point(66, 55)
|
||||
Me.lblTimeTitle.Name = "lblTimeTitle"
|
||||
Me.lblTimeTitle.Size = New System.Drawing.Size(75, 13)
|
||||
Me.lblTimeTitle.TabIndex = 13
|
||||
Me.lblTimeTitle.Text = "Time Spent:"
|
||||
'
|
||||
'lblTimeSpent
|
||||
'
|
||||
Me.lblTimeSpent.AutoSize = True
|
||||
Me.lblTimeSpent.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblTimeSpent.Location = New System.Drawing.Point(139, 55)
|
||||
Me.lblTimeSpent.AutoEllipsis = True
|
||||
Me.lblTimeSpent.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.lblTimeSpent.Location = New System.Drawing.Point(66, 110)
|
||||
Me.lblTimeSpent.Name = "lblTimeSpent"
|
||||
Me.lblTimeSpent.Size = New System.Drawing.Size(44, 13)
|
||||
Me.lblTimeSpent.TabIndex = 14
|
||||
Me.lblTimeSpent.Size = New System.Drawing.Size(446, 16)
|
||||
Me.lblTimeSpent.TabIndex = 5
|
||||
Me.lblTimeSpent.Text = "0 Hours"
|
||||
'
|
||||
'txtGameInfo
|
||||
'
|
||||
Me.txtGameInfo.BorderStyle = System.Windows.Forms.BorderStyle.None
|
||||
Me.txtGameInfo.Cursor = System.Windows.Forms.Cursors.Default
|
||||
Me.txtGameInfo.Location = New System.Drawing.Point(69, 71)
|
||||
Me.txtGameInfo.Multiline = True
|
||||
Me.txtGameInfo.Name = "txtGameInfo"
|
||||
Me.txtGameInfo.ReadOnly = True
|
||||
Me.txtGameInfo.Size = New System.Drawing.Size(443, 52)
|
||||
Me.txtGameInfo.TabIndex = 0
|
||||
Me.txtGameInfo.TabStop = False
|
||||
Me.txtGameInfo.WordWrap = False
|
||||
'
|
||||
'btnCancelOperation
|
||||
'
|
||||
Me.btnCancelOperation.Location = New System.Drawing.Point(437, 103)
|
||||
Me.btnCancelOperation.Location = New System.Drawing.Point(437, 126)
|
||||
Me.btnCancelOperation.Name = "btnCancelOperation"
|
||||
Me.btnCancelOperation.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancelOperation.TabIndex = 0
|
||||
Me.btnCancelOperation.TabIndex = 6
|
||||
Me.btnCancelOperation.Text = "&Cancel"
|
||||
Me.btnCancelOperation.UseVisualStyleBackColor = True
|
||||
'
|
||||
'gMonSetupTags
|
||||
'lblStatus1
|
||||
'
|
||||
Me.gMonSetupTags.Name = "gMonSetupTags"
|
||||
Me.gMonSetupTags.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonSetupTags.Text = "&Tags..."
|
||||
Me.lblStatus1.AutoEllipsis = True
|
||||
Me.lblStatus1.Location = New System.Drawing.Point(66, 58)
|
||||
Me.lblStatus1.Name = "lblStatus1"
|
||||
Me.lblStatus1.Size = New System.Drawing.Size(446, 13)
|
||||
Me.lblStatus1.TabIndex = 2
|
||||
'
|
||||
'gMonTraySetupTags
|
||||
'lblStatus2
|
||||
'
|
||||
Me.gMonTraySetupTags.Name = "gMonTraySetupTags"
|
||||
Me.gMonTraySetupTags.Size = New System.Drawing.Size(201, 22)
|
||||
Me.gMonTraySetupTags.Text = "&Tags"
|
||||
Me.lblStatus2.AutoEllipsis = True
|
||||
Me.lblStatus2.Location = New System.Drawing.Point(66, 74)
|
||||
Me.lblStatus2.Name = "lblStatus2"
|
||||
Me.lblStatus2.Size = New System.Drawing.Size(446, 13)
|
||||
Me.lblStatus2.TabIndex = 3
|
||||
'
|
||||
'lblStatus3
|
||||
'
|
||||
Me.lblStatus3.AutoEllipsis = True
|
||||
Me.lblStatus3.Location = New System.Drawing.Point(66, 90)
|
||||
Me.lblStatus3.Name = "lblStatus3"
|
||||
Me.lblStatus3.Size = New System.Drawing.Size(446, 13)
|
||||
Me.lblStatus3.TabIndex = 4
|
||||
'
|
||||
'pbTime
|
||||
'
|
||||
Me.pbTime.Location = New System.Drawing.Point(36, 106)
|
||||
Me.pbTime.Name = "pbTime"
|
||||
Me.pbTime.Size = New System.Drawing.Size(24, 24)
|
||||
Me.pbTime.TabIndex = 18
|
||||
Me.pbTime.TabStop = False
|
||||
'
|
||||
'frmMain
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(524, 372)
|
||||
Me.ClientSize = New System.Drawing.Size(524, 401)
|
||||
Me.Controls.Add(Me.pbTime)
|
||||
Me.Controls.Add(Me.lblStatus3)
|
||||
Me.Controls.Add(Me.lblStatus2)
|
||||
Me.Controls.Add(Me.lblStatus1)
|
||||
Me.Controls.Add(Me.btnCancelOperation)
|
||||
Me.Controls.Add(Me.txtGameInfo)
|
||||
Me.Controls.Add(Me.lblTimeSpent)
|
||||
Me.Controls.Add(Me.lblTimeTitle)
|
||||
Me.Controls.Add(Me.lblLastActionTitle)
|
||||
Me.Controls.Add(Me.lblLastAction)
|
||||
Me.Controls.Add(Me.lblGameTitle)
|
||||
@@ -523,6 +541,7 @@ Partial Class frmMain
|
||||
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
|
||||
Me.KeyPreview = True
|
||||
Me.MainMenuStrip = Me.gMonMainMenu
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
@@ -536,6 +555,7 @@ Partial Class frmMain
|
||||
Me.gMonMainMenu.ResumeLayout(False)
|
||||
Me.gMonMainMenu.PerformLayout()
|
||||
CType(Me.pbIcon, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.pbTime, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
@@ -565,29 +585,16 @@ Partial Class frmMain
|
||||
Friend WithEvents gMonHelpAbout As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTraySetupGameManager As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTraySetupCustomVariables As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonStripStatusButton As System.Windows.Forms.ToolStripSplitButton
|
||||
Friend WithEvents pbIcon As System.Windows.Forms.PictureBox
|
||||
Friend WithEvents btnLogToggle As System.Windows.Forms.Button
|
||||
Friend WithEvents lblGameTitle As System.Windows.Forms.Label
|
||||
Friend WithEvents lblLastAction As System.Windows.Forms.Label
|
||||
Friend WithEvents lblLastActionTitle As System.Windows.Forms.Label
|
||||
Friend WithEvents gMonTools As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsSyncMan As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayTools As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsSyncMan As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonSetupAddWizard As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTraySetupAddWizard As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents lblTimeTitle As System.Windows.Forms.Label
|
||||
Friend WithEvents lblTimeSpent As System.Windows.Forms.Label
|
||||
Friend WithEvents txtGameInfo As System.Windows.Forms.TextBox
|
||||
Friend WithEvents gMonToolsGameList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsGameImportOfficialList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsGameImportList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsGameExportList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsGameList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsGameImportList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsGameExportList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsGameImportOfficialList As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonSetupGameManager As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonSetupCustomVariables As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsCompact As System.Windows.Forms.ToolStripMenuItem
|
||||
@@ -595,7 +602,23 @@ Partial Class frmMain
|
||||
Friend WithEvents gMonHelpManual As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonHelpCheckforUpdates As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents btnCancelOperation As System.Windows.Forms.Button
|
||||
Friend WithEvents gMonStripAdminButton As ToolStripSplitButton
|
||||
Friend WithEvents gMonTraySetupTags As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonSetupTags As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents lblStatus1 As Label
|
||||
Friend WithEvents lblStatus2 As Label
|
||||
Friend WithEvents lblStatus3 As Label
|
||||
Friend WithEvents gMonNotification As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayNotification As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonHelpWebSite As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents pbTime As System.Windows.Forms.PictureBox
|
||||
Friend WithEvents gMonTrayToolsCleanMan As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsCleanMan As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents gMonToolsLog As ToolStripMenuItem
|
||||
Friend WithEvents gMonLogClear As ToolStripMenuItem
|
||||
Friend WithEvents gMonLogSave As ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayToolsLog As ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayLogClear As ToolStripMenuItem
|
||||
Friend WithEvents gMonTrayLogSave As ToolStripMenuItem
|
||||
Friend WithEvents gMonStripAdminButton As System.Windows.Forms.ToolStripStatusLabel
|
||||
Friend WithEvents gMonStripStatusButton As System.Windows.Forms.ToolStripStatusLabel
|
||||
End Class
|
||||
|
||||
+604
-334
File diff suppressed because it is too large
Load Diff
Generated
+387
-117
@@ -24,27 +24,55 @@ Partial Class frmSettings
|
||||
Private Sub InitializeComponent()
|
||||
Me.chkMonitorOnStartup = New System.Windows.Forms.CheckBox()
|
||||
Me.chkBackupConfirm = New System.Windows.Forms.CheckBox()
|
||||
Me.grpGeneral = New System.Windows.Forms.GroupBox()
|
||||
Me.chkTimeTracking = New System.Windows.Forms.CheckBox()
|
||||
Me.grpStartup = New System.Windows.Forms.GroupBox()
|
||||
Me.chkStartWindows = New System.Windows.Forms.CheckBox()
|
||||
Me.chkStartToTray = New System.Windows.Forms.CheckBox()
|
||||
Me.chkAutoSaveLog = New System.Windows.Forms.CheckBox()
|
||||
Me.btnOptionalFields = New System.Windows.Forms.Button()
|
||||
Me.chkTimeTracking = New System.Windows.Forms.CheckBox()
|
||||
Me.chkSync = New System.Windows.Forms.CheckBox()
|
||||
Me.chkShowDetectionTips = New System.Windows.Forms.CheckBox()
|
||||
Me.chkStartToTray = New System.Windows.Forms.CheckBox()
|
||||
Me.grpPaths = New System.Windows.Forms.GroupBox()
|
||||
Me.grpFolderOptions = New System.Windows.Forms.GroupBox()
|
||||
Me.btnBackupFolder = New System.Windows.Forms.Button()
|
||||
Me.lblBackupFolder = New System.Windows.Forms.Label()
|
||||
Me.txtBackupFolder = New System.Windows.Forms.TextBox()
|
||||
Me.fbBrowser = New System.Windows.Forms.FolderBrowserDialog()
|
||||
Me.chkCreateFolder = New System.Windows.Forms.CheckBox()
|
||||
Me.btnSave = New System.Windows.Forms.Button()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.grpBackup = New System.Windows.Forms.GroupBox()
|
||||
Me.lblMinutes = New System.Windows.Forms.Label()
|
||||
Me.nudSupressBackupThreshold = New System.Windows.Forms.NumericUpDown()
|
||||
Me.chkSupressBackup = New System.Windows.Forms.CheckBox()
|
||||
Me.chkCheckSum = New System.Windows.Forms.CheckBox()
|
||||
Me.chkRestoreOnLaunch = New System.Windows.Forms.CheckBox()
|
||||
Me.chkOverwriteWarning = New System.Windows.Forms.CheckBox()
|
||||
Me.chkCreateFolder = New System.Windows.Forms.CheckBox()
|
||||
Me.grpGeneral.SuspendLayout()
|
||||
Me.grpPaths.SuspendLayout()
|
||||
Me.grpBackup.SuspendLayout()
|
||||
Me.grp7zGeneral = New System.Windows.Forms.GroupBox()
|
||||
Me.cboCompression = New System.Windows.Forms.ComboBox()
|
||||
Me.lblCompression = New System.Windows.Forms.Label()
|
||||
Me.btn7zLocation = New System.Windows.Forms.Button()
|
||||
Me.txt7zLocation = New System.Windows.Forms.TextBox()
|
||||
Me.lblLocation = New System.Windows.Forms.Label()
|
||||
Me.txt7zArguments = New System.Windows.Forms.TextBox()
|
||||
Me.lblArguments = New System.Windows.Forms.Label()
|
||||
Me.lbl7zCopyright = New System.Windows.Forms.Label()
|
||||
Me.lbl7zProduct = New System.Windows.Forms.Label()
|
||||
Me.btnDefaults = New System.Windows.Forms.Button()
|
||||
Me.pnlBackup = New System.Windows.Forms.Panel()
|
||||
Me.pnl7z = New System.Windows.Forms.Panel()
|
||||
Me.grp7zAdvanced = New System.Windows.Forms.GroupBox()
|
||||
Me.grp7zInformation = New System.Windows.Forms.GroupBox()
|
||||
Me.pnlGeneral = New System.Windows.Forms.Panel()
|
||||
Me.grpGameData = New System.Windows.Forms.GroupBox()
|
||||
Me.lstSettings = New System.Windows.Forms.ListBox()
|
||||
Me.grpStartup.SuspendLayout()
|
||||
Me.grpFolderOptions.SuspendLayout()
|
||||
CType(Me.nudSupressBackupThreshold, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.grp7zGeneral.SuspendLayout()
|
||||
Me.pnlBackup.SuspendLayout()
|
||||
Me.pnl7z.SuspendLayout()
|
||||
Me.grp7zAdvanced.SuspendLayout()
|
||||
Me.grp7zInformation.SuspendLayout()
|
||||
Me.pnlGeneral.SuspendLayout()
|
||||
Me.grpGameData.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'chkMonitorOnStartup
|
||||
@@ -60,37 +88,24 @@ Partial Class frmSettings
|
||||
'chkBackupConfirm
|
||||
'
|
||||
Me.chkBackupConfirm.AutoSize = True
|
||||
Me.chkBackupConfirm.Location = New System.Drawing.Point(6, 19)
|
||||
Me.chkBackupConfirm.Location = New System.Drawing.Point(6, 88)
|
||||
Me.chkBackupConfirm.Name = "chkBackupConfirm"
|
||||
Me.chkBackupConfirm.Size = New System.Drawing.Size(160, 17)
|
||||
Me.chkBackupConfirm.TabIndex = 0
|
||||
Me.chkBackupConfirm.TabIndex = 1
|
||||
Me.chkBackupConfirm.Text = "Disable backup confirmation"
|
||||
Me.chkBackupConfirm.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpGeneral
|
||||
'grpStartup
|
||||
'
|
||||
Me.grpGeneral.Controls.Add(Me.chkTimeTracking)
|
||||
Me.grpGeneral.Controls.Add(Me.chkStartWindows)
|
||||
Me.grpGeneral.Controls.Add(Me.chkSync)
|
||||
Me.grpGeneral.Controls.Add(Me.chkShowDetectionTips)
|
||||
Me.grpGeneral.Controls.Add(Me.chkStartToTray)
|
||||
Me.grpGeneral.Controls.Add(Me.chkMonitorOnStartup)
|
||||
Me.grpGeneral.Location = New System.Drawing.Point(12, 12)
|
||||
Me.grpGeneral.Name = "grpGeneral"
|
||||
Me.grpGeneral.Size = New System.Drawing.Size(360, 165)
|
||||
Me.grpGeneral.TabIndex = 0
|
||||
Me.grpGeneral.TabStop = False
|
||||
Me.grpGeneral.Text = "General"
|
||||
'
|
||||
'chkTimeTracking
|
||||
'
|
||||
Me.chkTimeTracking.AutoSize = True
|
||||
Me.chkTimeTracking.Location = New System.Drawing.Point(6, 111)
|
||||
Me.chkTimeTracking.Name = "chkTimeTracking"
|
||||
Me.chkTimeTracking.Size = New System.Drawing.Size(122, 17)
|
||||
Me.chkTimeTracking.TabIndex = 5
|
||||
Me.chkTimeTracking.Text = "Enable time tracking"
|
||||
Me.chkTimeTracking.UseVisualStyleBackColor = True
|
||||
Me.grpStartup.Controls.Add(Me.chkStartWindows)
|
||||
Me.grpStartup.Controls.Add(Me.chkStartToTray)
|
||||
Me.grpStartup.Controls.Add(Me.chkMonitorOnStartup)
|
||||
Me.grpStartup.Location = New System.Drawing.Point(6, 12)
|
||||
Me.grpStartup.Name = "grpStartup"
|
||||
Me.grpStartup.Size = New System.Drawing.Size(354, 90)
|
||||
Me.grpStartup.TabIndex = 0
|
||||
Me.grpStartup.TabStop = False
|
||||
Me.grpStartup.Text = "Startup"
|
||||
'
|
||||
'chkStartWindows
|
||||
'
|
||||
@@ -102,26 +117,6 @@ Partial Class frmSettings
|
||||
Me.chkStartWindows.Text = "Start with Windows"
|
||||
Me.chkStartWindows.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkSync
|
||||
'
|
||||
Me.chkSync.AutoSize = True
|
||||
Me.chkSync.Location = New System.Drawing.Point(6, 134)
|
||||
Me.chkSync.Name = "chkSync"
|
||||
Me.chkSync.Size = New System.Drawing.Size(208, 17)
|
||||
Me.chkSync.TabIndex = 4
|
||||
Me.chkSync.Text = "Sync game list data with backup folder"
|
||||
Me.chkSync.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkShowDetectionTips
|
||||
'
|
||||
Me.chkShowDetectionTips.AutoSize = True
|
||||
Me.chkShowDetectionTips.Location = New System.Drawing.Point(6, 88)
|
||||
Me.chkShowDetectionTips.Name = "chkShowDetectionTips"
|
||||
Me.chkShowDetectionTips.Size = New System.Drawing.Size(136, 17)
|
||||
Me.chkShowDetectionTips.TabIndex = 3
|
||||
Me.chkShowDetectionTips.Text = "Show detection tooltips"
|
||||
Me.chkShowDetectionTips.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkStartToTray
|
||||
'
|
||||
Me.chkStartToTray.AutoSize = True
|
||||
@@ -132,21 +127,71 @@ Partial Class frmSettings
|
||||
Me.chkStartToTray.Text = "Start to system tray"
|
||||
Me.chkStartToTray.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpPaths
|
||||
'chkAutoSaveLog
|
||||
'
|
||||
Me.grpPaths.Controls.Add(Me.btnBackupFolder)
|
||||
Me.grpPaths.Controls.Add(Me.lblBackupFolder)
|
||||
Me.grpPaths.Controls.Add(Me.txtBackupFolder)
|
||||
Me.grpPaths.Location = New System.Drawing.Point(12, 331)
|
||||
Me.grpPaths.Name = "grpPaths"
|
||||
Me.grpPaths.Size = New System.Drawing.Size(360, 60)
|
||||
Me.grpPaths.TabIndex = 2
|
||||
Me.grpPaths.TabStop = False
|
||||
Me.grpPaths.Text = "Paths"
|
||||
Me.chkAutoSaveLog.AutoSize = True
|
||||
Me.chkAutoSaveLog.Location = New System.Drawing.Point(6, 204)
|
||||
Me.chkAutoSaveLog.Name = "chkAutoSaveLog"
|
||||
Me.chkAutoSaveLog.Size = New System.Drawing.Size(231, 17)
|
||||
Me.chkAutoSaveLog.TabIndex = 7
|
||||
Me.chkAutoSaveLog.Text = "Autosave log when max length is exceeded"
|
||||
Me.chkAutoSaveLog.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnOptionalFields
|
||||
'
|
||||
Me.btnOptionalFields.Location = New System.Drawing.Point(110, 38)
|
||||
Me.btnOptionalFields.Name = "btnOptionalFields"
|
||||
Me.btnOptionalFields.Size = New System.Drawing.Size(134, 23)
|
||||
Me.btnOptionalFields.TabIndex = 6
|
||||
Me.btnOptionalFields.Text = "Choose &Optional Fields..."
|
||||
Me.btnOptionalFields.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkTimeTracking
|
||||
'
|
||||
Me.chkTimeTracking.AutoSize = True
|
||||
Me.chkTimeTracking.Location = New System.Drawing.Point(6, 19)
|
||||
Me.chkTimeTracking.Name = "chkTimeTracking"
|
||||
Me.chkTimeTracking.Size = New System.Drawing.Size(122, 17)
|
||||
Me.chkTimeTracking.TabIndex = 4
|
||||
Me.chkTimeTracking.Text = "Enable time tracking"
|
||||
Me.chkTimeTracking.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkSync
|
||||
'
|
||||
Me.chkSync.AutoSize = True
|
||||
Me.chkSync.Location = New System.Drawing.Point(6, 42)
|
||||
Me.chkSync.Name = "chkSync"
|
||||
Me.chkSync.Size = New System.Drawing.Size(98, 17)
|
||||
Me.chkSync.TabIndex = 5
|
||||
Me.chkSync.Text = "Enable syncing"
|
||||
Me.chkSync.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkShowDetectionTips
|
||||
'
|
||||
Me.chkShowDetectionTips.AutoSize = True
|
||||
Me.chkShowDetectionTips.Location = New System.Drawing.Point(6, 181)
|
||||
Me.chkShowDetectionTips.Name = "chkShowDetectionTips"
|
||||
Me.chkShowDetectionTips.Size = New System.Drawing.Size(159, 17)
|
||||
Me.chkShowDetectionTips.TabIndex = 3
|
||||
Me.chkShowDetectionTips.Text = "Show detection notifications"
|
||||
Me.chkShowDetectionTips.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpFolderOptions
|
||||
'
|
||||
Me.grpFolderOptions.Controls.Add(Me.btnBackupFolder)
|
||||
Me.grpFolderOptions.Controls.Add(Me.lblBackupFolder)
|
||||
Me.grpFolderOptions.Controls.Add(Me.txtBackupFolder)
|
||||
Me.grpFolderOptions.Controls.Add(Me.chkCreateFolder)
|
||||
Me.grpFolderOptions.Location = New System.Drawing.Point(6, 12)
|
||||
Me.grpFolderOptions.Name = "grpFolderOptions"
|
||||
Me.grpFolderOptions.Size = New System.Drawing.Size(354, 70)
|
||||
Me.grpFolderOptions.TabIndex = 1
|
||||
Me.grpFolderOptions.TabStop = False
|
||||
Me.grpFolderOptions.Text = "Folders"
|
||||
'
|
||||
'btnBackupFolder
|
||||
'
|
||||
Me.btnBackupFolder.Location = New System.Drawing.Point(318, 23)
|
||||
Me.btnBackupFolder.Location = New System.Drawing.Point(313, 17)
|
||||
Me.btnBackupFolder.Name = "btnBackupFolder"
|
||||
Me.btnBackupFolder.Size = New System.Drawing.Size(27, 20)
|
||||
Me.btnBackupFolder.TabIndex = 2
|
||||
@@ -156,133 +201,335 @@ Partial Class frmSettings
|
||||
'lblBackupFolder
|
||||
'
|
||||
Me.lblBackupFolder.AutoSize = True
|
||||
Me.lblBackupFolder.Location = New System.Drawing.Point(6, 27)
|
||||
Me.lblBackupFolder.Location = New System.Drawing.Point(6, 20)
|
||||
Me.lblBackupFolder.Name = "lblBackupFolder"
|
||||
Me.lblBackupFolder.Size = New System.Drawing.Size(76, 13)
|
||||
Me.lblBackupFolder.Size = New System.Drawing.Size(79, 13)
|
||||
Me.lblBackupFolder.TabIndex = 0
|
||||
Me.lblBackupFolder.Text = "Backup Folder"
|
||||
Me.lblBackupFolder.Text = "Backup Folder:"
|
||||
'
|
||||
'txtBackupFolder
|
||||
'
|
||||
Me.txtBackupFolder.Location = New System.Drawing.Point(88, 24)
|
||||
Me.txtBackupFolder.Location = New System.Drawing.Point(91, 17)
|
||||
Me.txtBackupFolder.Name = "txtBackupFolder"
|
||||
Me.txtBackupFolder.Size = New System.Drawing.Size(224, 20)
|
||||
Me.txtBackupFolder.Size = New System.Drawing.Size(216, 20)
|
||||
Me.txtBackupFolder.TabIndex = 1
|
||||
'
|
||||
'chkCreateFolder
|
||||
'
|
||||
Me.chkCreateFolder.AutoSize = True
|
||||
Me.chkCreateFolder.Location = New System.Drawing.Point(9, 43)
|
||||
Me.chkCreateFolder.Name = "chkCreateFolder"
|
||||
Me.chkCreateFolder.Size = New System.Drawing.Size(186, 17)
|
||||
Me.chkCreateFolder.TabIndex = 3
|
||||
Me.chkCreateFolder.Text = "Create a sub-folder for each game"
|
||||
Me.chkCreateFolder.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnSave
|
||||
'
|
||||
Me.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
Me.btnSave.Location = New System.Drawing.Point(216, 397)
|
||||
Me.btnSave.Location = New System.Drawing.Point(384, 321)
|
||||
Me.btnSave.Name = "btnSave"
|
||||
Me.btnSave.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnSave.TabIndex = 3
|
||||
Me.btnSave.TabIndex = 5
|
||||
Me.btnSave.Text = "&Save"
|
||||
Me.btnSave.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.btnCancel.Location = New System.Drawing.Point(297, 397)
|
||||
Me.btnCancel.Location = New System.Drawing.Point(465, 321)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 4
|
||||
Me.btnCancel.TabIndex = 6
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpBackup
|
||||
'lblMinutes
|
||||
'
|
||||
Me.grpBackup.Controls.Add(Me.chkCheckSum)
|
||||
Me.grpBackup.Controls.Add(Me.chkRestoreOnLaunch)
|
||||
Me.grpBackup.Controls.Add(Me.chkOverwriteWarning)
|
||||
Me.grpBackup.Controls.Add(Me.chkCreateFolder)
|
||||
Me.grpBackup.Controls.Add(Me.chkBackupConfirm)
|
||||
Me.grpBackup.Location = New System.Drawing.Point(12, 183)
|
||||
Me.grpBackup.Name = "grpBackup"
|
||||
Me.grpBackup.Size = New System.Drawing.Size(360, 142)
|
||||
Me.grpBackup.TabIndex = 1
|
||||
Me.grpBackup.TabStop = False
|
||||
Me.grpBackup.Text = "Backup and Restore Options"
|
||||
Me.lblMinutes.AutoSize = True
|
||||
Me.lblMinutes.Location = New System.Drawing.Point(286, 181)
|
||||
Me.lblMinutes.Name = "lblMinutes"
|
||||
Me.lblMinutes.Size = New System.Drawing.Size(43, 13)
|
||||
Me.lblMinutes.TabIndex = 7
|
||||
Me.lblMinutes.Text = "minutes"
|
||||
'
|
||||
'nudSupressBackupThreshold
|
||||
'
|
||||
Me.nudSupressBackupThreshold.Location = New System.Drawing.Point(229, 179)
|
||||
Me.nudSupressBackupThreshold.Maximum = New Decimal(New Integer() {999, 0, 0, 0})
|
||||
Me.nudSupressBackupThreshold.Name = "nudSupressBackupThreshold"
|
||||
Me.nudSupressBackupThreshold.Size = New System.Drawing.Size(51, 20)
|
||||
Me.nudSupressBackupThreshold.TabIndex = 6
|
||||
'
|
||||
'chkSupressBackup
|
||||
'
|
||||
Me.chkSupressBackup.AutoSize = True
|
||||
Me.chkSupressBackup.Location = New System.Drawing.Point(6, 180)
|
||||
Me.chkSupressBackup.Name = "chkSupressBackup"
|
||||
Me.chkSupressBackup.Size = New System.Drawing.Size(217, 17)
|
||||
Me.chkSupressBackup.TabIndex = 5
|
||||
Me.chkSupressBackup.Text = "Backup only when session time exceeds"
|
||||
Me.chkSupressBackup.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkCheckSum
|
||||
'
|
||||
Me.chkCheckSum.AutoSize = True
|
||||
Me.chkCheckSum.Location = New System.Drawing.Point(6, 111)
|
||||
Me.chkCheckSum.Location = New System.Drawing.Point(6, 134)
|
||||
Me.chkCheckSum.Name = "chkCheckSum"
|
||||
Me.chkCheckSum.Size = New System.Drawing.Size(195, 17)
|
||||
Me.chkCheckSum.TabIndex = 4
|
||||
Me.chkCheckSum.TabIndex = 3
|
||||
Me.chkCheckSum.Text = "Verify backup files with a checksum"
|
||||
Me.chkCheckSum.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkRestoreOnLaunch
|
||||
'
|
||||
Me.chkRestoreOnLaunch.AutoSize = True
|
||||
Me.chkRestoreOnLaunch.Location = New System.Drawing.Point(6, 88)
|
||||
Me.chkRestoreOnLaunch.Location = New System.Drawing.Point(6, 157)
|
||||
Me.chkRestoreOnLaunch.Name = "chkRestoreOnLaunch"
|
||||
Me.chkRestoreOnLaunch.Size = New System.Drawing.Size(249, 17)
|
||||
Me.chkRestoreOnLaunch.TabIndex = 3
|
||||
Me.chkRestoreOnLaunch.Text = "Check for new backup files to restore at launch"
|
||||
Me.chkRestoreOnLaunch.Size = New System.Drawing.Size(257, 17)
|
||||
Me.chkRestoreOnLaunch.TabIndex = 4
|
||||
Me.chkRestoreOnLaunch.Text = "Notify when there are new backup files to restore"
|
||||
Me.chkRestoreOnLaunch.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkOverwriteWarning
|
||||
'
|
||||
Me.chkOverwriteWarning.AutoSize = True
|
||||
Me.chkOverwriteWarning.Location = New System.Drawing.Point(6, 65)
|
||||
Me.chkOverwriteWarning.Location = New System.Drawing.Point(6, 111)
|
||||
Me.chkOverwriteWarning.Name = "chkOverwriteWarning"
|
||||
Me.chkOverwriteWarning.Size = New System.Drawing.Size(139, 17)
|
||||
Me.chkOverwriteWarning.TabIndex = 2
|
||||
Me.chkOverwriteWarning.Text = "Show overwrite warning"
|
||||
Me.chkOverwriteWarning.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkCreateFolder
|
||||
'grp7zGeneral
|
||||
'
|
||||
Me.chkCreateFolder.AutoSize = True
|
||||
Me.chkCreateFolder.Location = New System.Drawing.Point(6, 42)
|
||||
Me.chkCreateFolder.Name = "chkCreateFolder"
|
||||
Me.chkCreateFolder.Size = New System.Drawing.Size(211, 17)
|
||||
Me.chkCreateFolder.TabIndex = 1
|
||||
Me.chkCreateFolder.Text = "Create a sub-folder for each application"
|
||||
Me.chkCreateFolder.UseVisualStyleBackColor = True
|
||||
Me.grp7zGeneral.Controls.Add(Me.cboCompression)
|
||||
Me.grp7zGeneral.Controls.Add(Me.lblCompression)
|
||||
Me.grp7zGeneral.Location = New System.Drawing.Point(6, 12)
|
||||
Me.grp7zGeneral.Name = "grp7zGeneral"
|
||||
Me.grp7zGeneral.Size = New System.Drawing.Size(354, 50)
|
||||
Me.grp7zGeneral.TabIndex = 0
|
||||
Me.grp7zGeneral.TabStop = False
|
||||
Me.grp7zGeneral.Text = "General"
|
||||
'
|
||||
'cboCompression
|
||||
'
|
||||
Me.cboCompression.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.cboCompression.FormattingEnabled = True
|
||||
Me.cboCompression.Location = New System.Drawing.Point(110, 17)
|
||||
Me.cboCompression.Name = "cboCompression"
|
||||
Me.cboCompression.Size = New System.Drawing.Size(238, 21)
|
||||
Me.cboCompression.TabIndex = 1
|
||||
'
|
||||
'lblCompression
|
||||
'
|
||||
Me.lblCompression.AutoSize = True
|
||||
Me.lblCompression.Location = New System.Drawing.Point(6, 20)
|
||||
Me.lblCompression.Name = "lblCompression"
|
||||
Me.lblCompression.Size = New System.Drawing.Size(70, 13)
|
||||
Me.lblCompression.TabIndex = 0
|
||||
Me.lblCompression.Text = "Compression:"
|
||||
'
|
||||
'btn7zLocation
|
||||
'
|
||||
Me.btn7zLocation.Location = New System.Drawing.Point(313, 41)
|
||||
Me.btn7zLocation.Name = "btn7zLocation"
|
||||
Me.btn7zLocation.Size = New System.Drawing.Size(27, 20)
|
||||
Me.btn7zLocation.TabIndex = 5
|
||||
Me.btn7zLocation.Text = "..."
|
||||
Me.btn7zLocation.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txt7zLocation
|
||||
'
|
||||
Me.txt7zLocation.Location = New System.Drawing.Point(110, 41)
|
||||
Me.txt7zLocation.Name = "txt7zLocation"
|
||||
Me.txt7zLocation.Size = New System.Drawing.Size(197, 20)
|
||||
Me.txt7zLocation.TabIndex = 4
|
||||
'
|
||||
'lblLocation
|
||||
'
|
||||
Me.lblLocation.AutoSize = True
|
||||
Me.lblLocation.Location = New System.Drawing.Point(6, 44)
|
||||
Me.lblLocation.Name = "lblLocation"
|
||||
Me.lblLocation.Size = New System.Drawing.Size(89, 13)
|
||||
Me.lblLocation.TabIndex = 4
|
||||
Me.lblLocation.Text = "Custom Location:"
|
||||
'
|
||||
'txt7zArguments
|
||||
'
|
||||
Me.txt7zArguments.Location = New System.Drawing.Point(110, 15)
|
||||
Me.txt7zArguments.Name = "txt7zArguments"
|
||||
Me.txt7zArguments.Size = New System.Drawing.Size(238, 20)
|
||||
Me.txt7zArguments.TabIndex = 3
|
||||
'
|
||||
'lblArguments
|
||||
'
|
||||
Me.lblArguments.AutoSize = True
|
||||
Me.lblArguments.Location = New System.Drawing.Point(6, 20)
|
||||
Me.lblArguments.Name = "lblArguments"
|
||||
Me.lblArguments.Size = New System.Drawing.Size(98, 13)
|
||||
Me.lblArguments.TabIndex = 2
|
||||
Me.lblArguments.Text = "Custom Arguments:"
|
||||
'
|
||||
'lbl7zCopyright
|
||||
'
|
||||
Me.lbl7zCopyright.AutoEllipsis = True
|
||||
Me.lbl7zCopyright.Location = New System.Drawing.Point(9, 34)
|
||||
Me.lbl7zCopyright.Name = "lbl7zCopyright"
|
||||
Me.lbl7zCopyright.Size = New System.Drawing.Size(339, 17)
|
||||
Me.lbl7zCopyright.TabIndex = 8
|
||||
Me.lbl7zCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'lbl7zProduct
|
||||
'
|
||||
Me.lbl7zProduct.AutoEllipsis = True
|
||||
Me.lbl7zProduct.Location = New System.Drawing.Point(9, 17)
|
||||
Me.lbl7zProduct.Name = "lbl7zProduct"
|
||||
Me.lbl7zProduct.Size = New System.Drawing.Size(339, 17)
|
||||
Me.lbl7zProduct.TabIndex = 7
|
||||
Me.lbl7zProduct.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'btnDefaults
|
||||
'
|
||||
Me.btnDefaults.Location = New System.Drawing.Point(12, 321)
|
||||
Me.btnDefaults.Name = "btnDefaults"
|
||||
Me.btnDefaults.Size = New System.Drawing.Size(110, 23)
|
||||
Me.btnDefaults.TabIndex = 4
|
||||
Me.btnDefaults.Text = "Set &Defaults"
|
||||
Me.btnDefaults.UseVisualStyleBackColor = True
|
||||
'
|
||||
'pnlBackup
|
||||
'
|
||||
Me.pnlBackup.Controls.Add(Me.lblMinutes)
|
||||
Me.pnlBackup.Controls.Add(Me.nudSupressBackupThreshold)
|
||||
Me.pnlBackup.Controls.Add(Me.grpFolderOptions)
|
||||
Me.pnlBackup.Controls.Add(Me.chkSupressBackup)
|
||||
Me.pnlBackup.Controls.Add(Me.chkBackupConfirm)
|
||||
Me.pnlBackup.Controls.Add(Me.chkCheckSum)
|
||||
Me.pnlBackup.Controls.Add(Me.chkOverwriteWarning)
|
||||
Me.pnlBackup.Controls.Add(Me.chkRestoreOnLaunch)
|
||||
Me.pnlBackup.Location = New System.Drawing.Point(180, 0)
|
||||
Me.pnlBackup.Name = "pnlBackup"
|
||||
Me.pnlBackup.Size = New System.Drawing.Size(367, 314)
|
||||
Me.pnlBackup.TabIndex = 3
|
||||
'
|
||||
'pnl7z
|
||||
'
|
||||
Me.pnl7z.Controls.Add(Me.grp7zAdvanced)
|
||||
Me.pnl7z.Controls.Add(Me.grp7zInformation)
|
||||
Me.pnl7z.Controls.Add(Me.grp7zGeneral)
|
||||
Me.pnl7z.Location = New System.Drawing.Point(180, 0)
|
||||
Me.pnl7z.Name = "pnl7z"
|
||||
Me.pnl7z.Size = New System.Drawing.Size(367, 314)
|
||||
Me.pnl7z.TabIndex = 2
|
||||
'
|
||||
'grp7zAdvanced
|
||||
'
|
||||
Me.grp7zAdvanced.Controls.Add(Me.btn7zLocation)
|
||||
Me.grp7zAdvanced.Controls.Add(Me.lblArguments)
|
||||
Me.grp7zAdvanced.Controls.Add(Me.txt7zLocation)
|
||||
Me.grp7zAdvanced.Controls.Add(Me.txt7zArguments)
|
||||
Me.grp7zAdvanced.Controls.Add(Me.lblLocation)
|
||||
Me.grp7zAdvanced.Location = New System.Drawing.Point(6, 68)
|
||||
Me.grp7zAdvanced.Name = "grp7zAdvanced"
|
||||
Me.grp7zAdvanced.Size = New System.Drawing.Size(354, 73)
|
||||
Me.grp7zAdvanced.TabIndex = 2
|
||||
Me.grp7zAdvanced.TabStop = False
|
||||
Me.grp7zAdvanced.Text = "Advanced"
|
||||
'
|
||||
'grp7zInformation
|
||||
'
|
||||
Me.grp7zInformation.Controls.Add(Me.lbl7zProduct)
|
||||
Me.grp7zInformation.Controls.Add(Me.lbl7zCopyright)
|
||||
Me.grp7zInformation.Location = New System.Drawing.Point(6, 146)
|
||||
Me.grp7zInformation.Name = "grp7zInformation"
|
||||
Me.grp7zInformation.Size = New System.Drawing.Size(354, 63)
|
||||
Me.grp7zInformation.TabIndex = 1
|
||||
Me.grp7zInformation.TabStop = False
|
||||
Me.grp7zInformation.Text = "Utility Information"
|
||||
'
|
||||
'pnlGeneral
|
||||
'
|
||||
Me.pnlGeneral.Controls.Add(Me.chkAutoSaveLog)
|
||||
Me.pnlGeneral.Controls.Add(Me.grpGameData)
|
||||
Me.pnlGeneral.Controls.Add(Me.chkShowDetectionTips)
|
||||
Me.pnlGeneral.Controls.Add(Me.grpStartup)
|
||||
Me.pnlGeneral.Location = New System.Drawing.Point(180, 0)
|
||||
Me.pnlGeneral.Name = "pnlGeneral"
|
||||
Me.pnlGeneral.Size = New System.Drawing.Size(367, 314)
|
||||
Me.pnlGeneral.TabIndex = 1
|
||||
'
|
||||
'grpGameData
|
||||
'
|
||||
Me.grpGameData.Controls.Add(Me.chkTimeTracking)
|
||||
Me.grpGameData.Controls.Add(Me.chkSync)
|
||||
Me.grpGameData.Controls.Add(Me.btnOptionalFields)
|
||||
Me.grpGameData.Location = New System.Drawing.Point(6, 106)
|
||||
Me.grpGameData.Name = "grpGameData"
|
||||
Me.grpGameData.Size = New System.Drawing.Size(354, 69)
|
||||
Me.grpGameData.TabIndex = 1
|
||||
Me.grpGameData.TabStop = False
|
||||
Me.grpGameData.Text = "Game Data"
|
||||
'
|
||||
'lstSettings
|
||||
'
|
||||
Me.lstSettings.FormattingEnabled = True
|
||||
Me.lstSettings.Location = New System.Drawing.Point(12, 12)
|
||||
Me.lstSettings.Name = "lstSettings"
|
||||
Me.lstSettings.Size = New System.Drawing.Size(162, 303)
|
||||
Me.lstSettings.TabIndex = 0
|
||||
'
|
||||
'frmSettings
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(384, 431)
|
||||
Me.Controls.Add(Me.grpBackup)
|
||||
Me.ClientSize = New System.Drawing.Size(554, 361)
|
||||
Me.Controls.Add(Me.lstSettings)
|
||||
Me.Controls.Add(Me.btnDefaults)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.btnSave)
|
||||
Me.Controls.Add(Me.grpPaths)
|
||||
Me.Controls.Add(Me.grpGeneral)
|
||||
Me.Controls.Add(Me.pnlGeneral)
|
||||
Me.Controls.Add(Me.pnl7z)
|
||||
Me.Controls.Add(Me.pnlBackup)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "frmSettings"
|
||||
Me.ShowIcon = False
|
||||
Me.ShowInTaskbar = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "Settings"
|
||||
Me.grpGeneral.ResumeLayout(False)
|
||||
Me.grpGeneral.PerformLayout()
|
||||
Me.grpPaths.ResumeLayout(False)
|
||||
Me.grpPaths.PerformLayout()
|
||||
Me.grpBackup.ResumeLayout(False)
|
||||
Me.grpBackup.PerformLayout()
|
||||
Me.grpStartup.ResumeLayout(False)
|
||||
Me.grpStartup.PerformLayout()
|
||||
Me.grpFolderOptions.ResumeLayout(False)
|
||||
Me.grpFolderOptions.PerformLayout()
|
||||
CType(Me.nudSupressBackupThreshold, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.grp7zGeneral.ResumeLayout(False)
|
||||
Me.grp7zGeneral.PerformLayout()
|
||||
Me.pnlBackup.ResumeLayout(False)
|
||||
Me.pnlBackup.PerformLayout()
|
||||
Me.pnl7z.ResumeLayout(False)
|
||||
Me.grp7zAdvanced.ResumeLayout(False)
|
||||
Me.grp7zAdvanced.PerformLayout()
|
||||
Me.grp7zInformation.ResumeLayout(False)
|
||||
Me.pnlGeneral.ResumeLayout(False)
|
||||
Me.pnlGeneral.PerformLayout()
|
||||
Me.grpGameData.ResumeLayout(False)
|
||||
Me.grpGameData.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents chkMonitorOnStartup As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkBackupConfirm As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents grpGeneral As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpPaths As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpStartup As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpFolderOptions As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents txtBackupFolder As System.Windows.Forms.TextBox
|
||||
Friend WithEvents fbBrowser As System.Windows.Forms.FolderBrowserDialog
|
||||
Friend WithEvents btnSave As System.Windows.Forms.Button
|
||||
Friend WithEvents btnCancel As System.Windows.Forms.Button
|
||||
Friend WithEvents lblBackupFolder As System.Windows.Forms.Label
|
||||
Friend WithEvents btnBackupFolder As System.Windows.Forms.Button
|
||||
Friend WithEvents chkShowDetectionTips As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkStartToTray As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents grpBackup As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents chkOverwriteWarning As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkCreateFolder As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkRestoreOnLaunch As System.Windows.Forms.CheckBox
|
||||
@@ -290,4 +537,27 @@ Partial Class frmSettings
|
||||
Friend WithEvents chkCheckSum As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkStartWindows As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chkTimeTracking As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents lblMinutes As Label
|
||||
Friend WithEvents nudSupressBackupThreshold As NumericUpDown
|
||||
Friend WithEvents chkSupressBackup As CheckBox
|
||||
Friend WithEvents grp7zGeneral As GroupBox
|
||||
Friend WithEvents cboCompression As ComboBox
|
||||
Friend WithEvents lblCompression As Label
|
||||
Friend WithEvents lbl7zProduct As Label
|
||||
Friend WithEvents lbl7zCopyright As Label
|
||||
Friend WithEvents btn7zLocation As Button
|
||||
Friend WithEvents txt7zLocation As TextBox
|
||||
Friend WithEvents lblLocation As Label
|
||||
Friend WithEvents txt7zArguments As TextBox
|
||||
Friend WithEvents lblArguments As Label
|
||||
Friend WithEvents btnDefaults As Button
|
||||
Friend WithEvents btnOptionalFields As Button
|
||||
Friend WithEvents chkAutoSaveLog As CheckBox
|
||||
Friend WithEvents pnlBackup As Panel
|
||||
Friend WithEvents pnl7z As Panel
|
||||
Friend WithEvents pnlGeneral As Panel
|
||||
Friend WithEvents grpGameData As GroupBox
|
||||
Friend WithEvents lstSettings As ListBox
|
||||
Friend WithEvents grp7zAdvanced As GroupBox
|
||||
Friend WithEvents grp7zInformation As GroupBox
|
||||
End Class
|
||||
|
||||
@@ -117,9 +117,6 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="fbBrowser.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>32</value>
|
||||
</metadata>
|
||||
|
||||
+265
-25
@@ -1,7 +1,11 @@
|
||||
Public Class frmSettings
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmSettings
|
||||
Dim bShutdown As Boolean = False
|
||||
Dim bBackupLocationChanged As Boolean = False
|
||||
Dim bSyncSettingsChanged As Boolean = False
|
||||
Dim bCheckSumDisabled As Boolean = False
|
||||
Dim eCurrentSyncFields As clsGame.eOptionalSyncFields
|
||||
Private oSettings As mgrSettings
|
||||
|
||||
Property Settings As mgrSettings
|
||||
@@ -13,15 +17,6 @@
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property BackupLocationChanged As Boolean
|
||||
Get
|
||||
Return bBackupLocationChanged
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
bBackupLocationChanged = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub HandleRegistryUpdate(ByVal bToggle As Boolean)
|
||||
Dim oKey As Microsoft.Win32.RegistryKey
|
||||
Dim sAppName As String = Application.ProductName
|
||||
@@ -49,11 +44,22 @@
|
||||
oSettings.MonitorOnStartup = chkMonitorOnStartup.Checked
|
||||
oSettings.StartToTray = chkStartToTray.Checked
|
||||
oSettings.ShowDetectionToolTips = chkShowDetectionTips.Checked
|
||||
oSettings.AutoSaveLog = chkAutoSaveLog.Checked
|
||||
oSettings.DisableConfirmation = chkBackupConfirm.Checked
|
||||
oSettings.CreateSubFolder = chkCreateFolder.Checked
|
||||
oSettings.ShowOverwriteWarning = chkOverwriteWarning.Checked
|
||||
oSettings.RestoreOnLaunch = chkRestoreOnLaunch.Checked
|
||||
oSettings.TimeTracking = chkTimeTracking.Checked
|
||||
oSettings.SupressBackup = chkSupressBackup.Checked
|
||||
oSettings.SupressBackupThreshold = nudSupressBackupThreshold.Value
|
||||
oSettings.CompressionLevel = cboCompression.SelectedValue
|
||||
|
||||
If oSettings.Custom7zArguments <> txt7zArguments.Text.Trim And txt7zArguments.Text.Trim <> String.Empty Then
|
||||
mgrCommon.ShowMessage(frmSettings_WarningArguments, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
|
||||
oSettings.Custom7zArguments = txt7zArguments.Text.Trim
|
||||
oSettings.Custom7zLocation = txt7zLocation.Text.Trim
|
||||
|
||||
'We need to clear all checksums its turned off
|
||||
If chkCheckSum.Checked = False And oSettings.CheckSum = True Then
|
||||
@@ -63,27 +69,43 @@
|
||||
|
||||
'Turning syncing from off to on is the same as changing the backup folder
|
||||
If chkSync.Checked = True And oSettings.Sync = False Then
|
||||
bBackupLocationChanged = True
|
||||
bSyncSettingsChanged = True
|
||||
End If
|
||||
oSettings.Sync = chkSync.Checked
|
||||
|
||||
If IO.Directory.Exists(txtBackupFolder.Text) Then
|
||||
If Directory.Exists(txtBackupFolder.Text) Then
|
||||
If oSettings.BackupFolder <> txtBackupFolder.Text Then
|
||||
If chkSync.Checked Then bBackupLocationChanged = True
|
||||
If chkSync.Checked Then bSyncSettingsChanged = True
|
||||
End If
|
||||
oSettings.BackupFolder = txtBackupFolder.Text
|
||||
Else
|
||||
MsgBox("The backup folder does not exist. Please choose a valid backup folder.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmSettings_ErrorBackupFolder, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If oSettings.Custom7zLocation <> String.Empty Then
|
||||
If File.Exists(oSettings.Custom7zLocation) Then
|
||||
If Path.GetFileNameWithoutExtension(oSettings.Custom7zLocation) <> "7za" Then
|
||||
mgrCommon.ShowMessage(frmSettings_WarningLocation, MsgBoxStyle.Critical)
|
||||
End If
|
||||
Else
|
||||
mgrCommon.ShowMessage(frmSettings_ErrorLocation, oSettings.Custom7zLocation, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
'We must trigger a sync if optional fields have changed
|
||||
If Settings.Sync And (eCurrentSyncFields <> Settings.SyncFields) Then
|
||||
bSyncSettingsChanged = True
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function SaveSettings() As Boolean
|
||||
If ValidateSettings() Then
|
||||
oSettings.SaveSettings()
|
||||
If BackupLocationChanged Then mgrMonitorList.HandleBackupLocationChange()
|
||||
If bSyncSettingsChanged Then mgrMonitorList.HandleBackupLocationChange(Settings)
|
||||
If bCheckSumDisabled Then mgrManifest.DoManifestHashWipe()
|
||||
Return True
|
||||
Else
|
||||
@@ -91,11 +113,67 @@
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub GetUtilityInfo(ByVal sLocation As String)
|
||||
Dim bDefault As Boolean = False
|
||||
Dim sFileDescription As String
|
||||
Dim sVersion As String
|
||||
Dim sCopyright As String
|
||||
|
||||
'Ignore this function when on Unix and hide the information data
|
||||
If mgrCommon.IsUnix Then
|
||||
grp7zInformation.Visible = False
|
||||
Else
|
||||
Try
|
||||
grp7zInformation.Visible = True
|
||||
|
||||
'Use default when no custom location is set
|
||||
If sLocation = String.Empty Then
|
||||
sLocation = mgrPath.Default7zLocation
|
||||
bDefault = True
|
||||
End If
|
||||
|
||||
'Get info
|
||||
Dim oFileInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(sLocation)
|
||||
|
||||
If oFileInfo.FileDescription = String.Empty Then
|
||||
sFileDescription = App_NotAvailable
|
||||
Else
|
||||
sFileDescription = oFileInfo.FileDescription
|
||||
End If
|
||||
|
||||
If oFileInfo.ProductVersion = String.Empty Then
|
||||
sVersion = App_NotAvailable
|
||||
Else
|
||||
sVersion = oFileInfo.ProductVersion
|
||||
End If
|
||||
|
||||
If oFileInfo.LegalCopyright = String.Empty Then
|
||||
sCopyright = App_NotAvailable
|
||||
Else
|
||||
sCopyright = oFileInfo.LegalCopyright
|
||||
End If
|
||||
|
||||
lbl7zProduct.Text = sFileDescription & " - " & sVersion
|
||||
lbl7zCopyright.Text = sCopyright
|
||||
Catch ex As Exception
|
||||
grp7zInformation.Visible = False
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetDefaults()
|
||||
If mgrCommon.ShowMessage(frmSettings_ConfirmDefaults, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
oSettings = New mgrSettings
|
||||
LoadSettings()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadSettings()
|
||||
chkStartWindows.Checked = oSettings.StartWithWindows
|
||||
chkMonitorOnStartup.Checked = oSettings.MonitorOnStartup
|
||||
chkStartToTray.Checked = oSettings.StartToTray
|
||||
chkShowDetectionTips.Checked = oSettings.ShowDetectionToolTips
|
||||
chkAutoSaveLog.Checked = oSettings.AutoSaveLog
|
||||
chkBackupConfirm.Checked = oSettings.DisableConfirmation
|
||||
chkCreateFolder.Checked = oSettings.CreateSubFolder
|
||||
chkOverwriteWarning.Checked = oSettings.ShowOverwriteWarning
|
||||
@@ -104,6 +182,141 @@
|
||||
chkSync.Checked = oSettings.Sync
|
||||
chkCheckSum.Checked = oSettings.CheckSum
|
||||
chkTimeTracking.Checked = oSettings.TimeTracking
|
||||
chkSupressBackup.Checked = oSettings.SupressBackup
|
||||
nudSupressBackupThreshold.Value = oSettings.SupressBackupThreshold
|
||||
nudSupressBackupThreshold.Enabled = chkSupressBackup.Checked
|
||||
cboCompression.SelectedValue = oSettings.CompressionLevel
|
||||
txt7zArguments.Text = oSettings.Custom7zArguments
|
||||
txt7zLocation.Text = oSettings.Custom7zLocation
|
||||
eCurrentSyncFields = oSettings.SyncFields
|
||||
|
||||
'Unix Handler
|
||||
If mgrCommon.IsUnix Then
|
||||
chkStartToTray.Checked = False
|
||||
chkStartWindows.Checked = False
|
||||
End If
|
||||
|
||||
'Retrieve 7z Info
|
||||
GetUtilityInfo(oSettings.Custom7zLocation)
|
||||
|
||||
'Toggle Sync Button
|
||||
ToggleSyncButton()
|
||||
End Sub
|
||||
|
||||
Private Sub LoadCombos()
|
||||
Dim oComboItems As New List(Of KeyValuePair(Of Integer, String))
|
||||
Dim oSettingsItems As New List(Of KeyValuePair(Of Integer, String))
|
||||
|
||||
'cboCompression
|
||||
cboCompression.ValueMember = "Key"
|
||||
cboCompression.DisplayMember = "Value"
|
||||
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(0, frmSettings_cboCompression_None))
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(1, frmSettings_cboCompression_Fastest))
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(3, frmSettings_cboCompression_Fast))
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(5, frmSettings_cboCompression_Normal))
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(7, frmSettings_cboCompression_Maximum))
|
||||
oComboItems.Add(New KeyValuePair(Of Integer, String)(9, frmSettings_cboCompression_Ultra))
|
||||
|
||||
cboCompression.DataSource = oComboItems
|
||||
|
||||
'lstSettings
|
||||
lstSettings.ValueMember = "Key"
|
||||
lstSettings.DisplayMember = "Value"
|
||||
|
||||
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(0, frmSettings_lstSettings_General))
|
||||
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(1, frmSettings_lstSettings_BackupRestore))
|
||||
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(2, frmSettings_lstSettings_7z))
|
||||
|
||||
lstSettings.DataSource = oSettingsItems
|
||||
|
||||
'Select Default
|
||||
lstSettings.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
Private Sub ToggleSyncButton()
|
||||
If chkSync.Checked Then
|
||||
btnOptionalFields.Enabled = True
|
||||
Else
|
||||
btnOptionalFields.Enabled = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OpenOptionalFields()
|
||||
Dim frm As New frmSyncFields
|
||||
frm.SyncFields = Settings.SyncFields
|
||||
frm.ShowDialog()
|
||||
If frm.DialogResult = DialogResult.OK Then
|
||||
Settings.SyncFields = frm.SyncFields
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ChangePanel()
|
||||
If lstSettings.SelectedItems.Count > 0 Then
|
||||
Dim oSettingsItem As KeyValuePair(Of Integer, String) = lstSettings.SelectedItems(0)
|
||||
|
||||
Select Case oSettingsItem.Key
|
||||
Case 0
|
||||
pnlGeneral.Visible = True
|
||||
pnlBackup.Visible = False
|
||||
pnl7z.Visible = False
|
||||
Case 1
|
||||
pnlGeneral.Visible = False
|
||||
pnlBackup.Visible = True
|
||||
pnl7z.Visible = False
|
||||
Case 2
|
||||
pnlGeneral.Visible = False
|
||||
pnlBackup.Visible = False
|
||||
pnl7z.Visible = True
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmSettings_FormName
|
||||
|
||||
'Set Form Text
|
||||
lblMinutes.Text = frmSettings_lblMinutes
|
||||
chkSupressBackup.Text = frmSettings_chkSupressBackup
|
||||
chkCheckSum.Text = frmSettings_chkCheckSum
|
||||
chkRestoreOnLaunch.Text = frmSettings_chkRestoreOnLaunch
|
||||
chkOverwriteWarning.Text = frmSettings_chkOverwriteWarning
|
||||
chkCreateFolder.Text = frmSettings_chkCreateFolder
|
||||
chkBackupConfirm.Text = frmSettings_chkBackupConfirm
|
||||
btnCancel.Text = frmSettings_btnCancel
|
||||
btnSave.Text = frmSettings_btnSave
|
||||
grpFolderOptions.Text = frmSettings_grpFolderOptions
|
||||
btnBackupFolder.Text = frmSettings_btnBackupFolder
|
||||
lblBackupFolder.Text = frmSettings_lblBackupFolder
|
||||
grpStartup.Text = frmSettings_grpStartup
|
||||
grpGameData.Text = frmSettings_grpGameData
|
||||
chkTimeTracking.Text = frmSettings_chkTimeTracking
|
||||
chkStartWindows.Text = frmSettings_chkStartWindows
|
||||
chkSync.Text = frmSettings_chkSync
|
||||
chkShowDetectionTips.Text = frmSettings_chkShowDetectionTips
|
||||
chkAutoSaveLog.Text = frmSettings_chkAutoSaveLog
|
||||
chkStartToTray.Text = frmSettings_chkStartToTray
|
||||
chkMonitorOnStartup.Text = frmSettings_chkMonitorOnStartup
|
||||
grp7zGeneral.Text = frmSettings_grp7zGeneral
|
||||
grp7zAdvanced.Text = frmSettings_grp7zAdvanced
|
||||
grp7zInformation.Text = frmSettings_grp7zInformation
|
||||
lblCompression.Text = frmSettings_lblCompression
|
||||
btnDefaults.Text = frmSettings_btnDefaults
|
||||
lblArguments.Text = frmSettings_lblArguments
|
||||
lblLocation.Text = frmSettings_lblLocation
|
||||
btnOptionalFields.Text = frmSettings_btnOptionalFields
|
||||
|
||||
'Unix Handler
|
||||
If mgrCommon.IsUnix Then
|
||||
chkStartToTray.Enabled = False
|
||||
chkStartWindows.Enabled = False
|
||||
End If
|
||||
|
||||
'Handle Panels
|
||||
pnlGeneral.Visible = False
|
||||
pnlBackup.Visible = False
|
||||
pnl7z.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
|
||||
@@ -118,21 +331,48 @@
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub frmSettings_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
|
||||
If bShutdown = False Then
|
||||
e.Cancel = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmSettings_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
LoadCombos()
|
||||
LoadSettings()
|
||||
End Sub
|
||||
|
||||
Private Sub btnBackupFolder_Click(sender As System.Object, e As System.EventArgs) Handles btnBackupFolder.Click
|
||||
fbBrowser.SelectedPath = oSettings.BackupFolder
|
||||
If fbBrowser.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
||||
txtBackupFolder.Text = fbBrowser.SelectedPath
|
||||
Dim sNewFolder As String
|
||||
sNewFolder = mgrCommon.OpenFolderBrowser(frmSettings_BrowseFolder, oSettings.BackupFolder, True)
|
||||
If sNewFolder <> String.Empty Then txtBackupFolder.Text = sNewFolder
|
||||
End Sub
|
||||
|
||||
Private Sub btn7zLocation_Click(sender As Object, e As EventArgs) Handles btn7zLocation.Click
|
||||
Dim sNewLocation As String
|
||||
sNewLocation = mgrCommon.OpenFileBrowser(frmSettings_Browse7za, "exe", frmSettings_7zaFileType, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False)
|
||||
If sNewLocation <> String.Empty Then
|
||||
txt7zLocation.Text = sNewLocation
|
||||
GetUtilityInfo(txt7zLocation.Text)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkSupressBackup_CheckedChanged(sender As Object, e As EventArgs) Handles chkSupressBackup.CheckedChanged
|
||||
nudSupressBackupThreshold.Enabled = chkSupressBackup.Checked
|
||||
End Sub
|
||||
|
||||
Private Sub txt7zLocation_Leave(sender As Object, e As EventArgs) Handles txt7zLocation.Leave
|
||||
GetUtilityInfo(txt7zLocation.Text.Trim)
|
||||
End Sub
|
||||
|
||||
Private Sub btnDefaults_Click(sender As Object, e As EventArgs) Handles btnDefaults.Click
|
||||
SetDefaults()
|
||||
End Sub
|
||||
|
||||
Private Sub btnOptionalFields_Click(sender As Object, e As EventArgs) Handles btnOptionalFields.Click
|
||||
OpenOptionalFields()
|
||||
End Sub
|
||||
|
||||
Private Sub chkSync_CheckedChanged(sender As Object, e As EventArgs) Handles chkSync.CheckedChanged
|
||||
ToggleSyncButton()
|
||||
End Sub
|
||||
|
||||
Private Sub lstSettings_SelectedValueChanged(sender As Object, e As EventArgs) Handles lstSettings.SelectedValueChanged
|
||||
ChangePanel()
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+47
-57
@@ -25,11 +25,10 @@ Partial Class frmStartUpWizard
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStartUpWizard))
|
||||
Me.tabWizard = New System.Windows.Forms.TabControl()
|
||||
Me.tbPage1 = New System.Windows.Forms.TabPage()
|
||||
Me.lblStep1Instructions3 = New System.Windows.Forms.Label()
|
||||
Me.lblStep1Instructions2 = New System.Windows.Forms.Label()
|
||||
Me.llbManual = New System.Windows.Forms.LinkLabel()
|
||||
Me.lblStep1Title = New System.Windows.Forms.Label()
|
||||
Me.lblStep1Instructions = New System.Windows.Forms.Label()
|
||||
Me.lblStep1Intro = New System.Windows.Forms.Label()
|
||||
Me.tbPage2 = New System.Windows.Forms.TabPage()
|
||||
Me.chkSync = New System.Windows.Forms.CheckBox()
|
||||
Me.chkCreateFolder = New System.Windows.Forms.CheckBox()
|
||||
@@ -74,11 +73,10 @@ Partial Class frmStartUpWizard
|
||||
'tbPage1
|
||||
'
|
||||
Me.tbPage1.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Instructions3)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Instructions2)
|
||||
Me.tbPage1.Controls.Add(Me.llbManual)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Title)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Instructions)
|
||||
Me.tbPage1.Controls.Add(Me.lblStep1Intro)
|
||||
Me.tbPage1.Location = New System.Drawing.Point(4, 22)
|
||||
Me.tbPage1.Name = "tbPage1"
|
||||
Me.tbPage1.Padding = New System.Windows.Forms.Padding(3)
|
||||
@@ -86,24 +84,25 @@ Partial Class frmStartUpWizard
|
||||
Me.tbPage1.TabIndex = 0
|
||||
Me.tbPage1.Text = "TabPage1"
|
||||
'
|
||||
'lblStep1Instructions3
|
||||
'
|
||||
Me.lblStep1Instructions3.AutoSize = True
|
||||
Me.lblStep1Instructions3.Location = New System.Drawing.Point(14, 160)
|
||||
Me.lblStep1Instructions3.Name = "lblStep1Instructions3"
|
||||
Me.lblStep1Instructions3.Size = New System.Drawing.Size(310, 13)
|
||||
Me.lblStep1Instructions3.TabIndex = 10
|
||||
Me.lblStep1Instructions3.Text = "GBM was designed and tested using the Dropbox cloud service."
|
||||
'
|
||||
'lblStep1Instructions2
|
||||
'
|
||||
Me.lblStep1Instructions2.Location = New System.Drawing.Point(14, 106)
|
||||
Me.lblStep1Instructions2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
|
||||
Me.lblStep1Instructions2.Location = New System.Drawing.Point(14, 91)
|
||||
Me.lblStep1Instructions2.Name = "lblStep1Instructions2"
|
||||
Me.lblStep1Instructions2.Size = New System.Drawing.Size(303, 42)
|
||||
Me.lblStep1Instructions2.TabIndex = 9
|
||||
Me.lblStep1Instructions2.Text = "Before proceeding you may want to sign up for a cloud service and install their c" & _
|
||||
"lient software. GBM works best when paired with a cloud service and client but " & _
|
||||
"is not required!"
|
||||
Me.lblStep1Instructions2.Size = New System.Drawing.Size(303, 53)
|
||||
Me.lblStep1Instructions2.TabIndex = 2
|
||||
Me.lblStep1Instructions2.Text = "If you'd like to learn about advanced features or have any other questions before" & _
|
||||
" you get started, there is a detailed online manual available."
|
||||
'
|
||||
'llbManual
|
||||
'
|
||||
Me.llbManual.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
|
||||
Me.llbManual.Location = New System.Drawing.Point(14, 158)
|
||||
Me.llbManual.Name = "llbManual"
|
||||
Me.llbManual.Size = New System.Drawing.Size(303, 13)
|
||||
Me.llbManual.TabIndex = 3
|
||||
Me.llbManual.TabStop = True
|
||||
Me.llbManual.Text = "Game Backup Monitor Manual"
|
||||
'
|
||||
'lblStep1Title
|
||||
'
|
||||
@@ -112,25 +111,17 @@ Partial Class frmStartUpWizard
|
||||
Me.lblStep1Title.Location = New System.Drawing.Point(13, 11)
|
||||
Me.lblStep1Title.Name = "lblStep1Title"
|
||||
Me.lblStep1Title.Size = New System.Drawing.Size(148, 20)
|
||||
Me.lblStep1Title.TabIndex = 8
|
||||
Me.lblStep1Title.TabIndex = 0
|
||||
Me.lblStep1Title.Text = "Welcome to GBM"
|
||||
'
|
||||
'lblStep1Instructions
|
||||
'
|
||||
Me.lblStep1Instructions.Location = New System.Drawing.Point(14, 64)
|
||||
Me.lblStep1Instructions.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
|
||||
Me.lblStep1Instructions.Location = New System.Drawing.Point(14, 41)
|
||||
Me.lblStep1Instructions.Name = "lblStep1Instructions"
|
||||
Me.lblStep1Instructions.Size = New System.Drawing.Size(303, 42)
|
||||
Me.lblStep1Instructions.TabIndex = 6
|
||||
Me.lblStep1Instructions.Text = "This wizard will guide you through some easy setup steps to get started."
|
||||
'
|
||||
'lblStep1Intro
|
||||
'
|
||||
Me.lblStep1Intro.AutoSize = True
|
||||
Me.lblStep1Intro.Location = New System.Drawing.Point(14, 41)
|
||||
Me.lblStep1Intro.Name = "lblStep1Intro"
|
||||
Me.lblStep1Intro.Size = New System.Drawing.Size(213, 13)
|
||||
Me.lblStep1Intro.TabIndex = 5
|
||||
Me.lblStep1Intro.Text = "Thank you for trying Game Backup Monitor!"
|
||||
Me.lblStep1Instructions.Size = New System.Drawing.Size(303, 36)
|
||||
Me.lblStep1Instructions.TabIndex = 1
|
||||
Me.lblStep1Instructions.Text = "This guide will help you through some quick and easy steps to get started."
|
||||
'
|
||||
'tbPage2
|
||||
'
|
||||
@@ -154,9 +145,9 @@ Partial Class frmStartUpWizard
|
||||
Me.chkSync.AutoSize = True
|
||||
Me.chkSync.Location = New System.Drawing.Point(17, 105)
|
||||
Me.chkSync.Name = "chkSync"
|
||||
Me.chkSync.Size = New System.Drawing.Size(258, 17)
|
||||
Me.chkSync.TabIndex = 13
|
||||
Me.chkSync.Text = "Sync with existing GBM data in the backup folder"
|
||||
Me.chkSync.Size = New System.Drawing.Size(261, 17)
|
||||
Me.chkSync.TabIndex = 5
|
||||
Me.chkSync.Text = "Import any existing GBM data in the backup folder"
|
||||
Me.chkSync.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkCreateFolder
|
||||
@@ -164,9 +155,9 @@ Partial Class frmStartUpWizard
|
||||
Me.chkCreateFolder.AutoSize = True
|
||||
Me.chkCreateFolder.Location = New System.Drawing.Point(17, 83)
|
||||
Me.chkCreateFolder.Name = "chkCreateFolder"
|
||||
Me.chkCreateFolder.Size = New System.Drawing.Size(211, 17)
|
||||
Me.chkCreateFolder.TabIndex = 12
|
||||
Me.chkCreateFolder.Text = "Create a sub-folder for each application"
|
||||
Me.chkCreateFolder.Size = New System.Drawing.Size(186, 17)
|
||||
Me.chkCreateFolder.TabIndex = 4
|
||||
Me.chkCreateFolder.Text = "Create a sub-folder for each game"
|
||||
Me.chkCreateFolder.UseVisualStyleBackColor = True
|
||||
'
|
||||
'lblStep2Title
|
||||
@@ -176,23 +167,24 @@ Partial Class frmStartUpWizard
|
||||
Me.lblStep2Title.Location = New System.Drawing.Point(13, 11)
|
||||
Me.lblStep2Title.Name = "lblStep2Title"
|
||||
Me.lblStep2Title.Size = New System.Drawing.Size(143, 20)
|
||||
Me.lblStep2Title.TabIndex = 11
|
||||
Me.lblStep2Title.TabIndex = 0
|
||||
Me.lblStep2Title.Text = "Backup Location"
|
||||
'
|
||||
'lblStep2Instructions
|
||||
'
|
||||
Me.lblStep2Instructions.Location = New System.Drawing.Point(14, 125)
|
||||
Me.lblStep2Instructions.Location = New System.Drawing.Point(14, 151)
|
||||
Me.lblStep2Instructions.Name = "lblStep2Instructions"
|
||||
Me.lblStep2Instructions.Size = New System.Drawing.Size(335, 57)
|
||||
Me.lblStep2Instructions.TabIndex = 10
|
||||
Me.lblStep2Instructions.Text = resources.GetString("lblStep2Instructions.Text")
|
||||
Me.lblStep2Instructions.Size = New System.Drawing.Size(335, 31)
|
||||
Me.lblStep2Instructions.TabIndex = 6
|
||||
Me.lblStep2Instructions.Text = "GBM will store all your backup files along with a manifest database (gbm.s3db) in" & _
|
||||
" this location. "
|
||||
'
|
||||
'btnFolderBrowse
|
||||
'
|
||||
Me.btnFolderBrowse.Location = New System.Drawing.Point(322, 56)
|
||||
Me.btnFolderBrowse.Name = "btnFolderBrowse"
|
||||
Me.btnFolderBrowse.Size = New System.Drawing.Size(27, 20)
|
||||
Me.btnFolderBrowse.TabIndex = 8
|
||||
Me.btnFolderBrowse.TabIndex = 3
|
||||
Me.btnFolderBrowse.Text = "..."
|
||||
Me.btnFolderBrowse.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -202,7 +194,7 @@ Partial Class frmStartUpWizard
|
||||
Me.txtBackupPath.Location = New System.Drawing.Point(17, 57)
|
||||
Me.txtBackupPath.Name = "txtBackupPath"
|
||||
Me.txtBackupPath.Size = New System.Drawing.Size(300, 20)
|
||||
Me.txtBackupPath.TabIndex = 6
|
||||
Me.txtBackupPath.TabIndex = 2
|
||||
'
|
||||
'lblStep2Intro
|
||||
'
|
||||
@@ -210,7 +202,7 @@ Partial Class frmStartUpWizard
|
||||
Me.lblStep2Intro.Location = New System.Drawing.Point(14, 41)
|
||||
Me.lblStep2Intro.Name = "lblStep2Intro"
|
||||
Me.lblStep2Intro.Size = New System.Drawing.Size(219, 13)
|
||||
Me.lblStep2Intro.TabIndex = 7
|
||||
Me.lblStep2Intro.TabIndex = 1
|
||||
Me.lblStep2Intro.Text = "Choose where GBM saves your backup files:"
|
||||
'
|
||||
'tbPage3
|
||||
@@ -291,8 +283,8 @@ Partial Class frmStartUpWizard
|
||||
Me.lblStep4Instructions3.Name = "lblStep4Instructions3"
|
||||
Me.lblStep4Instructions3.Size = New System.Drawing.Size(303, 33)
|
||||
Me.lblStep4Instructions3.TabIndex = 18
|
||||
Me.lblStep4Instructions3.Text = "To change anything you've setup in this wizard and see more settings and features" & _
|
||||
", explore the menus in the application,"
|
||||
Me.lblStep4Instructions3.Text = "You can change anything you've setup in this wizard and find more settings and fe" & _
|
||||
"atures by exploring the menus. Thanks!"
|
||||
'
|
||||
'lblStep4Instructions2
|
||||
'
|
||||
@@ -318,15 +310,14 @@ Partial Class frmStartUpWizard
|
||||
Me.lblStep4Instructions.Name = "lblStep4Instructions"
|
||||
Me.lblStep4Instructions.Size = New System.Drawing.Size(303, 31)
|
||||
Me.lblStep4Instructions.TabIndex = 12
|
||||
Me.lblStep4Instructions.Text = "That's all there is to it! GBM will automatically monitor and backup your applic" & _
|
||||
"ations each time they are closed."
|
||||
Me.lblStep4Instructions.Text = "GBM will automatically monitor and backup your games each time they are closed."
|
||||
'
|
||||
'btnNext
|
||||
'
|
||||
Me.btnNext.Location = New System.Drawing.Point(272, 202)
|
||||
Me.btnNext.Name = "btnNext"
|
||||
Me.btnNext.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnNext.TabIndex = 11
|
||||
Me.btnNext.TabIndex = 2
|
||||
Me.btnNext.Text = "&Next"
|
||||
Me.btnNext.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -335,7 +326,7 @@ Partial Class frmStartUpWizard
|
||||
Me.btnBack.Location = New System.Drawing.Point(191, 202)
|
||||
Me.btnBack.Name = "btnBack"
|
||||
Me.btnBack.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnBack.TabIndex = 10
|
||||
Me.btnBack.TabIndex = 1
|
||||
Me.btnBack.Text = "&Back"
|
||||
Me.btnBack.UseVisualStyleBackColor = True
|
||||
'
|
||||
@@ -353,7 +344,7 @@ Partial Class frmStartUpWizard
|
||||
Me.Name = "frmStartUpWizard"
|
||||
Me.ShowIcon = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "GBM Setup Wizard"
|
||||
Me.Text = "GBM Setup"
|
||||
Me.tabWizard.ResumeLayout(False)
|
||||
Me.tbPage1.ResumeLayout(False)
|
||||
Me.tbPage1.PerformLayout()
|
||||
@@ -374,7 +365,6 @@ Partial Class frmStartUpWizard
|
||||
Friend WithEvents tbPage3 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents tbPage4 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents lblStep1Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep1Intro As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep2Instructions As System.Windows.Forms.Label
|
||||
Friend WithEvents btnFolderBrowse As System.Windows.Forms.Button
|
||||
Friend WithEvents txtBackupPath As System.Windows.Forms.TextBox
|
||||
@@ -385,8 +375,6 @@ Partial Class frmStartUpWizard
|
||||
Friend WithEvents lblStep2Title As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep3Title As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep4Title As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep1Instructions2 As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep1Instructions3 As System.Windows.Forms.Label
|
||||
Friend WithEvents chkCreateFolder As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents btnDownloadList As System.Windows.Forms.Button
|
||||
Friend WithEvents btnOpenWizard As System.Windows.Forms.Button
|
||||
@@ -394,4 +382,6 @@ Partial Class frmStartUpWizard
|
||||
Friend WithEvents lblStep4Instructions3 As System.Windows.Forms.Label
|
||||
Friend WithEvents lblStep4Instructions2 As System.Windows.Forms.Label
|
||||
Friend WithEvents chkSync As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents lblStep1Instructions2 As System.Windows.Forms.Label
|
||||
Friend WithEvents llbManual As System.Windows.Forms.LinkLabel
|
||||
End Class
|
||||
|
||||
@@ -117,10 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblStep2Instructions.Text" xml:space="preserve">
|
||||
<value>GBM will store all your backup files in this location. It's best to use a cloud folder so your backups are automatically uploaded as soon as they are completed. GBM also stores a file called gbm.s3db in this location, this is how your backups are tracked so don't delete it!</value>
|
||||
</data>
|
||||
<data name="lblStep3Intro.Text" xml:space="preserve">
|
||||
<value>Before you can start monitoring for games, they need to be configured so GBM knows what to look for and how to handle them. You can download configurations from the official pre-configured list or add them all yourself.</value>
|
||||
<value>Before you can start monitoring for games, they need to be configured so GBM knows what to look for and how to handle them. You can download pre-made configurations from the official list or add them all yourself using the tools below. You can also skip this step for now!</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmStartUpWizard
|
||||
|
||||
@@ -26,7 +27,34 @@ Public Class frmStartUpWizard
|
||||
|
||||
Private eCurrentStep As eSteps = eSteps.Step1
|
||||
|
||||
Private Sub FormInit()
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmStartUpWizard_FormName
|
||||
|
||||
'Set Form Text
|
||||
btnNext.Text = frmStartUpWizard_btnNext
|
||||
btnBack.Text = frmStartUpWizard_btnBack
|
||||
lblStep1Instructions2.Text = frmStartUpWizard_lblStep1Instructions2
|
||||
llbManual.Text = frmStartUpWizard_llbManual
|
||||
lblStep1Title.Text = frmStartUpWizard_lblStep1Title
|
||||
lblStep1Instructions.Text = frmStartUpWizard_lblStep1Instructions
|
||||
chkSync.Text = frmStartUpWizard_chkSync
|
||||
chkCreateFolder.Text = frmStartUpWizard_chkCreateFolder
|
||||
lblStep2Title.Text = frmStartUpWizard_lblStep2Title
|
||||
lblStep2Instructions.Text = frmStartUpWizard_lblStep2Instructions
|
||||
btnFolderBrowse.Text = frmStartUpWizard_btnFolderBrowse
|
||||
lblStep2Intro.Text = frmStartUpWizard_lblStep2Intro
|
||||
btnOpenWizard.Text = frmStartUpWizard_btnOpenWizard
|
||||
btnOpenMonitorList.Text = frmStartUpWizard_btnOpenMonitorList
|
||||
btnDownloadList.Text = frmStartUpWizard_btnDownloadList
|
||||
lblStep3Title.Text = frmStartUpWizard_lblStep3Title
|
||||
lblStep3Intro.Text = frmStartUpWizard_lblStep3Intro
|
||||
lblStep4Instructions3.Text = frmStartUpWizard_lblStep4Instructions3
|
||||
lblStep4Instructions2.Text = frmStartUpWizard_lblStep4Instructions2
|
||||
lblStep4Title.Text = frmStartUpWizard_lblStep4Title
|
||||
lblStep4Instructions.Text = frmStartUpWizard_lblStep4Instructions
|
||||
|
||||
llbManual.Links.Add(0, 26, App_URLManual)
|
||||
LoadGameSettings()
|
||||
StepHandler()
|
||||
End Sub
|
||||
@@ -38,8 +66,8 @@ Public Class frmStartUpWizard
|
||||
If oDatabase.CheckDB() Then
|
||||
'Make sure database is the latest version
|
||||
oDatabase.DatabaseUpgrade()
|
||||
mgrMonitorList.SyncMonitorLists(False)
|
||||
MsgBox("Existing data was detected in the backup folder and has been imported.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
|
||||
mgrCommon.ShowMessage(frmStartUpWizard_ExistingData, MsgBoxStyle.Information)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -59,28 +87,36 @@ Public Class frmStartUpWizard
|
||||
Case eSteps.Step3
|
||||
btnBack.Enabled = False
|
||||
btnNext.Enabled = True
|
||||
btnNext.Text = "&Next"
|
||||
btnNext.Text = frmStartUpWizard_btnNext
|
||||
tabWizard.SelectTab(2)
|
||||
Case eSteps.Step4
|
||||
btnBack.Enabled = True
|
||||
btnNext.Enabled = True
|
||||
btnNext.Text = "&Finish"
|
||||
btnNext.Text = frmStartUpWizard_btnNext_Finish
|
||||
tabWizard.SelectTab(3)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub DownloadSettings()
|
||||
If MsgBox("Would you like to import from the latest pre-configured game list?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrMonitorList.DoImport(mgrPath.OfficialImportURL) Then
|
||||
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.ScanList)
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
|
||||
Dim sImportURL As String
|
||||
|
||||
If mgrCommon.IsUnix Then
|
||||
sImportURL = App_URLImportLinux
|
||||
Else
|
||||
sImportURL = App_URLImport
|
||||
End If
|
||||
|
||||
If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
If mgrMonitorList.DoImport(sImportURL) Then
|
||||
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadGameSettings()
|
||||
'Load Game XML
|
||||
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.ScanList)
|
||||
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
|
||||
End Sub
|
||||
|
||||
Private Sub OpenGameWizard()
|
||||
@@ -88,7 +124,7 @@ Public Class frmStartUpWizard
|
||||
frm.GameData = oGameData
|
||||
frm.ShowDialog()
|
||||
LoadGameSettings()
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
End Sub
|
||||
|
||||
Private Sub OpenMonitorList()
|
||||
@@ -97,24 +133,24 @@ Public Class frmStartUpWizard
|
||||
frm.DisableExternalFunctions = True
|
||||
frm.ShowDialog()
|
||||
LoadGameSettings()
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
|
||||
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
End Sub
|
||||
|
||||
Private Function ValidateBackupPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean
|
||||
If strPath = String.Empty Then
|
||||
sErrorMessage = "You must select a backup path to continue."
|
||||
sErrorMessage = frmStartUpWizard_ErrorNoFolder
|
||||
txtBackupPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Directory.Exists(strPath) Then
|
||||
sErrorMessage = "The folder you selected does not exist or is not a valid folder."
|
||||
sErrorMessage = frmStartUpWizard_ErrorNoFolderExists
|
||||
txtBackupPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not Path.IsPathRooted(strPath) Then
|
||||
sErrorMessage = "The selected path must be a full path."
|
||||
sErrorMessage = frmStartUpWizard_ErrorBadFolder
|
||||
txtBackupPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -164,7 +200,7 @@ Public Class frmStartUpWizard
|
||||
Me.Close()
|
||||
End Select
|
||||
|
||||
If bError Then MsgBox(sErrorMessage, MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
If bError Then mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation)
|
||||
StepHandler()
|
||||
End Sub
|
||||
|
||||
@@ -179,7 +215,7 @@ Public Class frmStartUpWizard
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose GBM backup folder:", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmStartUpWizard_BrowseFolder, sDefaultFolder, True)
|
||||
|
||||
If sNewPath <> String.Empty Then txtBackupPath.Text = sNewPath
|
||||
End Sub
|
||||
@@ -193,7 +229,7 @@ Public Class frmStartUpWizard
|
||||
End Sub
|
||||
|
||||
Private Sub frmStartUpWizard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
FormInit()
|
||||
SetForm()
|
||||
End Sub
|
||||
|
||||
Private Sub btnFolderBrowse_Click(sender As Object, e As EventArgs) Handles btnFolderBrowse.Click
|
||||
@@ -217,4 +253,8 @@ Public Class frmStartUpWizard
|
||||
e.Cancel = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub llbManual_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles llbManual.LinkClicked
|
||||
Process.Start(e.Link.LinkData.ToString)
|
||||
End Sub
|
||||
End Class
|
||||
Generated
+163
@@ -0,0 +1,163 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class frmSyncFields
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.grpFields = New System.Windows.Forms.GroupBox()
|
||||
Me.chkMonitorGame = New System.Windows.Forms.CheckBox()
|
||||
Me.chkIcon = New System.Windows.Forms.CheckBox()
|
||||
Me.chkVersion = New System.Windows.Forms.CheckBox()
|
||||
Me.chkCompany = New System.Windows.Forms.CheckBox()
|
||||
Me.chkGamePath = New System.Windows.Forms.CheckBox()
|
||||
Me.chkTimeStamp = New System.Windows.Forms.CheckBox()
|
||||
Me.btnCancel = New System.Windows.Forms.Button()
|
||||
Me.btnSave = New System.Windows.Forms.Button()
|
||||
Me.grpFields.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'grpFields
|
||||
'
|
||||
Me.grpFields.Controls.Add(Me.chkMonitorGame)
|
||||
Me.grpFields.Controls.Add(Me.chkIcon)
|
||||
Me.grpFields.Controls.Add(Me.chkVersion)
|
||||
Me.grpFields.Controls.Add(Me.chkCompany)
|
||||
Me.grpFields.Controls.Add(Me.chkGamePath)
|
||||
Me.grpFields.Controls.Add(Me.chkTimeStamp)
|
||||
Me.grpFields.Location = New System.Drawing.Point(12, 12)
|
||||
Me.grpFields.Name = "grpFields"
|
||||
Me.grpFields.Size = New System.Drawing.Size(195, 162)
|
||||
Me.grpFields.TabIndex = 0
|
||||
Me.grpFields.TabStop = False
|
||||
Me.grpFields.Text = "Available Fields"
|
||||
'
|
||||
'chkMonitorGame
|
||||
'
|
||||
Me.chkMonitorGame.AutoSize = True
|
||||
Me.chkMonitorGame.Location = New System.Drawing.Point(6, 134)
|
||||
Me.chkMonitorGame.Name = "chkMonitorGame"
|
||||
Me.chkMonitorGame.Size = New System.Drawing.Size(109, 17)
|
||||
Me.chkMonitorGame.TabIndex = 5
|
||||
Me.chkMonitorGame.Text = "Monitor this game"
|
||||
Me.chkMonitorGame.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkIcon
|
||||
'
|
||||
Me.chkIcon.AutoSize = True
|
||||
Me.chkIcon.Location = New System.Drawing.Point(6, 111)
|
||||
Me.chkIcon.Name = "chkIcon"
|
||||
Me.chkIcon.Size = New System.Drawing.Size(148, 17)
|
||||
Me.chkIcon.TabIndex = 4
|
||||
Me.chkIcon.Text = "Icon (Not Recommended)"
|
||||
Me.chkIcon.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkVersion
|
||||
'
|
||||
Me.chkVersion.AutoSize = True
|
||||
Me.chkVersion.Location = New System.Drawing.Point(6, 88)
|
||||
Me.chkVersion.Name = "chkVersion"
|
||||
Me.chkVersion.Size = New System.Drawing.Size(61, 17)
|
||||
Me.chkVersion.TabIndex = 3
|
||||
Me.chkVersion.Text = "Version"
|
||||
Me.chkVersion.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkCompany
|
||||
'
|
||||
Me.chkCompany.AutoSize = True
|
||||
Me.chkCompany.Location = New System.Drawing.Point(6, 65)
|
||||
Me.chkCompany.Name = "chkCompany"
|
||||
Me.chkCompany.Size = New System.Drawing.Size(70, 17)
|
||||
Me.chkCompany.TabIndex = 2
|
||||
Me.chkCompany.Text = "Company"
|
||||
Me.chkCompany.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkGamePath
|
||||
'
|
||||
Me.chkGamePath.AutoSize = True
|
||||
Me.chkGamePath.Location = New System.Drawing.Point(6, 42)
|
||||
Me.chkGamePath.Name = "chkGamePath"
|
||||
Me.chkGamePath.Size = New System.Drawing.Size(180, 17)
|
||||
Me.chkGamePath.TabIndex = 1
|
||||
Me.chkGamePath.Text = "Game Path (Not Recommended)"
|
||||
Me.chkGamePath.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkTimeStamp
|
||||
'
|
||||
Me.chkTimeStamp.AutoSize = True
|
||||
Me.chkTimeStamp.Location = New System.Drawing.Point(6, 19)
|
||||
Me.chkTimeStamp.Name = "chkTimeStamp"
|
||||
Me.chkTimeStamp.Size = New System.Drawing.Size(146, 17)
|
||||
Me.chkTimeStamp.TabIndex = 0
|
||||
Me.chkTimeStamp.Text = "Time stamp each backup"
|
||||
Me.chkTimeStamp.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.btnCancel.Location = New System.Drawing.Point(132, 180)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnCancel.TabIndex = 2
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnSave
|
||||
'
|
||||
Me.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
Me.btnSave.Location = New System.Drawing.Point(52, 180)
|
||||
Me.btnSave.Name = "btnSave"
|
||||
Me.btnSave.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnSave.TabIndex = 1
|
||||
Me.btnSave.Text = "&Save"
|
||||
Me.btnSave.UseVisualStyleBackColor = True
|
||||
'
|
||||
'frmSyncFields
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(219, 211)
|
||||
Me.Controls.Add(Me.btnCancel)
|
||||
Me.Controls.Add(Me.btnSave)
|
||||
Me.Controls.Add(Me.grpFields)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "frmSyncFields"
|
||||
Me.ShowIcon = False
|
||||
Me.ShowInTaskbar = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "Optional Sync Fields"
|
||||
Me.grpFields.ResumeLayout(False)
|
||||
Me.grpFields.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents grpFields As GroupBox
|
||||
Friend WithEvents chkMonitorGame As CheckBox
|
||||
Friend WithEvents chkIcon As CheckBox
|
||||
Friend WithEvents chkVersion As CheckBox
|
||||
Friend WithEvents chkCompany As CheckBox
|
||||
Friend WithEvents chkGamePath As CheckBox
|
||||
Friend WithEvents chkTimeStamp As CheckBox
|
||||
Friend WithEvents btnCancel As Button
|
||||
Friend WithEvents btnSave As Button
|
||||
End Class
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,115 @@
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmSyncFields
|
||||
Private eSyncFields As clsGame.eOptionalSyncFields
|
||||
|
||||
Public Property SyncFields As clsGame.eOptionalSyncFields
|
||||
Get
|
||||
Return eSyncFields
|
||||
End Get
|
||||
Set(value As clsGame.eOptionalSyncFields)
|
||||
eSyncFields = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub LoadForm()
|
||||
'Load fields
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
|
||||
chkCompany.Checked = True
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.GamePath) = clsGame.eOptionalSyncFields.GamePath Then
|
||||
chkGamePath.Checked = True
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Icon) = clsGame.eOptionalSyncFields.Icon Then
|
||||
chkIcon.Checked = True
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.MonitorGame) = clsGame.eOptionalSyncFields.MonitorGame Then
|
||||
chkMonitorGame.Checked = True
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.TimeStamp) = clsGame.eOptionalSyncFields.TimeStamp Then
|
||||
chkTimeStamp.Checked = True
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Version) = clsGame.eOptionalSyncFields.Version Then
|
||||
chkVersion.Checked = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmSyncFields_FormName
|
||||
|
||||
'Set Form Text
|
||||
btnCancel.Text = frmSyncFields_btnCancel
|
||||
btnSave.Text = frmSyncFields_btnSave
|
||||
grpFields.Text = frmSyncFields_grpFields
|
||||
chkMonitorGame.Text = frmSyncFields_chkMonitorGame
|
||||
chkIcon.Text = frmSyncFields_chkIcon
|
||||
chkVersion.Text = frmSyncFields_chkVersion
|
||||
chkCompany.Text = frmSyncFields_chkCompany
|
||||
chkGamePath.Text = frmSyncFields_chkGamePath
|
||||
chkTimeStamp.Text = frmSyncFields_chkTimeStamp
|
||||
End Sub
|
||||
|
||||
Private Sub frmSyncFields_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
LoadForm()
|
||||
End Sub
|
||||
|
||||
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
|
||||
Me.DialogResult = DialogResult.OK
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
Me.DialogResult = DialogResult.Cancel
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub chkTimeStamp_CheckedChanged(sender As Object, e As EventArgs) Handles chkTimeStamp.CheckedChanged
|
||||
If chkTimeStamp.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkGamePath_CheckedChanged(sender As Object, e As EventArgs) Handles chkGamePath.CheckedChanged
|
||||
If chkGamePath.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkCompany_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompany.CheckedChanged
|
||||
If chkCompany.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkVersion_CheckedChanged(sender As Object, e As EventArgs) Handles chkVersion.CheckedChanged
|
||||
If chkVersion.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkIcon_CheckedChanged(sender As Object, e As EventArgs) Handles chkIcon.CheckedChanged
|
||||
If chkIcon.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkMonitorGame_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorGame.CheckedChanged
|
||||
If chkMonitorGame.Checked Then
|
||||
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
||||
Else
|
||||
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
+22
-5
@@ -1,4 +1,6 @@
|
||||
Public Class frmTags
|
||||
Imports GBM.My.Resources
|
||||
|
||||
Public Class frmTags
|
||||
|
||||
Dim hshTagData As Hashtable
|
||||
Private bIsDirty As Boolean = False
|
||||
@@ -50,7 +52,7 @@
|
||||
Private Function HandleDirty() As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
|
||||
oResult = MsgBox("There are unsaved changes on this form. Do you want to save?", MsgBoxStyle.YesNoCancel, "Game Backup Monitor")
|
||||
oResult = mgrCommon.ShowMessage(App_ConfirmDirty, MsgBoxStyle.YesNoCancel)
|
||||
|
||||
Select Case oResult
|
||||
Case MsgBoxResult.Yes
|
||||
@@ -229,7 +231,7 @@
|
||||
If lstTags.SelectedItems.Count > 0 Then
|
||||
oTag = DirectCast(TagData(lstTags.SelectedItems(0).ToString), clsTag)
|
||||
|
||||
If MsgBox("Are you sure you want to delete " & oTag.Name & "? This cannot be undone." & vbCrLf & vbCrLf & "All games using this tag will have it removed.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmTags_ConfirmDelete, oTag.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrTags.DoTagDelete(oTag.ID)
|
||||
LoadData()
|
||||
eCurrentMode = eModes.Disabled
|
||||
@@ -248,13 +250,13 @@
|
||||
|
||||
Private Function CoreValidatation(ByVal oTag As clsTag) As Boolean
|
||||
If txtName.Text = String.Empty Then
|
||||
MsgBox("You must enter a valid tag name.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmTags_ErrorValidName, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If mgrTags.DoCheckDuplicate(oTag.Name, oTag.ID) Then
|
||||
MsgBox("A tag with this name already exists.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmTags_ErrorTagDupe, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -262,7 +264,22 @@
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmTags_FormName
|
||||
|
||||
'Set Form Text
|
||||
grpTag.Text = frmTags_grpTag
|
||||
lblName.Text = frmTags_lblName
|
||||
btnClose.Text = frmTags_btnClose
|
||||
btnDelete.Text = frmTags_btnDelete
|
||||
btnAdd.Text = frmTags_btnAdd
|
||||
btnCancel.Text = frmTags_btnCancel
|
||||
btnSave.Text = frmTags_btnSave
|
||||
End Sub
|
||||
|
||||
Private Sub frmTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
LoadData()
|
||||
ModeChange()
|
||||
AssignDirtyHandlers(grpTag.Controls)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmVariableManager
|
||||
Dim hshVariableData As Hashtable
|
||||
@@ -53,7 +54,7 @@ Public Class frmVariableManager
|
||||
End If
|
||||
End If
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose the path the variable represents:", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(frmVariableManager_PathBrowse, sDefaultFolder, False)
|
||||
|
||||
If sNewPath <> String.Empty Then txtPath.Text = sNewPath
|
||||
End Sub
|
||||
@@ -67,7 +68,7 @@ Public Class frmVariableManager
|
||||
Private Function HandleDirty() As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
|
||||
oResult = MsgBox("There are unsaved changes on this form. Do you want to save?", MsgBoxStyle.YesNoCancel, "Game Backup Monitor")
|
||||
oResult = mgrCommon.ShowMessage(App_ConfirmDirty, MsgBoxStyle.YesNoCancel)
|
||||
|
||||
Select Case oResult
|
||||
Case MsgBoxResult.Yes
|
||||
@@ -251,7 +252,7 @@ Public Class frmVariableManager
|
||||
If lstVariables.SelectedItems.Count > 0 Then
|
||||
oCustomVariable = DirectCast(VariableData(lstVariables.SelectedItems(0).ToString), clsPathVariable)
|
||||
|
||||
If MsgBox("Are you sure you want to delete " & oCustomVariable.Name & "? This cannot be undone.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(frmVariableManager_ConfirmDelete, oCustomVariable.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrVariables.DoVariableDelete(oCustomVariable.ID)
|
||||
mgrVariables.DoPathUpdate(oCurrentVariable.FormattedName, oCurrentVariable.Path)
|
||||
LoadData()
|
||||
@@ -271,19 +272,19 @@ Public Class frmVariableManager
|
||||
|
||||
Private Function CoreValidatation(ByVal oCustomVariable As clsPathVariable) As Boolean
|
||||
If txtName.Text = String.Empty Then
|
||||
MsgBox("You must enter a valid path name.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmVariableManager_ErrorValidName, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If txtPath.Text = String.Empty Then
|
||||
MsgBox("You must enter a valid path.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmVariableManager_ErrorValidPath, MsgBoxStyle.Exclamation)
|
||||
txtPath.Focus()
|
||||
Return False
|
||||
End If
|
||||
|
||||
If mgrVariables.DoCheckDuplicate(oCustomVariable.Name, oCustomVariable.ID) Then
|
||||
MsgBox("An custom variable with this name already exists.", MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(frmVariableManager_ErrorVariableDupe, MsgBoxStyle.Exclamation)
|
||||
txtName.Focus()
|
||||
Return False
|
||||
End If
|
||||
@@ -291,7 +292,24 @@ Public Class frmVariableManager
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub SetForm()
|
||||
'Set Form Name
|
||||
Me.Text = frmVariableManager_FormName
|
||||
|
||||
'Set Form Text
|
||||
btnCancel.Text = frmVariableManager_btnCancel
|
||||
btnSave.Text = frmVariableManager_btnSave
|
||||
grpVariable.Text = frmVariableManager_grpVariable
|
||||
btnPathBrowse.Text = frmVariableManager_btnPathBrowse
|
||||
lblPath.Text = frmVariableManager_lblPath
|
||||
lblName.Text = frmVariableManager_lblName
|
||||
btnClose.Text = frmVariableManager_btnClose
|
||||
btnDelete.Text = frmVariableManager_btnDelete
|
||||
btnAdd.Text = frmVariableManager_btnAdd
|
||||
End Sub
|
||||
|
||||
Private Sub frmVariableManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
LoadData()
|
||||
ModeChange()
|
||||
AssignDirtyHandlers(grpVariable.Controls)
|
||||
|
||||
@@ -90,13 +90,21 @@
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>ManagedMinimumRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent Condition="$(Platform)==x64">echo Running x64 Post Build Event...
|
||||
COPY /Y "$(SolutionDir)\GBM\x64\sqlite3.dll" .
|
||||
RMDIR /S /Q Utilities\x86</PostBuildEvent>
|
||||
<PostBuildEvent Condition="$(Platform)==x86">echo Running x86 Post Build Event...
|
||||
COPY /Y "$(SolutionDir)\GBM\x86\sqlite3.dll" .
|
||||
RMDIR /S /Q Utilities\x64</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>References\Mono.Data.Sqlite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>References\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
@@ -150,6 +158,12 @@
|
||||
<Compile Include="Forms\frmGameTags.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmIncludeExclude.Designer.vb">
|
||||
<DependentUpon>frmIncludeExclude.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmIncludeExclude.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmStartUpWizard.Designer.vb">
|
||||
<DependentUpon>frmStartUpWizard.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -181,6 +195,12 @@
|
||||
<DependentUpon>frmMain.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmSyncFields.Designer.vb">
|
||||
<DependentUpon>frmSyncFields.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmSyncFields.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\frmTags.Designer.vb">
|
||||
<DependentUpon>frmTags.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -239,6 +259,9 @@
|
||||
<EmbeddedResource Include="Forms\frmGameTags.resx">
|
||||
<DependentUpon>frmGameTags.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\frmIncludeExclude.resx">
|
||||
<DependentUpon>frmIncludeExclude.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\frmStartUpWizard.resx">
|
||||
<DependentUpon>frmStartUpWizard.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -256,6 +279,9 @@
|
||||
<DependentUpon>frmMain.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\frmSyncFields.resx">
|
||||
<DependentUpon>frmSyncFields.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\frmTags.resx">
|
||||
<DependentUpon>frmTags.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@@ -264,9 +290,9 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -305,41 +331,32 @@
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="gbm.ico" />
|
||||
<Content Include="gbm.ico">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="License\credits.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="References\System.Data.SQLite.dll" />
|
||||
<None Include="Resources\gbm.ico" />
|
||||
<Content Include="Resources\Admin.png" />
|
||||
<Content Include="Resources\GBM_Tray_Detected.ico" />
|
||||
<Content Include="Resources\GBM_Tray_Ready.ico" />
|
||||
<Content Include="Resources\GBM_Tray_Stopped.ico" />
|
||||
<Content Include="Resources\User.png" />
|
||||
<Content Include="Utilities\x64\7za.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="References\Mono.Data.Sqlite.dll" />
|
||||
<Content Include="Utilities\x64\7za.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utilities\x64\7zxa.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utilities\x86\7za.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utilities\x86\7za.exe">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utilities\x86\7zxa.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="x64\SQLite.Interop.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="x86\SQLite.Interop.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="x86\sqlite3.dll" />
|
||||
<None Include="Resources\gbm.ico" />
|
||||
<Content Include="Resources\Admin.png" />
|
||||
<Content Include="Resources\Clock.png" />
|
||||
<Content Include="Resources\file.ico" />
|
||||
<Content Include="Resources\folder.ico" />
|
||||
<Content Include="Resources\GBM_Tray_Detected.ico" />
|
||||
<Content Include="Resources\GBM_Tray_Ready.ico" />
|
||||
<Content Include="Resources\GBM_Tray_Stopped.ico" />
|
||||
<Content Include="Resources\Inbox.png" />
|
||||
<Content Include="Resources\type.ico" />
|
||||
<Content Include="Resources\User.png" />
|
||||
<Content Include="x64\sqlite3.dll" />
|
||||
<None Include="Resources\Stopped.png" />
|
||||
<None Include="Resources\Detected.png" />
|
||||
<None Include="Resources\Ready.png" />
|
||||
@@ -371,6 +388,7 @@
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
@@ -378,5 +396,6 @@
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
|
||||
-->
|
||||
</Project>
|
||||
+73
-59
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class mgrBackup
|
||||
|
||||
@@ -41,7 +42,7 @@ Public Class mgrBackup
|
||||
'Create manifest item
|
||||
oItem.Name = oGameInfo.Name
|
||||
'Keep the path relative to the manifest location
|
||||
oItem.FileName = sBackupFile.Replace(Path.GetDirectoryName(mgrPath.RemoteDatabaseLocation) & "\", "")
|
||||
oItem.FileName = sBackupFile.Replace(Path.GetDirectoryName(mgrPath.RemoteDatabaseLocation) & Path.DirectorySeparatorChar, "")
|
||||
oItem.RestorePath = oGameInfo.TruePath
|
||||
oItem.AbsolutePath = oGameInfo.AbsolutePath
|
||||
oItem.DateUpdated = dTimeStamp
|
||||
@@ -74,16 +75,38 @@ Public Class mgrBackup
|
||||
Using oStream
|
||||
If sList <> String.Empty Then
|
||||
For Each sTypeItem As String In sList.Split(":")
|
||||
oStream.WriteLine("""" & sBackupPath & "\" & sTypeItem & """")
|
||||
oStream.WriteLine("""" & sBackupPath & Path.DirectorySeparatorChar & sTypeItem & """")
|
||||
Next
|
||||
End If
|
||||
oStream.Flush()
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog("An error occured creating a file list: " & ex.Message, False, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorFileList, ex.Message), False, ToolTipIcon.Error, True)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Function CheckBackupPrereq(ByVal oGame As clsGame) As Boolean
|
||||
Dim sBackupFile As String = oSettings.BackupFolder
|
||||
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.Name
|
||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.Name & ".7z"
|
||||
|
||||
If mgrRestore.CheckManifest(oGame.Name) Then
|
||||
If mgrCommon.ShowMessage(mgrBackup_ConfirmManifestConflict, oGame.Name, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog(mgrBackup_ErrorManifestConflict, False, ToolTipIcon.Error, True)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
If oSettings.ShowOverwriteWarning And File.Exists(sBackupFile) And Not oGame.AppendTimeStamp Then
|
||||
If mgrCommon.ShowMessage(mgrBackup_ConfirmOverwrite, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorOverwriteAbort, oGame.Name), False, ToolTipIcon.Error, True)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Sub DoBackup(ByVal oBackupList As List(Of clsGame))
|
||||
Dim oGame As clsGame
|
||||
Dim bDoBackup As Boolean
|
||||
@@ -108,42 +131,28 @@ Public Class mgrBackup
|
||||
CancelOperation = False
|
||||
RaiseEvent UpdateBackupInfo(oGame)
|
||||
|
||||
If mgrRestore.CheckManifest(oGame.Name) Then
|
||||
If MsgBox("The manifest shows the backup folder contains a backup for " & oGame.Name & " that has not been restored on this computer." & vbCrLf & vbCrLf & "Do you want to overwrite this file anyway?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog("Backup aborted by user due to manifest conflict.", False, ToolTipIcon.Error, True)
|
||||
bDoBackup = False
|
||||
End If
|
||||
End If
|
||||
|
||||
If oSettings.CreateSubFolder Then
|
||||
sBackupFile = sBackupFile & "\" & oGame.Name
|
||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.Name
|
||||
Try
|
||||
If Not Directory.Exists(sBackupFile) Then
|
||||
Directory.CreateDirectory(sBackupFile)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog("Backup Aborted. A failure occured while creating backup sub-folder for " & oGame.Name & vbCrLf & ex.Message, False, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorSubFolderCreate, New String() {oGame.Name, ex.Message}), False, ToolTipIcon.Error, True)
|
||||
bDoBackup = False
|
||||
End Try
|
||||
End If
|
||||
|
||||
If oGame.AppendTimeStamp Then
|
||||
sBackupFile = sBackupFile & "\" & oGame.Name & sTimeStamp & ".7z"
|
||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.Name & sTimeStamp & ".7z"
|
||||
Else
|
||||
sBackupFile = sBackupFile & "\" & oGame.Name & ".7z"
|
||||
End If
|
||||
|
||||
If oSettings.ShowOverwriteWarning And File.Exists(sBackupFile) Then
|
||||
If MsgBox("A file with the same name already exists in the backup folder." & vbCrLf & vbCrLf & "Do you want to overwrite this file?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog(oGame.Name & " backup aborted by user due to overwrite.", False, ToolTipIcon.Error, True)
|
||||
bDoBackup = False
|
||||
End If
|
||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.Name & ".7z"
|
||||
End If
|
||||
|
||||
If bDoBackup Then
|
||||
If oGame.AbsolutePath = False Then
|
||||
If oGame.Path <> String.Empty Then
|
||||
sSavePath = oGame.ProcessPath & "\" & oGame.Path
|
||||
sSavePath = oGame.ProcessPath & Path.DirectorySeparatorChar & oGame.Path
|
||||
Else
|
||||
sSavePath = oGame.ProcessPath
|
||||
End If
|
||||
@@ -152,7 +161,7 @@ Public Class mgrBackup
|
||||
End If
|
||||
|
||||
If oGame.FolderSave = True Then
|
||||
BuildFileList(sSavePath, "*.*", mgrPath.IncludeFileLocation)
|
||||
BuildFileList(sSavePath, "*", mgrPath.IncludeFileLocation)
|
||||
Else
|
||||
BuildFileList(sSavePath, oGame.FileType, mgrPath.IncludeFileLocation)
|
||||
End If
|
||||
@@ -160,53 +169,58 @@ Public Class mgrBackup
|
||||
BuildFileList(sSavePath, oGame.ExcludeList, mgrPath.ExcludeFileLocation)
|
||||
|
||||
Try
|
||||
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
|
||||
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
|
||||
If File.Exists(sBackupFile) Then
|
||||
File.Delete(sBackupFile)
|
||||
End If
|
||||
|
||||
If Directory.Exists(sSavePath) Then
|
||||
prs7z.StartInfo.Arguments = "a -t7z " & "-i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
|
||||
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
|
||||
prs7z.StartInfo.UseShellExecute = False
|
||||
prs7z.StartInfo.RedirectStandardOutput = True
|
||||
prs7z.StartInfo.CreateNoWindow = True
|
||||
prs7z.Start()
|
||||
RaiseEvent UpdateLog("Backup of " & sSavePath & " in progress...", False, ToolTipIcon.Info, True)
|
||||
While Not prs7z.StandardOutput.EndOfStream
|
||||
If CancelOperation Then
|
||||
prs7z.Kill()
|
||||
RaiseEvent UpdateLog("Backup Aborted. The backup file for " & oGame.Name & " will be unusable.", True, ToolTipIcon.Error, True)
|
||||
Exit While
|
||||
If Settings.Is7zUtilityValid Then
|
||||
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
|
||||
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
|
||||
If File.Exists(sBackupFile) Then
|
||||
File.Delete(sBackupFile)
|
||||
End If
|
||||
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
|
||||
End While
|
||||
prs7z.WaitForExit()
|
||||
If Not CancelOperation Then
|
||||
If prs7z.ExitCode = 0 Then
|
||||
RaiseEvent UpdateLog(oGame.Name & " backup completed.", False, ToolTipIcon.Info, True)
|
||||
bBackupCompleted = True
|
||||
Else
|
||||
RaiseEvent UpdateLog(oGame.Name & " backup finished with warnings or errors.", True, ToolTipIcon.Warning, True)
|
||||
bBackupCompleted = False
|
||||
|
||||
prs7z.StartInfo.Arguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
|
||||
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
|
||||
prs7z.StartInfo.UseShellExecute = False
|
||||
prs7z.StartInfo.RedirectStandardOutput = True
|
||||
prs7z.StartInfo.CreateNoWindow = True
|
||||
prs7z.Start()
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupInProgress, sSavePath), False, ToolTipIcon.Info, True)
|
||||
While Not prs7z.StandardOutput.EndOfStream
|
||||
If CancelOperation Then
|
||||
prs7z.Kill()
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorFullAbort, oGame.Name), True, ToolTipIcon.Error, True)
|
||||
Exit While
|
||||
End If
|
||||
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
|
||||
End While
|
||||
prs7z.WaitForExit()
|
||||
If Not CancelOperation Then
|
||||
If prs7z.ExitCode = 0 Then
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupComplete, New String() {oGame.Name, mgrCommon.GetFileSize(sBackupFile)}), False, ToolTipIcon.Info, True)
|
||||
bBackupCompleted = True
|
||||
Else
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupWarnings, oGame.Name), True, ToolTipIcon.Warning, True)
|
||||
bBackupCompleted = False
|
||||
End If
|
||||
End If
|
||||
prs7z.Dispose()
|
||||
Else
|
||||
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
|
||||
bBackupCompleted = False
|
||||
End If
|
||||
prs7z.Dispose()
|
||||
Else
|
||||
RaiseEvent UpdateLog("Backup Aborted. The saved game path for " & oGame.Name & " does not exist.", True, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorNoSavePath, oGame.Name), True, ToolTipIcon.Error, True)
|
||||
bBackupCompleted = False
|
||||
End If
|
||||
|
||||
'Write Main Manifest
|
||||
If bBackupCompleted Then
|
||||
If oSettings.CheckSum Then
|
||||
RaiseEvent UpdateLog("Generating SHA-256 hash for " & oGame.Name & " backup file.", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_GenerateHash, oGame.Name), False, ToolTipIcon.Info, True)
|
||||
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
|
||||
End If
|
||||
|
||||
If Not DoManifestUpdate(oGame, sBackupFile, dTimeStamp, sHash) Then
|
||||
RaiseEvent UpdateLog("The manifest update for " & oGame.Name & " failed.", True, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorManifestFailure, oGame.Name), True, ToolTipIcon.Error, True)
|
||||
End If
|
||||
|
||||
'Write the process path if we have it
|
||||
@@ -215,14 +229,14 @@ Public Class mgrBackup
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog("An unexpected error occured during the backup of " & oGame.Name & vbCrLf & ex.Message, False, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorOtherFailure, New String() {oGame.Name, ex.Message}), False, ToolTipIcon.Error, True)
|
||||
End Try
|
||||
End If
|
||||
|
||||
If bBackupCompleted Then
|
||||
RaiseEvent SetLastAction(oGame.CroppedName & " backup completed")
|
||||
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrBackup_ActionComplete, oGame.CroppedName))
|
||||
Else
|
||||
RaiseEvent SetLastAction(oGame.CroppedName & " backup failed")
|
||||
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrBackup_ActionFailed, oGame.CroppedName))
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
+209
-7
@@ -1,7 +1,27 @@
|
||||
Imports System.Net
|
||||
Imports GBM.My.Resources
|
||||
Imports System.Net
|
||||
Imports System.IO
|
||||
Imports System.Security.Principal
|
||||
|
||||
Public Class mgrCommon
|
||||
|
||||
'These need to be updated when upgrading the packaged 7z utility
|
||||
Private Shared sUtility64Hash As String = "05ACEE3BAC0C6C4E396116EF27B953F992DE8D28DD14D317977F45692304C318" 'v16.02 7za.exe x64
|
||||
Private Shared sUtility32Hash As String = "7AA7056DB4348229A288EEF49027B94C0D8D1A3C3AEDC6FA89B640334C7B37E9" 'v16.02 7za.exe x86
|
||||
|
||||
Public Shared ReadOnly Property UtilityHash As String
|
||||
Get
|
||||
Select Case mgrPath.ReleaseType
|
||||
Case 64
|
||||
Return sUtility64Hash
|
||||
Case 32
|
||||
Return sUtility32Hash
|
||||
Case Else
|
||||
Return sUtility32Hash
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Shared ReadOnly Property BuildVersion As Integer
|
||||
Get
|
||||
Return My.Application.Info.Version.Build
|
||||
@@ -18,6 +38,7 @@ Public Class mgrCommon
|
||||
Try
|
||||
Dim request As WebRequest = WebRequest.Create(URL)
|
||||
Dim response As WebResponse = request.GetResponse()
|
||||
response.Close()
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
@@ -34,9 +55,9 @@ Public Class mgrCommon
|
||||
|
||||
Public Shared Function BooleanYesNo(ByVal bBool As Boolean) As String
|
||||
If bBool Then
|
||||
Return "Yes"
|
||||
Return mgrCommon_Yes
|
||||
Else
|
||||
Return "No"
|
||||
Return mgrCommon_No
|
||||
End If
|
||||
End Function
|
||||
|
||||
@@ -44,7 +65,7 @@ Public Class mgrCommon
|
||||
Dim fbBrowser As New SaveFileDialog
|
||||
fbBrowser.Title = sTitle
|
||||
fbBrowser.DefaultExt = sExtension
|
||||
fbBrowser.Filter = sFileType & " files (*." & sExtension & ")|*." & sExtension
|
||||
fbBrowser.Filter = FormatString(mgrCommon_FilesFilter, New String() {sFileType, sExtension, sExtension})
|
||||
fbBrowser.InitialDirectory = sDefaultFolder
|
||||
fbBrowser.FileName = sDefaultFile
|
||||
|
||||
@@ -59,7 +80,7 @@ Public Class mgrCommon
|
||||
Dim fbBrowser As New OpenFileDialog
|
||||
fbBrowser.Title = sTitle
|
||||
fbBrowser.DefaultExt = sExtension
|
||||
fbBrowser.Filter = sFileType & " files (*." & sExtension & ")|*." & sExtension
|
||||
fbBrowser.Filter = FormatString(mgrCommon_FilesFilter, New String() {sFileType, sExtension, sExtension})
|
||||
fbBrowser.InitialDirectory = sDefaultFolder
|
||||
fbBrowser.Multiselect = bMulti
|
||||
|
||||
@@ -91,14 +112,40 @@ Public Class mgrCommon
|
||||
Return String.Empty
|
||||
End Function
|
||||
|
||||
Public Shared Function IsElevated() As Boolean
|
||||
If My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then
|
||||
Public Shared Function IsProcessNotSearchable(ByVal oGame As clsGame) As Boolean
|
||||
Dim sExemptList As String() = {"dosbox", "scummvm"}
|
||||
Dim bFound As Boolean = False
|
||||
|
||||
'We can't search if we don't have a configuration
|
||||
If oGame.Temporary Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
For Each s As String In sExemptList
|
||||
If oGame.ProcessName.ToLower.Contains(s) Then bFound = True
|
||||
Next
|
||||
|
||||
If bFound Or oGame.Duplicate = True Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Shared Function IsUnix() As Boolean
|
||||
If Path.DirectorySeparatorChar = "/" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Public Shared Function IsElevated() As Boolean
|
||||
Dim oID As WindowsIdentity = WindowsIdentity.GetCurrent
|
||||
Dim oPrincipal As New WindowsPrincipal(oID)
|
||||
Return oPrincipal.IsInRole(WindowsBuiltInRole.Administrator)
|
||||
End Function
|
||||
|
||||
Public Shared Sub RestartAsAdmin()
|
||||
Dim oProcess As New Process
|
||||
|
||||
@@ -110,4 +157,159 @@ Public Class mgrCommon
|
||||
oProcess.Start()
|
||||
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
|
||||
|
||||
'Delete file based on OS type
|
||||
Public Shared Sub DeleteFile(ByVal sPath As String, Optional ByVal bRecycle As Boolean = True)
|
||||
If File.Exists(sPath) Then
|
||||
If IsUnix() Then
|
||||
File.Delete(sPath)
|
||||
Else
|
||||
If bRecycle Then
|
||||
My.Computer.FileSystem.DeleteFile(sPath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)
|
||||
Else
|
||||
File.Delete(sPath)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'Delete directory based on OS type
|
||||
Public Shared Sub DeleteDirectory(ByVal sPath As String, Optional ByVal bRecursive As Boolean = False)
|
||||
If Directory.Exists(sPath) Then
|
||||
If IsUnix() Then
|
||||
Directory.Delete(sPath, bRecursive)
|
||||
Else
|
||||
My.Computer.FileSystem.DeleteDirectory(sPath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'Save string as text file
|
||||
Public Shared Sub SaveText(ByVal sText As String, ByVal sPath As String)
|
||||
Dim oStream As StreamWriter
|
||||
|
||||
Try
|
||||
If File.Exists(sPath) Then DeleteFile(sPath, False)
|
||||
oStream = New StreamWriter(sPath)
|
||||
oStream.Write(sText)
|
||||
oStream.Flush()
|
||||
oStream.Close()
|
||||
Catch ex As Exception
|
||||
ShowMessage(mgrCommon_ErrorWritingTextFile, ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Get a file size
|
||||
Public Shared Function GetFileSize(ByVal sFile As String) As String
|
||||
Dim oFileInfo As FileInfo
|
||||
Dim dFileSize As Double
|
||||
|
||||
Try
|
||||
oFileInfo = New FileInfo(sFile)
|
||||
dFileSize = oFileInfo.Length
|
||||
If dFileSize > 1048576 Then
|
||||
Return FormatString(App_MB, Math.Round(dFileSize / 1048576, 2).ToString)
|
||||
Else
|
||||
Return FormatString(App_KB, Math.Round(dFileSize / 1024, 2).ToString)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Return String.Empty
|
||||
End Try
|
||||
End Function
|
||||
|
||||
'Handles no extra parameters
|
||||
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
oResult = MsgBox(FormatString(sMsg), oType, My.Resources.App_NameLong)
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
'Handles single parameter stings
|
||||
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParam As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
oResult = MsgBox(FormatString(sMsg, sParam), oType, My.Resources.App_NameLong)
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
'Handles multi-parameter strings
|
||||
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParams As String(), ByVal oType As MsgBoxStyle) As MsgBoxResult
|
||||
Dim oResult As MsgBoxResult
|
||||
oResult = MsgBox(FormatString(sMsg, sParams), oType, My.Resources.App_NameLong)
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
'Handles no extra parameters
|
||||
Public Shared Function FormatString(ByVal sString As String) As String
|
||||
sString = sString.Replace("[BR]", vbCrLf)
|
||||
|
||||
Return sString
|
||||
End Function
|
||||
|
||||
|
||||
'Handles single parameter stings
|
||||
Public Shared Function FormatString(ByVal sString As String, ByVal sParam As String) As String
|
||||
sString = sString.Replace("[BR]", vbCrLf)
|
||||
sString = sString.Replace("[PARAM]", sParam)
|
||||
|
||||
Return sString
|
||||
End Function
|
||||
|
||||
'Handles multi-parameter strings
|
||||
Public Shared Function FormatString(ByVal sString As String, ByVal sParams As String()) As String
|
||||
Dim iParam As Integer
|
||||
|
||||
sString = sString.Replace("[BR]", vbCrLf)
|
||||
|
||||
For Each s As String In sParams
|
||||
iParam = sString.IndexOf("[PARAM]")
|
||||
sString = sString.Remove(iParam, 7)
|
||||
sString = sString.Insert(iParam, s)
|
||||
Next
|
||||
|
||||
Return sString
|
||||
End Function
|
||||
|
||||
'Compare functions
|
||||
Public Shared Function CompareImportTagsByName(oItem1 As Tag, oItem2 As Tag) As Integer
|
||||
Return String.Compare(oItem1.Name, oItem2.Name)
|
||||
End Function
|
||||
|
||||
Public Shared Function CompareByListBoxItemByValue(sItem1 As KeyValuePair(Of String, String), sItem2 As KeyValuePair(Of String, String)) As Integer
|
||||
Return String.Compare(sItem1.Value, sItem2.Value)
|
||||
End Function
|
||||
|
||||
'Maintenance Only - Function for string management
|
||||
Public Shared Sub GetAllStrings(ByVal ctlParent As Control, ByRef sResource As String, ByRef sCode As String, ByVal sFormName As String)
|
||||
For Each ctl As Control In ctlParent.Controls
|
||||
If TypeOf ctl Is GroupBox Then
|
||||
sResource &= sFormName & "_" & ctl.Name & vbTab & ctl.Text & vbCrLf
|
||||
sCode &= ctl.Name & ".Text = " & sFormName & "_" & ctl.Name & vbCrLf
|
||||
GetAllStrings(ctl, sResource, sCode, sFormName)
|
||||
ElseIf TypeOf ctl Is TabControl Then
|
||||
For Each tb As TabPage In ctl.Controls
|
||||
GetAllStrings(tb, sResource, sCode, sFormName)
|
||||
Next
|
||||
ElseIf TypeOf ctl Is Label Then
|
||||
sResource &= sFormName & "_" & ctl.Name & vbTab & ctl.Text & vbCrLf
|
||||
sCode &= ctl.Name & ".Text = " & sFormName & "_" & ctl.Name & vbCrLf
|
||||
ElseIf TypeOf ctl Is Button Then
|
||||
sResource &= sFormName & "_" & ctl.Name & vbTab & ctl.Text & vbCrLf
|
||||
sCode &= ctl.Name & ".Text = " & sFormName & "_" & ctl.Name & vbCrLf
|
||||
ElseIf TypeOf ctl Is RadioButton Then
|
||||
sResource &= sFormName & "_" & ctl.Name & vbTab & ctl.Text & vbCrLf
|
||||
sCode &= ctl.Name & ".Text = " & sFormName & "_" & ctl.Name & vbCrLf
|
||||
ElseIf TypeOf ctl Is CheckBox Then
|
||||
sResource &= sFormName & "_" & ctl.Name & vbTab & ctl.Text & vbCrLf
|
||||
sCode &= ctl.Name & ".Text = " & sFormName & "_" & ctl.Name & vbCrLf
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
Imports System.IO
|
||||
Imports System.Security
|
||||
Imports System.Security.Cryptography
|
||||
|
||||
Public Class mgrHash
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
Imports System.IO
|
||||
|
||||
Public Class mgrManifest
|
||||
Public Class mgrManifest
|
||||
|
||||
Public Shared Function ReadManifest(ByVal iSelectDB As mgrSQLite.Database) As SortedList
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
@@ -84,7 +82,7 @@ Public Class mgrManifest
|
||||
Dim sSQL As String
|
||||
Dim hshParams As New Hashtable
|
||||
|
||||
sSQL = "INSERT INTO manifest VALUES (@ID, @Name, @FileName, @Path, @AbsolutePath, @DateUpdated, @UpdatedBy, @CheckSum)"
|
||||
sSQL = "INSERT OR REPLACE INTO manifest VALUES (@ID, @Name, @FileName, @Path, @AbsolutePath, @DateUpdated, @UpdatedBy, @CheckSum)"
|
||||
|
||||
hshParams.Add("ID", oBackupItem.ID)
|
||||
hshParams.Add("Name", oBackupItem.Name)
|
||||
|
||||
+206
-154
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class mgrMonitorList
|
||||
|
||||
@@ -9,7 +10,7 @@ Public Class mgrMonitorList
|
||||
|
||||
Public Shared Event UpdateLog(sLogUpdate As String, bTrayUpdate As Boolean, objIcon As System.Windows.Forms.ToolTipIcon, bTimeStamp As Boolean)
|
||||
|
||||
Public Shared Sub HandleBackupLocationChange()
|
||||
Public Shared Sub HandleBackupLocationChange(ByVal oSettings As mgrSettings)
|
||||
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Remote)
|
||||
Dim iGameCount As Integer
|
||||
|
||||
@@ -23,50 +24,100 @@ Public Class mgrMonitorList
|
||||
|
||||
'If the remote database actually contains a list, then ask what to do
|
||||
If iGameCount > 0 Then
|
||||
If MsgBox("GBM data already exists in the backup folder." & vbCrLf & vbCrLf & _
|
||||
"Do you want to make your local game list the new master game list in this folder? (Recommended)" & vbCrLf & vbCrLf & _
|
||||
"Choosing No will sync your local game list to the current master game list in this folder.", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
mgrMonitorList.SyncMonitorLists()
|
||||
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
Else
|
||||
mgrMonitorList.SyncMonitorLists(False)
|
||||
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
|
||||
End If
|
||||
Else
|
||||
mgrMonitorList.SyncMonitorLists()
|
||||
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
End If
|
||||
Else
|
||||
mgrMonitorList.SyncMonitorLists()
|
||||
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub ExportMonitorList(ByVal sLocation As String)
|
||||
Dim frm As New frmFilter
|
||||
Dim oList As List(Of Game)
|
||||
Dim bSuccess As Boolean = False
|
||||
Dim oTagFilters As New List(Of clsTag)
|
||||
Dim oStringFilters As New Hashtable
|
||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
|
||||
|
||||
frm.ShowDialog()
|
||||
oList = ReadListForExport(frm.Filters, frm.FilterType)
|
||||
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmApplyFilter, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
Dim frm As New frmFilter
|
||||
frm.ShowDialog()
|
||||
oTagFilters = frm.TagFilters
|
||||
oStringFilters = frm.StringFilters
|
||||
eCurrentFilter = frm.FilterType
|
||||
End If
|
||||
|
||||
oList = ReadListForExport(oTagFilters, oStringFilters, eCurrentFilter)
|
||||
|
||||
bSuccess = mgrXML.SerializeAndExport(oList, sLocation)
|
||||
|
||||
If bSuccess Then
|
||||
MsgBox("Export Complete. " & oList.Count & " item(s) have been exported.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(mgrMonitorList_ExportComplete, oList.Count, MsgBoxStyle.Information)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub DoListAddUpdateSync(ByVal hshGames As Hashtable, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local)
|
||||
Public Shared Sub DoListAddUpdateSync(ByVal hshGames As Hashtable, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local,
|
||||
Optional ByVal eSyncFields As clsGame.eOptionalSyncFields = clsGame.eOptionalSyncFields.None)
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
Dim sSQL As String
|
||||
Dim hshParams As Hashtable
|
||||
Dim oParamList As New List(Of Hashtable)
|
||||
|
||||
sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, Hours, Enabled, MonitorOnly) "
|
||||
'Handle Optional Sync Fields
|
||||
Dim sGamePath As String
|
||||
Dim sIcon As String
|
||||
Dim sVersion As String
|
||||
Dim sCompany As String
|
||||
Dim sMonitorGame As String
|
||||
Dim sTimeStamp As String
|
||||
|
||||
'Setup SQL for optional fields
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
|
||||
sCompany = "@Company"
|
||||
Else
|
||||
sCompany = "(SELECT Company FROM monitorlist WHERE MonitorID=@ID)"
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.GamePath) = clsGame.eOptionalSyncFields.GamePath Then
|
||||
sGamePath = "@ProcessPath"
|
||||
Else
|
||||
sGamePath = "(SELECT ProcessPath FROM monitorlist WHERE MonitorID=@ID)"
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Icon) = clsGame.eOptionalSyncFields.Icon Then
|
||||
sIcon = "@Icon"
|
||||
Else
|
||||
sIcon = "(SELECT Icon FROM monitorlist WHERE MonitorID=@ID)"
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.MonitorGame) = clsGame.eOptionalSyncFields.MonitorGame Then
|
||||
sMonitorGame = "@Enabled"
|
||||
Else
|
||||
sMonitorGame = "COALESCE((SELECT Enabled FROM monitorlist WHERE MonitorID=@ID),1)"
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.TimeStamp) = clsGame.eOptionalSyncFields.TimeStamp Then
|
||||
sTimeStamp = "@TimeStamp"
|
||||
Else
|
||||
sTimeStamp = "COALESCE((SELECT TimeStamp FROM monitorlist WHERE MonitorID=@ID),0)"
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Version) = clsGame.eOptionalSyncFields.Version Then
|
||||
sVersion = "@Version"
|
||||
Else
|
||||
sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)"
|
||||
End If
|
||||
|
||||
sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly) "
|
||||
sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
|
||||
sSQL &= "@TimeStamp, @ExcludeList, @Hours, @Enabled, @MonitorOnly);"
|
||||
sSQL &= sTimeStamp & ", @ExcludeList, " & sGamePath & ", "
|
||||
sSQL &= sIcon & ", @Hours, " & sVersion & ", "
|
||||
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly);"
|
||||
|
||||
For Each oGame As clsGame In hshGames.Values
|
||||
hshParams = New Hashtable
|
||||
|
||||
'Parameters
|
||||
'Core Parameters
|
||||
hshParams.Add("ID", oGame.ID)
|
||||
hshParams.Add("Name", oGame.Name)
|
||||
hshParams.Add("Process", oGame.TrueProcess)
|
||||
@@ -74,13 +125,29 @@ Public Class mgrMonitorList
|
||||
hshParams.Add("AbsolutePath", oGame.AbsolutePath)
|
||||
hshParams.Add("FolderSave", oGame.FolderSave)
|
||||
hshParams.Add("FileType", oGame.FileType)
|
||||
hshParams.Add("TimeStamp", oGame.AppendTimeStamp)
|
||||
hshParams.Add("ExcludeList", oGame.ExcludeList)
|
||||
hshParams.Add("Hours", oGame.Hours)
|
||||
hshParams.Add("MonitorOnly", oGame.MonitorOnly)
|
||||
|
||||
'Required Defaults
|
||||
hshParams.Add("Enabled", True)
|
||||
hshParams.Add("MonitorOnly", False)
|
||||
'Optional Parameters
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
|
||||
hshParams.Add("Company", oGame.Company)
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.GamePath) = clsGame.eOptionalSyncFields.GamePath Then
|
||||
hshParams.Add("ProcessPath", oGame.ProcessPath)
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Icon) = clsGame.eOptionalSyncFields.Icon Then
|
||||
hshParams.Add("Icon", oGame.Icon)
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.MonitorGame) = clsGame.eOptionalSyncFields.MonitorGame Then
|
||||
hshParams.Add("Enabled", oGame.Enabled)
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.TimeStamp) = clsGame.eOptionalSyncFields.TimeStamp Then
|
||||
hshParams.Add("TimeStamp", oGame.AppendTimeStamp)
|
||||
End If
|
||||
If (eSyncFields And clsGame.eOptionalSyncFields.Version) = clsGame.eOptionalSyncFields.Version Then
|
||||
hshParams.Add("Version", oGame.Version)
|
||||
End If
|
||||
|
||||
oParamList.Add(hshParams)
|
||||
Next
|
||||
@@ -111,7 +178,7 @@ Public Class mgrMonitorList
|
||||
oDatabase.RunMassParamQuery(sSQL, oParamList)
|
||||
End Sub
|
||||
|
||||
Public Shared Sub SyncMonitorLists(Optional ByVal bToRemote As Boolean = True)
|
||||
Public Shared Sub SyncMonitorLists(ByVal eSyncFields As clsGame.eOptionalSyncFields, Optional ByVal bToRemote As Boolean = True)
|
||||
Dim hshCompareFrom As Hashtable
|
||||
Dim hshCompareTo As Hashtable
|
||||
Dim hshSyncItems As Hashtable
|
||||
@@ -123,9 +190,9 @@ Public Class mgrMonitorList
|
||||
Cursor.Current = Cursors.WaitCursor
|
||||
|
||||
If bToRemote Then
|
||||
RaiseEvent UpdateLog("A sync to the master game list has been triggered.", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrMonitorList_SyncToMaster, False, ToolTipIcon.Info, True)
|
||||
Else
|
||||
RaiseEvent UpdateLog("A sync from the master game list has been triggered.", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrMonitorList_SyncFromMaster, False, ToolTipIcon.Info, True)
|
||||
End If
|
||||
|
||||
'Add / Update Sync
|
||||
@@ -140,19 +207,18 @@ Public Class mgrMonitorList
|
||||
hshSyncItems = hshCompareFrom.Clone
|
||||
|
||||
For Each oFromItem In hshCompareFrom.Values
|
||||
If hshCompareTo.Contains(oFromItem.ProcessName) Then
|
||||
oToItem = DirectCast(hshCompareTo(oFromItem.ProcessName), clsGame)
|
||||
If oFromItem.SyncEquals(oToItem) Then
|
||||
hshSyncItems.Remove(oFromItem.ProcessName)
|
||||
If hshCompareTo.Contains(oFromItem.CompoundKey) Then
|
||||
oToItem = DirectCast(hshCompareTo(oFromItem.CompoundKey), clsGame)
|
||||
If oFromItem.SyncEquals(oToItem, eSyncFields) Then
|
||||
hshSyncItems.Remove(oFromItem.CompoundKey)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If bToRemote Then
|
||||
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Remote)
|
||||
|
||||
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Remote, eSyncFields)
|
||||
Else
|
||||
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Local)
|
||||
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Local, eSyncFields)
|
||||
End If
|
||||
|
||||
'Sync Tags
|
||||
@@ -171,10 +237,10 @@ Public Class mgrMonitorList
|
||||
hshDeleteItems = hshCompareTo.Clone
|
||||
|
||||
For Each oToItem In hshCompareTo.Values
|
||||
If hshCompareFrom.Contains(oToItem.ProcessName) Then
|
||||
oFromItem = DirectCast(hshCompareFrom(oToItem.ProcessName), clsGame)
|
||||
If hshCompareFrom.Contains(oToItem.CompoundKey) Then
|
||||
oFromItem = DirectCast(hshCompareFrom(oToItem.CompoundKey), clsGame)
|
||||
If oToItem.MinimalEquals(oFromItem) Then
|
||||
hshDeleteItems.Remove(oToItem.ProcessName)
|
||||
hshDeleteItems.Remove(oToItem.CompoundKey)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@@ -185,7 +251,7 @@ Public Class mgrMonitorList
|
||||
DoListDeleteSync(hshDeleteItems, mgrSQLite.Database.Local)
|
||||
End If
|
||||
|
||||
RaiseEvent UpdateLog(hshDeleteItems.Count + hshSyncItems.Count + iChanges & " change(s) synced.", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrMonitorList_SyncChanges, (hshDeleteItems.Count + hshSyncItems.Count + iChanges).ToString), False, ToolTipIcon.Info, True)
|
||||
Cursor.Current = Cursors.Default
|
||||
Application.DoEvents()
|
||||
End Sub
|
||||
@@ -206,10 +272,10 @@ Public Class mgrMonitorList
|
||||
hshSyncItems = hshCompareFrom.Clone
|
||||
|
||||
For Each oFromItem In hshCompareFrom.Values
|
||||
If hshCompareTo.Contains(oFromItem.ProcessName) Then
|
||||
oToItem = DirectCast(hshCompareTo(oFromItem.ProcessName), clsGame)
|
||||
If hshCompareTo.Contains(oFromItem.CompoundKey) Then
|
||||
oToItem = DirectCast(hshCompareTo(oFromItem.CompoundKey), clsGame)
|
||||
If oFromItem.CoreEquals(oToItem) Then
|
||||
hshSyncItems.Remove(oFromItem.ProcessName)
|
||||
hshSyncItems.Remove(oFromItem.CompoundKey)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@@ -222,14 +288,14 @@ Public Class mgrMonitorList
|
||||
If frm.ShowDialog() = DialogResult.OK Then
|
||||
Cursor.Current = Cursors.WaitCursor
|
||||
|
||||
DoListAddUpdateSync(frm.ImportData)
|
||||
mgrTags.DoTagAddImport(frm.ImportData)
|
||||
DoListAddUpdateSync(frm.FinalData)
|
||||
mgrTags.DoTagAddImport(frm.FinalData)
|
||||
|
||||
Cursor.Current = Cursors.Default
|
||||
MsgBox("Import Complete.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(mgrMonitorList_ImportComplete, MsgBoxStyle.Information)
|
||||
End If
|
||||
Else
|
||||
MsgBox("This list does not contain any new games to import.", MsgBoxStyle.Information, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(mgrMonitorList_ImportNothing, MsgBoxStyle.Information)
|
||||
End If
|
||||
|
||||
Application.DoEvents()
|
||||
@@ -237,12 +303,12 @@ Public Class mgrMonitorList
|
||||
|
||||
Public Shared Function DoImport(ByVal sPath As String) As Boolean
|
||||
If (sPath.IndexOf("http://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Or _
|
||||
(sPath.IndexOf("https://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Then
|
||||
(sPath.IndexOf("https://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Then
|
||||
If mgrCommon.CheckAddress(sPath) Then
|
||||
ImportMonitorList(sPath, True)
|
||||
Return True
|
||||
Else
|
||||
MsgBox("There's no response from:" & vbCrLf & vbCrLf & sPath & vbCrLf & vbCrLf & "Either the server is not responding or the URL is invalid.")
|
||||
mgrCommon.ShowMessage(mgrMonitorList_WebNoReponse, sPath, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
@@ -250,15 +316,76 @@ Public Class mgrMonitorList
|
||||
ImportMonitorList(sPath)
|
||||
Return True
|
||||
Else
|
||||
MsgBox("The file:" & vbCrLf & sPath & vbCrLf & "cannot be found.")
|
||||
mgrCommon.ShowMessage(mgrMonitorList_FileNotFound, sPath, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal hshStringFilters As Hashtable, eFilterType As frmFilter.eFilterType, ByRef hshParams As Hashtable) As String
|
||||
Dim sSQL As String = String.Empty
|
||||
Dim iCounter As Integer = 0
|
||||
|
||||
Public Shared Function ReadFilteredList(ByVal oFilters As List(Of clsTag), ByVal eFilterType As frmFilter.eFilterType, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As Hashtable
|
||||
Select Case eFilterType
|
||||
Case frmFilter.eFilterType.NoFilter
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist ORDER BY Name Asc"
|
||||
Case frmFilter.eFilterType.FieldAnd, frmFilter.eFilterType.FieldOr
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist"
|
||||
|
||||
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
|
||||
sSQL = "SELECT DISTINCT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist "
|
||||
sSQL &= "NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||
|
||||
For Each oTag As clsTag In oTagFilters
|
||||
sSQL &= "@TagID" & iCounter & ","
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL = sSQL.TrimEnd(",")
|
||||
sSQL &= ") ORDER BY Name Asc"
|
||||
Case frmFilter.eFilterType.AllTags
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist WHERE MonitorID IN "
|
||||
|
||||
For Each oTag As clsTag In oTagFilters
|
||||
sSQL &= "(SELECT MonitorID FROM gametags WHERE monitorlist.MonitorID = gametags.MonitorID And TagID = @TagID" & iCounter & ")"
|
||||
If iCounter <> oTagFilters.Count - 1 Then
|
||||
sSQL &= " AND MonitorID IN "
|
||||
End If
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL &= " ORDER BY Name Asc"
|
||||
Case frmFilter.eFilterType.NoTags
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags) ORDER BY Name Asc"
|
||||
End Select
|
||||
|
||||
Return sSQL
|
||||
|
||||
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
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
Dim oData As DataSet
|
||||
Dim sSQL As String = String.Empty
|
||||
@@ -267,37 +394,7 @@ Public Class mgrMonitorList
|
||||
Dim hshParams As New Hashtable
|
||||
Dim iCounter As Integer = 0
|
||||
|
||||
If oFilters.Count > 0 Then
|
||||
Select Case eFilterType
|
||||
Case frmFilter.eFilterType.Any
|
||||
sSQL = "SELECT DISTINCT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist "
|
||||
sSQL &= "NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||
|
||||
For Each oTag As clsTag In oFilters
|
||||
sSQL &= "@TagID" & iCounter & ","
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL = sSQL.TrimEnd(",")
|
||||
sSQL &= ") ORDER BY Name Asc"
|
||||
Case frmFilter.eFilterType.All
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist WHERE MonitorID IN "
|
||||
|
||||
For Each oTag As clsTag In oFilters
|
||||
sSQL &= "(SELECT MonitorID FROM gametags WHERE monitorlist.MonitorID = gametags.MonitorID And TagID = @TagID" & iCounter & ")"
|
||||
If iCounter <> oFilters.Count - 1 Then
|
||||
sSQL &= " AND MonitorID IN "
|
||||
End If
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL &= " ORDER BY Name Asc"
|
||||
End Select
|
||||
Else
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist ORDER BY Name Asc"
|
||||
End If
|
||||
sSQL = BuildFilterQuery(oTagFilters, hshStringFilters, eFilterType, hshParams)
|
||||
|
||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||
|
||||
@@ -326,6 +423,36 @@ Public Class mgrMonitorList
|
||||
Return hshList
|
||||
End Function
|
||||
|
||||
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)
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
Dim oData As DataSet
|
||||
Dim sSQL As String = String.Empty
|
||||
Dim sID As String
|
||||
Dim oList As New List(Of Game)
|
||||
Dim oGame As Game
|
||||
Dim hshParams As New Hashtable
|
||||
|
||||
sSQL = BuildFilterQuery(oTagFilters, hshStringFilters, eFilterType, hshParams)
|
||||
|
||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||
|
||||
For Each dr As DataRow In oData.Tables(0).Rows
|
||||
oGame = New Game
|
||||
sID = CStr(dr("MonitorID"))
|
||||
oGame.Name = CStr(dr("Name"))
|
||||
oGame.ProcessName = CStr(dr("Process"))
|
||||
If Not IsDBNull(dr("Path")) Then oGame.Path = CStr(dr("Path"))
|
||||
oGame.AbsolutePath = CBool(dr("AbsolutePath"))
|
||||
oGame.FolderSave = CBool(dr("FolderSave"))
|
||||
If Not IsDBNull(dr("FileType")) Then oGame.FileType = CStr(dr("FileType"))
|
||||
If Not IsDBNull(dr("ExcludeList")) Then oGame.ExcludeList = CStr(dr("ExcludeList"))
|
||||
oGame.Tags = mgrGameTags.GetTagsByGameForExport(sID)
|
||||
oList.Add(oGame)
|
||||
Next
|
||||
|
||||
Return oList
|
||||
End Function
|
||||
|
||||
Public Shared Function ReadList(ByVal eListType As eListTypes, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As Hashtable
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
Dim oData As DataSet
|
||||
@@ -333,7 +460,6 @@ Public Class mgrMonitorList
|
||||
Dim hshList As New Hashtable
|
||||
Dim hshDupeList As New Hashtable
|
||||
Dim oGame As clsGame
|
||||
Dim oDupeGame As clsGame
|
||||
|
||||
sSQL = "Select * from monitorlist ORDER BY Name Asc"
|
||||
oData = oDatabase.ReadParamData(sSQL, New Hashtable)
|
||||
@@ -359,27 +485,14 @@ Public Class mgrMonitorList
|
||||
|
||||
Select Case eListType
|
||||
Case eListTypes.FullList
|
||||
If hshList.Contains(oGame.ProcessName) Or hshDupeList.Contains(oGame.ProcessName) Then
|
||||
oDupeGame = DirectCast(hshList.Item(oGame.ProcessName), clsGame)
|
||||
If Not hshDupeList.Contains(oGame.ProcessName) Then
|
||||
hshDupeList.Add(oGame.ProcessName, oDupeGame)
|
||||
hshList.Remove(oDupeGame.ProcessName)
|
||||
oDupeGame.Duplicate = True
|
||||
oDupeGame.ProcessName = oDupeGame.ProcessName & ":" & oDupeGame.Name
|
||||
hshList.Add(oDupeGame.ProcessName, oDupeGame)
|
||||
End If
|
||||
oGame.ProcessName = oGame.ProcessName & ":" & oGame.Name
|
||||
oGame.Duplicate = True
|
||||
End If
|
||||
|
||||
hshList.Add(oGame.ProcessName, oGame)
|
||||
'Don't wrap this, if it fails there's a problem with the database
|
||||
hshList.Add(oGame.ProcessName & ":" & oGame.Name, oGame)
|
||||
Case eListTypes.ScanList
|
||||
If hshList.Contains(oGame.ProcessName) Then
|
||||
DirectCast(hshList.Item(oGame.ProcessName), clsGame).Duplicate = True
|
||||
oGame.ProcessName = oGame.ProcessName & ":" & oGame.Name
|
||||
oGame.Duplicate = True
|
||||
End If
|
||||
|
||||
If oGame.Enabled Then hshList.Add(oGame.ProcessName, oGame)
|
||||
End Select
|
||||
Next
|
||||
@@ -387,67 +500,6 @@ Public Class mgrMonitorList
|
||||
Return hshList
|
||||
End Function
|
||||
|
||||
Public Shared Function ReadListForExport(ByVal oFilters As List(Of clsTag), ByVal eFilterType As frmFilter.eFilterType, 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
|
||||
Dim sID As String
|
||||
Dim oList As New List(Of Game)
|
||||
Dim oGame As Game
|
||||
Dim hshParams As New Hashtable
|
||||
Dim iCounter As Integer = 0
|
||||
|
||||
If oFilters.Count > 0 Then
|
||||
Select Case eFilterType
|
||||
Case frmFilter.eFilterType.Any
|
||||
sSQL = "SELECT DISTINCT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist "
|
||||
sSQL &= "NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||
|
||||
For Each oTag As clsTag In oFilters
|
||||
sSQL &= "@TagID" & iCounter & ","
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL = sSQL.TrimEnd(",")
|
||||
sSQL &= ") ORDER BY Name Asc"
|
||||
Case frmFilter.eFilterType.All
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist WHERE MonitorID IN "
|
||||
|
||||
For Each oTag As clsTag In oFilters
|
||||
sSQL &= "(SELECT MonitorID FROM gametags WHERE monitorlist.MonitorID = gametags.MonitorID And TagID = @TagID" & iCounter & ")"
|
||||
If iCounter <> oFilters.Count - 1 Then
|
||||
sSQL &= " AND MonitorID IN "
|
||||
End If
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL &= " ORDER BY Name Asc"
|
||||
End Select
|
||||
Else
|
||||
sSQL = "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist ORDER BY Name Asc"
|
||||
End If
|
||||
|
||||
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
||||
|
||||
For Each dr As DataRow In oData.Tables(0).Rows
|
||||
oGame = New Game
|
||||
sID = CStr(dr("MonitorID"))
|
||||
oGame.Name = CStr(dr("Name"))
|
||||
oGame.ProcessName = CStr(dr("Process"))
|
||||
If Not IsDBNull(dr("Path")) Then oGame.Path = CStr(dr("Path"))
|
||||
oGame.AbsolutePath = CBool(dr("AbsolutePath"))
|
||||
oGame.FolderSave = CBool(dr("FolderSave"))
|
||||
If Not IsDBNull(dr("FileType")) Then oGame.FileType = CStr(dr("FileType"))
|
||||
If Not IsDBNull(dr("ExcludeList")) Then oGame.ExcludeList = CStr(dr("ExcludeList"))
|
||||
oGame.Tags = mgrGameTags.GetTagsByGameForExport(sID)
|
||||
oList.Add(oGame)
|
||||
Next
|
||||
|
||||
Return oList
|
||||
End Function
|
||||
|
||||
Public Shared Sub DoListAdd(ByVal oGame As clsGame, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local)
|
||||
Dim oDatabase As New mgrSQLite(iSelectDB)
|
||||
Dim sSQL As String
|
||||
|
||||
+97
-92
@@ -1,16 +1,15 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports System.Reflection
|
||||
|
||||
Public Class mgrPath
|
||||
'Important Note: Any changes to sSettingsRoot & sDBLocation need to be mirrored in frmMain.vb -> VerifyGameDataPath
|
||||
Private Shared sSettingsRoot As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\gbm"
|
||||
Private Shared sDBLocation As String = sSettingsRoot & "\gbm.s3db"
|
||||
Private Shared sIncludeFile As String = sSettingsRoot & "\gbm_include.txt"
|
||||
Private Shared sExcludeFile As String = sSettingsRoot & "\gbm_exclude.txt"
|
||||
Private Shared sOfficialImportURL As String = "http://mikemaximus.github.io/gbm-web/GBM_Official.xml"
|
||||
Private Shared sOfficialManualURL As String = "http://mikemaximus.github.io/gbm-web/manual.html"
|
||||
Private Shared sOfficialUpdatesURL As String = "https://github.com/MikeMaximus/gbm/releases"
|
||||
Private Shared sSettingsRoot As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & Path.DirectorySeparatorChar & "gbm"
|
||||
Private Shared sDBLocation As String = sSettingsRoot & Path.DirectorySeparatorChar & "gbm.s3db"
|
||||
Private Shared sIncludeFile As String = sSettingsRoot & Path.DirectorySeparatorChar & "gbm_include.txt"
|
||||
Private Shared sExcludeFile As String = sSettingsRoot & Path.DirectorySeparatorChar & "gbm_exclude.txt"
|
||||
Private Shared sLogFile As String = sSettingsRoot & Path.DirectorySeparatorChar & "gbm_log_" & Date.Now.ToString("dd-MM-yyyy-HH-mm-ss") & ".txt"
|
||||
Private Shared sRemoteDatabaseLocation As String
|
||||
Private Shared hshCustomVariables As Hashtable
|
||||
Private Shared oReleaseType As ProcessorArchitecture = AssemblyName.GetAssemblyName(Application.ExecutablePath()).ProcessorArchitecture
|
||||
@@ -38,8 +37,12 @@ Public Class mgrPath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared ReadOnly Property Utility7zLocation As String
|
||||
Shared ReadOnly Property Default7zLocation As String
|
||||
Get
|
||||
If mgrCommon.IsUnix Then
|
||||
Return "/usr/bin/7za"
|
||||
End If
|
||||
|
||||
Select Case oReleaseType
|
||||
Case ProcessorArchitecture.Amd64
|
||||
Return Application.StartupPath & "\Utilities\x64\7za.exe"
|
||||
@@ -75,21 +78,9 @@ Public Class mgrPath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared ReadOnly Property OfficialManualURL As String
|
||||
Shared ReadOnly Property LogFileLocation As String
|
||||
Get
|
||||
Return sOfficialManualURL
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared ReadOnly Property OfficialUpdatesURL As String
|
||||
Get
|
||||
Return sOfficialUpdatesURL
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared ReadOnly Property OfficialImportURL As String
|
||||
Get
|
||||
Return sOfficialImportURL
|
||||
Return sLogFile
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -104,14 +95,12 @@ Public Class mgrPath
|
||||
Return sRemoteDatabaseLocation
|
||||
End Get
|
||||
Set(value As String)
|
||||
sRemoteDatabaseLocation = value & "\gbm.s3db"
|
||||
sRemoteDatabaseLocation = value & Path.DirectorySeparatorChar & "gbm.s3db"
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
Public Shared Function ValidateForFileSystem(ByVal sCheckString As String) As String
|
||||
Dim cInvalidCharacters As Char() = {"\", "/", ":", "*", "?", """", "<", ">", "|"}
|
||||
Dim cInvalidCharacters As Char() = {"\", "/", ":", "*", "?", """", "<", ">", "|", "."}
|
||||
|
||||
For Each c As Char In cInvalidCharacters
|
||||
sCheckString = sCheckString.Replace(c, "")
|
||||
@@ -121,8 +110,9 @@ Public Class mgrPath
|
||||
sCheckString = sCheckString.Substring(0, 257)
|
||||
End If
|
||||
|
||||
Return sCheckString
|
||||
Return sCheckString.Trim
|
||||
End Function
|
||||
|
||||
Public Shared Function DetermineRelativePath(ByVal sProcessPath As String, ByVal sSavePath As String) As String
|
||||
Dim sPath1Array As String()
|
||||
Dim sPath2Array As String()
|
||||
@@ -133,19 +123,27 @@ Public Class mgrPath
|
||||
Dim iRemove As Integer = 0
|
||||
Dim iBackFolders As Integer = 0
|
||||
Dim bDeep As Boolean
|
||||
Dim cDS As Char = Path.DirectorySeparatorChar 'Set the directory seperator based on the OS
|
||||
|
||||
'We are working with a case insenstive file system, ensure a uniform case
|
||||
sProcessPath = sProcessPath.ToLower
|
||||
sSavePath = sSavePath.ToLower
|
||||
If Not mgrCommon.IsUnix Then
|
||||
'If we are working with a case insenstive file system, use a uniform case to reduce possible issues
|
||||
sProcessPath = sProcessPath.ToLower
|
||||
sSavePath = sSavePath.ToLower
|
||||
Else
|
||||
'If we are on Unix trim the root off
|
||||
sProcessPath = sProcessPath.TrimStart(cDS)
|
||||
sSavePath = sSavePath.TrimStart(cDS)
|
||||
End If
|
||||
|
||||
'We need to ensure we have a single trailing slash on the parameters
|
||||
sProcessPath = sProcessPath.TrimEnd("\")
|
||||
sSavePath = sSavePath.TrimEnd("\")
|
||||
sProcessPath &= "\"
|
||||
sSavePath &= "\"
|
||||
sProcessPath = sProcessPath.TrimEnd(cDS)
|
||||
sSavePath = sSavePath.TrimEnd(cDS)
|
||||
sProcessPath &= cDS
|
||||
sSavePath &= cDS
|
||||
|
||||
|
||||
'Determines the direction we need to go, we always want to be relative to the process location
|
||||
If sSavePath.Split("\").Length > sProcessPath.Split("\").Length Then
|
||||
If sSavePath.Split(cDS).Length > sProcessPath.Split(cDS).Length Then
|
||||
sPath1 = sProcessPath
|
||||
sPath2 = sSavePath
|
||||
bDeep = True
|
||||
@@ -156,8 +154,8 @@ Public Class mgrPath
|
||||
End If
|
||||
|
||||
'Build an array of folders to work with from each path
|
||||
sPath1Array = sPath1.Split("\")
|
||||
sPath2Array = sPath2.Split("\")
|
||||
sPath1Array = sPath1.Split(cDS)
|
||||
sPath2Array = sPath2.Split(cDS)
|
||||
|
||||
'Take the shortest path and remove the common folders from both
|
||||
For Each s As String In sPath1Array
|
||||
@@ -169,25 +167,25 @@ Public Class mgrPath
|
||||
Next
|
||||
|
||||
'Remove the trailing slashes
|
||||
sPath1 = sPath1.TrimEnd("\")
|
||||
sPath2 = sPath2.TrimEnd("\")
|
||||
sPath1 = sPath1.TrimEnd(cDS)
|
||||
sPath2 = sPath2.TrimEnd(cDS)
|
||||
|
||||
'Determine which way we go
|
||||
If bDeep Then
|
||||
If sPath1.Length > 0 Then
|
||||
iBackFolders = sPath1.Split("\").Length
|
||||
iBackFolders = sPath1.Split(cDS).Length
|
||||
End If
|
||||
sResult = sPath2
|
||||
Else
|
||||
If sPath2.Length > 0 Then
|
||||
iBackFolders = sPath2.Split("\").Length
|
||||
iBackFolders = sPath2.Split(cDS).Length
|
||||
End If
|
||||
sResult = sPath1
|
||||
End If
|
||||
|
||||
'Insert direction modifiers based on how many folders are left
|
||||
For i = 1 To iBackFolders
|
||||
sResult = "..\" & sResult
|
||||
sResult = ".." & cDS & sResult
|
||||
Next i
|
||||
|
||||
'Done
|
||||
@@ -202,13 +200,12 @@ Public Class mgrPath
|
||||
Dim sCurrentUser As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
|
||||
Dim oCustomVariable As clsPathVariable
|
||||
|
||||
If sValue.Contains("*mydocs*") Then
|
||||
Return sValue.Replace("*mydocs*", sMyDocs)
|
||||
End If
|
||||
|
||||
If sValue.Contains("*publicdocs*") Then
|
||||
Return sValue.Replace("*publicdocs*", sPublicDocs)
|
||||
End If
|
||||
For Each oCustomVariable In hshCustomVariables.Values
|
||||
If sValue.Contains(oCustomVariable.FormattedName) Then
|
||||
Return sValue.Replace(oCustomVariable.FormattedName, oCustomVariable.Path)
|
||||
End If
|
||||
Next
|
||||
|
||||
If sValue.Contains("*appdatalocal*") Then
|
||||
Return sValue.Replace("*appdatalocal*", sAppDataLocal)
|
||||
@@ -218,15 +215,21 @@ Public Class mgrPath
|
||||
Return sValue.Replace("*appdataroaming*", sAppDataRoaming)
|
||||
End If
|
||||
|
||||
If sValue.Contains("*currentuser*") Then
|
||||
Return sValue.Replace("*currentuser*", sCurrentUser)
|
||||
'This needs to be tested last for Unix compatability
|
||||
If sValue.Contains("*mydocs*") Then
|
||||
Return sValue.Replace("*mydocs*", sMyDocs)
|
||||
End If
|
||||
|
||||
For Each oCustomVariable In hshCustomVariables.Values
|
||||
If sValue.Contains(oCustomVariable.FormattedName) Then
|
||||
Return sValue.Replace(oCustomVariable.FormattedName, oCustomVariable.Path)
|
||||
'Don't use these in Unix
|
||||
If Not mgrCommon.IsUnix Then
|
||||
If sValue.Contains("*publicdocs*") Then
|
||||
Return sValue.Replace("*publicdocs*", sPublicDocs)
|
||||
End If
|
||||
Next
|
||||
|
||||
If sValue.Contains("*currentuser*") Then
|
||||
Return sValue.Replace("*currentuser*", sCurrentUser)
|
||||
End If
|
||||
End If
|
||||
|
||||
Return sValue
|
||||
End Function
|
||||
@@ -239,13 +242,11 @@ Public Class mgrPath
|
||||
Dim sCurrentUser As String = "*currentuser*"
|
||||
Dim oCustomVariable As clsPathVariable
|
||||
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), sMyDocs)
|
||||
End If
|
||||
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments), sPublicDocs)
|
||||
End If
|
||||
For Each oCustomVariable In hshCustomVariables.Values
|
||||
If sValue.Contains(oCustomVariable.Path) Then
|
||||
Return sValue.Replace(oCustomVariable.Path, oCustomVariable.FormattedName)
|
||||
End If
|
||||
Next
|
||||
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), sAppDataLocal)
|
||||
@@ -255,15 +256,21 @@ Public Class mgrPath
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), sAppDataRoaming)
|
||||
End If
|
||||
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), sCurrentUser)
|
||||
'This needs to be tested last for Unix compatability
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), sMyDocs)
|
||||
End If
|
||||
|
||||
For Each oCustomVariable In hshCustomVariables.Values
|
||||
If sValue.Contains(oCustomVariable.Path) Then
|
||||
Return sValue.Replace(oCustomVariable.Path, oCustomVariable.FormattedName)
|
||||
'Don't use these in Unix
|
||||
If Not mgrCommon.IsUnix Then
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments), sPublicDocs)
|
||||
End If
|
||||
Next
|
||||
|
||||
If sValue.Contains(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)) Then
|
||||
Return sValue.Replace(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), sCurrentUser)
|
||||
End If
|
||||
End If
|
||||
|
||||
Return sValue
|
||||
End Function
|
||||
@@ -273,11 +280,16 @@ Public Class mgrPath
|
||||
Dim hshCustomVariables As Hashtable = mgrVariables.ReadVariables
|
||||
Dim oCustomVariable As clsPathVariable
|
||||
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments))
|
||||
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.UserProfile))
|
||||
|
||||
'Don't use these in Unix
|
||||
If Not mgrCommon.IsUnix Then
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments))
|
||||
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.UserProfile))
|
||||
End If
|
||||
|
||||
'Load Custom Variables
|
||||
For Each oCustomVariable In hshCustomVariables.Values
|
||||
@@ -319,11 +331,11 @@ Public Class mgrPath
|
||||
hshCustomVariables = mgrVariables.ReadVariables
|
||||
End Sub
|
||||
|
||||
Public Shared Function SetManualgamePath() As String
|
||||
Public Shared Function SetManualGamePath() As String
|
||||
Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
|
||||
Dim sNewPath As String
|
||||
|
||||
sNewPath = mgrCommon.OpenFolderBrowser("Choose the game folder containing the executable.", sDefaultFolder, False)
|
||||
sNewPath = mgrCommon.OpenFolderBrowser(mgrPath_ChoosePath, sDefaultFolder, False)
|
||||
|
||||
Return sNewPath
|
||||
End Function
|
||||
@@ -334,48 +346,43 @@ Public Class mgrPath
|
||||
Dim sFolder As String = String.Empty
|
||||
Dim bSearchFailed As Boolean = False
|
||||
|
||||
frmFind.GameName = sGameName
|
||||
frmFind.SearchItem = sProcess & ".*"
|
||||
frmFind.FolderSearch = False
|
||||
|
||||
'We can't automatically search for certain game types
|
||||
If bNoAuto Then
|
||||
sMessage = sSearchReason & vbCrLf & vbCrLf & "Do you wish to manually set the game path? (Path will be saved)"
|
||||
sMessage = mgrCommon.FormatString(mgrPath_ConfirmManualPath, sSearchReason)
|
||||
|
||||
If MsgBox(sMessage, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
sFolder = SetManualgamePath()
|
||||
End If
|
||||
|
||||
Return sFolder
|
||||
End If
|
||||
|
||||
sMessage = sSearchReason & vbCrLf & vbCrLf & "Do you wish to automatically search for the game path? (Path will be saved)"
|
||||
sMessage = mgrCommon.FormatString(mgrPath_ConfirmAutoPath, sSearchReason)
|
||||
|
||||
If MsgBox(sMessage, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
frmFind.ShowDialog()
|
||||
|
||||
If frmFind.FoundItem <> String.Empty Then
|
||||
sFolder = IO.Path.GetDirectoryName(frmFind.FoundItem)
|
||||
sMessage = sGameName & " was located in the following folder:" & vbCrLf & vbCrLf & _
|
||||
sFolder & vbCrLf & vbCrLf & "Is this correct?"
|
||||
If MsgBox(sMessage, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
Return sFolder
|
||||
Else
|
||||
sFolder = String.Empty
|
||||
End If
|
||||
Return frmFind.FoundItem
|
||||
Else
|
||||
bSearchFailed = True
|
||||
End If
|
||||
|
||||
If bSearchFailed Then
|
||||
sMessage = "The search failed to locate the path for " & sGameName & "." & vbCrLf & vbCrLf & _
|
||||
"Do you wish to manually set the game path? (Path will be saved)"
|
||||
sMessage = mgrCommon.FormatString(mgrPath_ConfirmAutoFailure, sGameName)
|
||||
Else
|
||||
sMessage = "Do you wish to manually set the game path? (Path will be saved)"
|
||||
sMessage = mgPath_ConfirmManualPathNoParam
|
||||
End If
|
||||
|
||||
If MsgBox(sMessage, MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
sFolder = SetManualgamePath()
|
||||
End If
|
||||
|
||||
frmFind.Dispose()
|
||||
End If
|
||||
|
||||
Return sFolder
|
||||
@@ -385,9 +392,7 @@ Public Class mgrPath
|
||||
Dim dBrowser As FolderBrowserDialog
|
||||
|
||||
If Not Directory.Exists(sBackupPath) Then
|
||||
If MsgBox("The backup location " & sBackupPath & " is not available." & vbCrLf & _
|
||||
"It may be on an external or network drive that isn't connected." & vbCrLf & vbCrLf & _
|
||||
"Do you want to select another backup location and continue?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
If mgrCommon.ShowMessage(mgrPath_ConfirmBackupLocation, sBackupPath, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
dBrowser = New FolderBrowserDialog
|
||||
dBrowser.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
|
||||
If dBrowser.ShowDialog = DialogResult.OK Then
|
||||
|
||||
@@ -77,15 +77,7 @@ Public Class mgrProcesses
|
||||
bDuplicates = True
|
||||
oDuplicateGames.Clear()
|
||||
For Each o As clsGame In hshScanList.Values
|
||||
If o.ProcessName.Contains("dosbox") Then
|
||||
If o.ProcessName.Split(":").Length = 3 Then
|
||||
sProcess = o.ProcessName.Remove(o.ProcessName.LastIndexOf(":"))
|
||||
Else
|
||||
sProcess = o.ProcessName
|
||||
End If
|
||||
Else
|
||||
sProcess = o.ProcessName.Split(":")(0)
|
||||
End If
|
||||
sProcess = o.ProcessName.Split(":")(0)
|
||||
|
||||
If o.Duplicate = True And sProcess = oGame.TrueProcess Then
|
||||
oDuplicateGames.Add(o.ShallowCopy)
|
||||
@@ -93,25 +85,69 @@ Public Class mgrProcesses
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef iErrorCode As Integer) As Boolean
|
||||
'This function will only work correctly on Unix
|
||||
Private Function GetUnixProcessArguments(ByVal prs As Process) As String()
|
||||
Dim sArguments As String
|
||||
Try
|
||||
sArguments = File.ReadAllText("/proc/" & prs.Id.ToString() & "/cmdline")
|
||||
Return sArguments.Split(vbNullChar)
|
||||
Catch ex As Exception
|
||||
Return New String() {String.Empty}
|
||||
End Try
|
||||
End Function
|
||||
|
||||
'This function will only work correctly on Unix
|
||||
Private Function GetUnixSymLinkDirectory(ByVal prs As Process) As String
|
||||
Dim prsls As Process
|
||||
Dim slsinfo As String()
|
||||
|
||||
'This is the best way I can think of to determine the end point of a symlink without doing even more crazy shit
|
||||
Try
|
||||
prsls = New Process
|
||||
prsls.StartInfo.FileName = "/bin/bash"
|
||||
prsls.StartInfo.Arguments = "-c ""ls -l /proc/" & prs.Id.ToString & " | grep cwd"""
|
||||
prsls.StartInfo.UseShellExecute = False
|
||||
prsls.StartInfo.RedirectStandardOutput = True
|
||||
prsls.StartInfo.CreateNoWindow = True
|
||||
prsls.Start()
|
||||
slsinfo = prsls.StandardOutput.ReadToEnd().Split(">")
|
||||
Return slsinfo(slsinfo.Length - 1).Trim
|
||||
Catch ex As Exception
|
||||
Return String.Empty
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef iErrorCode As Integer, ByVal bDebugMode As Boolean) As Boolean
|
||||
Dim prsList() As Process = Process.GetProcesses
|
||||
Dim sDBoxProcess As String()
|
||||
Dim sProcessCheck As String = String.Empty
|
||||
Dim sProcessList As String = String.Empty
|
||||
Dim bWineProcess As Boolean = False
|
||||
|
||||
For Each prsCurrent As Process In prsList
|
||||
'Handle DOSBox Processes
|
||||
If prsCurrent.ProcessName.ToLower = "dosbox" Then
|
||||
sDBoxProcess = prsCurrent.MainWindowTitle.Split(":")
|
||||
'If the dosbox process title doesn't have 3 elements it's not ready yet.
|
||||
If sDBoxProcess.Length = 3 Then
|
||||
sProcessCheck = "dosbox:" & sDBoxProcess(2).Trim
|
||||
Else
|
||||
'Drop out for now
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
'This needs to be wrapped due to issues with Mono.
|
||||
Try
|
||||
sProcessCheck = prsCurrent.ProcessName
|
||||
End If
|
||||
|
||||
'Unix Handler
|
||||
'We need some special handling for Wine processes
|
||||
If mgrCommon.IsUnix And sProcessCheck.ToLower = "wine-preloader" Then
|
||||
Dim sWinePath As String()
|
||||
'We can't use Path.GetFileName here, Wine uses the Windows seperator in arguments and the Unix version of the function expects a different one.
|
||||
sWinePath = GetUnixProcessArguments(prsCurrent)(0).Split("\")
|
||||
sProcessCheck = sWinePath(sWinePath.Length - 1).Replace(".exe", "")
|
||||
bWineProcess = True
|
||||
Else
|
||||
bWineProcess = False
|
||||
End If
|
||||
|
||||
If bDebugMode And mgrCommon.IsUnix Then
|
||||
sProcessList &= prsCurrent.Id & " " & prsCurrent.ProcessName & " " & GetUnixProcessArguments(prsCurrent)(0) & vbCrLf
|
||||
ElseIf bDebugMode Then
|
||||
sProcessList &= prsCurrent.Id & " " & prsCurrent.ProcessName & vbCrLf
|
||||
End If
|
||||
Catch ex As Exception
|
||||
'Do Nothing
|
||||
End Try
|
||||
|
||||
If hshScanList.ContainsKey(sProcessCheck) Then
|
||||
prsFoundProcess = prsCurrent
|
||||
@@ -126,7 +162,11 @@ Public Class mgrProcesses
|
||||
|
||||
If Not oGame.AbsolutePath Or oGame.Duplicate Then
|
||||
Try
|
||||
oGame.ProcessPath = Path.GetDirectoryName(prsCurrent.MainModule.FileName)
|
||||
If Not bWineProcess Then
|
||||
oGame.ProcessPath = Path.GetDirectoryName(prsCurrent.MainModule.FileName)
|
||||
Else
|
||||
oGame.ProcessPath = GetUnixSymLinkDirectory(prsCurrent)
|
||||
End If
|
||||
Catch exWin32 As System.ComponentModel.Win32Exception
|
||||
'If an exception occurs the process is:
|
||||
'Running as administrator and the app isn't.
|
||||
@@ -138,10 +178,12 @@ Public Class mgrProcesses
|
||||
bNeedsPath = True
|
||||
iErrorCode = 299
|
||||
Else
|
||||
If bDebugMode Then mgrCommon.ShowMessage(exWin32.NativeErrorCode & " " & exWin32.Message & vbCrLf & vbCrLf & exWin32.StackTrace, MsgBoxStyle.Critical)
|
||||
'A different failure occured, drop out and continue to scan.
|
||||
Return False
|
||||
End If
|
||||
Catch exAll As Exception
|
||||
If bDebugMode Then mgrCommon.ShowMessage(exAll.Message & vbCrLf & vbCrLf & exAll.StackTrace, MsgBoxStyle.Critical)
|
||||
'A different failure occured, drop out and continue to scan.
|
||||
Return False
|
||||
End Try
|
||||
@@ -158,6 +200,8 @@ Public Class mgrProcesses
|
||||
End If
|
||||
Next
|
||||
|
||||
If bDebugMode Then mgrCommon.SaveText(sProcessList, mgrPath.SettingsRoot & "/gbm_process_list.txt")
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
+103
-70
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class mgrRestore
|
||||
|
||||
@@ -27,21 +28,41 @@ Public Class mgrRestore
|
||||
Public Event UpdateRestoreInfo(oRestoreInfo As clsBackup)
|
||||
Public Event SetLastAction(sMessage As String)
|
||||
|
||||
Public Shared Function CheckPath(ByRef oRestoreInfo As clsBackup, ByVal oGame As clsGame) As Boolean
|
||||
Public Shared Sub DoPathOverride(ByRef oCheckBackup As clsBackup, ByVal oCheckGame As clsGame)
|
||||
'Always override the manifest restore path with the current configuration path if possible
|
||||
If Not oCheckGame.Temporary Then
|
||||
If Path.IsPathRooted(oCheckGame.Path) Then
|
||||
oCheckBackup.AbsolutePath = True
|
||||
Else
|
||||
oCheckBackup.AbsolutePath = False
|
||||
End If
|
||||
oCheckBackup.RestorePath = oCheckGame.Path
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Function CheckPath(ByRef oRestoreInfo As clsBackup, ByVal oGame As clsGame, ByRef bTriggerReload As Boolean) As Boolean
|
||||
Dim sProcess As String
|
||||
Dim sRestorePath As String
|
||||
Dim bNoAuto As Boolean
|
||||
|
||||
DoPathOverride(oRestoreInfo, oGame)
|
||||
|
||||
If Not oRestoreInfo.AbsolutePath Then
|
||||
If oGame.ProcessPath <> String.Empty Then
|
||||
oRestoreInfo.RelativeRestorePath = oGame.ProcessPath & "\" & oRestoreInfo.RestorePath
|
||||
oRestoreInfo.RelativeRestorePath = oGame.ProcessPath & Path.DirectorySeparatorChar & oRestoreInfo.RestorePath
|
||||
Else
|
||||
sProcess = oGame.TrueProcess
|
||||
If oGame.Duplicate = True Or oGame.ProcessName.Contains("dosbox") Then bNoAuto = True
|
||||
sRestorePath = mgrPath.ProcessPathSearch(oRestoreInfo.Name, sProcess, oRestoreInfo.Name & " uses a relative path and has never been detected on this computer.", bNoAuto)
|
||||
If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True
|
||||
sRestorePath = mgrPath.ProcessPathSearch(oRestoreInfo.Name, sProcess, mgrCommon.FormatString(mgrRestore_RelativeNeedPath, oRestoreInfo.Name), bNoAuto)
|
||||
|
||||
If sRestorePath <> String.Empty Then
|
||||
oRestoreInfo.RelativeRestorePath = sRestorePath & "\" & oRestoreInfo.RestorePath
|
||||
'Update the process path in game object, save it, and make sure a monitor list reload is triggered
|
||||
oGame.ProcessPath = sRestorePath
|
||||
mgrMonitorList.DoListUpdate(oGame)
|
||||
bTriggerReload = True
|
||||
|
||||
'Set path for restore
|
||||
oRestoreInfo.RelativeRestorePath = sRestorePath & Path.DirectorySeparatorChar & oRestoreInfo.RestorePath
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
@@ -140,20 +161,64 @@ Public Class mgrRestore
|
||||
Return slRemovedItems
|
||||
End Function
|
||||
|
||||
Public Function CheckRestorePrereq(ByVal oBackupInfo As clsBackup) As Boolean
|
||||
Dim sHash As String
|
||||
Dim sExtractPath As String
|
||||
Dim sBackupFile As String = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
|
||||
|
||||
If oBackupInfo.AbsolutePath Then
|
||||
sExtractPath = oBackupInfo.RestorePath
|
||||
Else
|
||||
sExtractPath = oBackupInfo.RelativeRestorePath
|
||||
End If
|
||||
|
||||
'Check if restore location exists, prompt to create if it doesn't.
|
||||
If Not Directory.Exists(sExtractPath) Then
|
||||
If mgrCommon.ShowMessage(mgrRestore_ConfirmCreatePath, sExtractPath, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
Try
|
||||
Directory.CreateDirectory(sExtractPath)
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorCreatePath, ex.Message), False, ToolTipIcon.Error, True)
|
||||
Return False
|
||||
End Try
|
||||
Else
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorNoPath, sExtractPath), False, ToolTipIcon.Error, True)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
'Check file integrity
|
||||
If oSettings.CheckSum Then
|
||||
If oBackupInfo.CheckSum <> String.Empty Then
|
||||
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
|
||||
If sHash <> oBackupInfo.CheckSum Then
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorFailedCheck, oBackupInfo.Name), False, ToolTipIcon.Info, True)
|
||||
If mgrCommon.ShowMessage(mgrRestore_ConfirmFailedCheck, oBackupInfo.Name, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog(mgrRestore_ErrorCheckAbort, False, ToolTipIcon.Info, True)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_Verified, oBackupInfo.Name), False, ToolTipIcon.Info, True)
|
||||
End If
|
||||
Else
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_NoVerify, oBackupInfo.Name), False, ToolTipIcon.Info, True)
|
||||
End If
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Sub DoRestore(ByVal oRestoreList As List(Of clsBackup))
|
||||
Dim prs7z As Process
|
||||
Dim sBackupFile As String
|
||||
Dim sExtractPath As String
|
||||
Dim bDoRestore As Boolean
|
||||
Dim bRestoreCompleted As Boolean
|
||||
Dim sHash As String
|
||||
|
||||
For Each oBackupInfo In oRestoreList
|
||||
'Init
|
||||
prs7z = New Process
|
||||
sBackupFile = oSettings.BackupFolder & "\" & oBackupInfo.FileName
|
||||
sBackupFile = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
|
||||
sExtractPath = String.Empty
|
||||
bDoRestore = True
|
||||
bRestoreCompleted = False
|
||||
CancelOperation = False
|
||||
RaiseEvent UpdateRestoreInfo(oBackupInfo)
|
||||
@@ -164,55 +229,20 @@ Public Class mgrRestore
|
||||
sExtractPath = oBackupInfo.RelativeRestorePath
|
||||
End If
|
||||
|
||||
'Check if restore location exists, prompt to create if it doesn't.
|
||||
If Not Directory.Exists(sExtractPath) Then
|
||||
If MsgBox("The restore path " & sExtractPath & " does not exist." & vbCrLf & vbCrLf & _
|
||||
"Do you want to create the folder and continue?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then
|
||||
Try
|
||||
Directory.CreateDirectory(sExtractPath)
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog("The restore path could not be created due to an unexpected error." & vbCrLf & ex.Message, False, ToolTipIcon.Error, True)
|
||||
bDoRestore = False
|
||||
End Try
|
||||
Else
|
||||
RaiseEvent UpdateLog("Restored Aborted. The path " & sExtractPath & " does not exist.", False, ToolTipIcon.Error, True)
|
||||
bDoRestore = False
|
||||
End If
|
||||
End If
|
||||
|
||||
'Check file integrity
|
||||
If oSettings.CheckSum Then
|
||||
If oBackupInfo.CheckSum <> String.Empty Then
|
||||
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
|
||||
If sHash <> oBackupInfo.CheckSum Then
|
||||
RaiseEvent UpdateLog("The backup file for " & oBackupInfo.Name & " has failed the file integrity check.", False, ToolTipIcon.Info, True)
|
||||
If MsgBox("The backup file for " & oBackupInfo.Name & " has failed the file intergity check. It may be corrupted, not exist or been modified by another application." & vbCrLf & vbCrLf & _
|
||||
"Do you still want to restore this backup? (Not Recommended)", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.No Then
|
||||
RaiseEvent UpdateLog("Restored Aborted by user due to a failed file integrity check.", False, ToolTipIcon.Info, True)
|
||||
bDoRestore = False
|
||||
End If
|
||||
Else
|
||||
RaiseEvent UpdateLog(oBackupInfo.Name & " backup has been verified.", False, ToolTipIcon.Info, True)
|
||||
End If
|
||||
Else
|
||||
RaiseEvent UpdateLog(oBackupInfo.Name & " has no stored checksum, verification has been skipped.", False, ToolTipIcon.Info, True)
|
||||
End If
|
||||
End If
|
||||
|
||||
If bDoRestore Then
|
||||
Try
|
||||
If File.Exists(sBackupFile) Then
|
||||
prs7z.StartInfo.Arguments = "x """ & sBackupFile & """ -o""" & sExtractPath & "\"" -aoa -r"
|
||||
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
|
||||
Try
|
||||
If File.Exists(sBackupFile) Then
|
||||
If Settings.Is7zUtilityValid Then
|
||||
prs7z.StartInfo.Arguments = "x" & oSettings.Prepared7zArguments & """" & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
|
||||
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
|
||||
prs7z.StartInfo.UseShellExecute = False
|
||||
prs7z.StartInfo.RedirectStandardOutput = True
|
||||
prs7z.StartInfo.CreateNoWindow = True
|
||||
prs7z.Start()
|
||||
RaiseEvent UpdateLog("Restore to " & sExtractPath & " in progress...", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreInProgress, sExtractPath), False, ToolTipIcon.Info, True)
|
||||
While Not prs7z.StandardOutput.EndOfStream
|
||||
If CancelOperation Then
|
||||
prs7z.Kill()
|
||||
RaiseEvent UpdateLog("Restored Aborted. The saved games for " & oBackupInfo.Name & " may now be invalid.", True, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorFullAbort, oBackupInfo.Name), True, ToolTipIcon.Error, True)
|
||||
Exit While
|
||||
End If
|
||||
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
|
||||
@@ -220,35 +250,38 @@ Public Class mgrRestore
|
||||
prs7z.WaitForExit()
|
||||
If Not CancelOperation Then
|
||||
If prs7z.ExitCode = 0 Then
|
||||
RaiseEvent UpdateLog(oBackupInfo.Name & " backup restored.", False, ToolTipIcon.Info, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreComplete, oBackupInfo.Name), False, ToolTipIcon.Info, True)
|
||||
bRestoreCompleted = True
|
||||
Else
|
||||
RaiseEvent UpdateLog(oBackupInfo.Name & " restore finished with warnings or errors.", True, ToolTipIcon.Warning, True)
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreWarnings, oBackupInfo.Name), True, ToolTipIcon.Warning, True)
|
||||
bRestoreCompleted = False
|
||||
End If
|
||||
End If
|
||||
prs7z.Dispose()
|
||||
Else
|
||||
RaiseEvent UpdateLog("Restore Aborted. The backup file could not be found.", True, ToolTipIcon.Error, True)
|
||||
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
|
||||
bRestoreCompleted = False
|
||||
End If
|
||||
|
||||
If bRestoreCompleted Then
|
||||
'Save Local Manifest
|
||||
If mgrManifest.DoManifestCheck(oBackupInfo.Name, mgrSQLite.Database.Local) Then
|
||||
mgrManifest.DoManifestUpdate(oBackupInfo, mgrSQLite.Database.Local)
|
||||
Else
|
||||
mgrManifest.DoManifestAdd(oBackupInfo, mgrSQLite.Database.Local)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog("An unexpected error occured during the restore process." & vbCrLf & ex.Message, False, ToolTipIcon.Error, True)
|
||||
End Try
|
||||
Else
|
||||
RaiseEvent UpdateLog(mgrRestore_ErrorNoBackup, True, ToolTipIcon.Error, True)
|
||||
End If
|
||||
|
||||
If bRestoreCompleted Then
|
||||
RaiseEvent SetLastAction(oBackupInfo.CroppedName & " backup restored")
|
||||
Else
|
||||
RaiseEvent SetLastAction(oBackupInfo.CroppedName & " restore failed")
|
||||
'Save Local Manifest
|
||||
If mgrManifest.DoManifestCheck(oBackupInfo.Name, mgrSQLite.Database.Local) Then
|
||||
mgrManifest.DoManifestUpdate(oBackupInfo, mgrSQLite.Database.Local)
|
||||
Else
|
||||
mgrManifest.DoManifestAdd(oBackupInfo, mgrSQLite.Database.Local)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorOtherFailure, ex.Message), False, ToolTipIcon.Error, True)
|
||||
End Try
|
||||
|
||||
If bRestoreCompleted Then
|
||||
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionComplete, oBackupInfo.CroppedName))
|
||||
Else
|
||||
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionFailed, oBackupInfo.CroppedName))
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
+103
-27
@@ -1,5 +1,6 @@
|
||||
Imports System.IO
|
||||
Imports System.Data.SQLite
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
Imports Mono.Data.Sqlite
|
||||
|
||||
Public Class mgrSQLite
|
||||
|
||||
@@ -39,7 +40,7 @@ Public Class mgrSQLite
|
||||
File.Copy(mgrPath.RemoteDatabaseLocation, sNewFile, False)
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
MsgBox("An error occured creating a backup of the database file at " & sNewFile & vbCrLf & vbCrLf & ex.Message)
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorBackupFailure, New String() {sNewFile, ex.Message}, MsgBoxStyle.Exclamation)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
@@ -69,14 +70,16 @@ Public Class mgrSQLite
|
||||
SQLiteConnection.CreateFile(sDatabaseLocation)
|
||||
|
||||
'Add Tables (Settings)
|
||||
sSql = "CREATE TABLE settings (SettingsID INTEGER NOT NULL PRIMARY KEY, MonitorOnStartup BOOLEAN NOT NULL, StartToTray BOOLEAN NOT NULL, ShowDetectionToolTips BOOLEAN NOT NULL, " & _
|
||||
"DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " & _
|
||||
"BackupFolder TEXT NOT NULL, Sync BOOLEAN NOT NULL, CheckSum BOOLEAN NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL);"
|
||||
sSql = "CREATE TABLE settings (SettingsID INTEGER NOT NULL PRIMARY KEY, MonitorOnStartup BOOLEAN NOT NULL, StartToTray BOOLEAN NOT NULL, ShowDetectionToolTips BOOLEAN NOT NULL, " &
|
||||
"DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " &
|
||||
"BackupFolder TEXT NOT NULL, Sync BOOLEAN NOT NULL, CheckSum BOOLEAN NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " &
|
||||
"SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " &
|
||||
"Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL);"
|
||||
|
||||
'Add Tables (Monitor List)
|
||||
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & _
|
||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & _
|
||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & _
|
||||
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
||||
"PRIMARY KEY(Name, Process));"
|
||||
|
||||
'Add Tables (Tags)
|
||||
@@ -89,7 +92,7 @@ Public Class mgrSQLite
|
||||
sSql &= "CREATE TABLE variables (VariableID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);"
|
||||
|
||||
'Add Tables (Local Manifest)
|
||||
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " & _
|
||||
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " &
|
||||
"AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);"
|
||||
|
||||
'Set Version
|
||||
@@ -97,8 +100,8 @@ Public Class mgrSQLite
|
||||
|
||||
RunParamQuery(sSql, New Hashtable)
|
||||
Return True
|
||||
Catch e As Exception
|
||||
MsgBox("An error has occured attempting to create the local application database: " & vbCrLf & vbCrLf & e.Message)
|
||||
Catch ex As Exception
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorCreatingLocalDB, ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
@@ -111,13 +114,13 @@ Public Class mgrSQLite
|
||||
SQLiteConnection.CreateFile(sDatabaseLocation)
|
||||
|
||||
'Add Tables (Remote Monitor List)
|
||||
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & _
|
||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & _
|
||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & _
|
||||
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
|
||||
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
|
||||
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
|
||||
"PRIMARY KEY(Name, Process));"
|
||||
|
||||
'Add Tables (Remote Manifest)
|
||||
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " & _
|
||||
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, " &
|
||||
"AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);"
|
||||
|
||||
'Add Tables (Remote Tags)
|
||||
@@ -131,8 +134,8 @@ Public Class mgrSQLite
|
||||
|
||||
RunParamQuery(sSql, New Hashtable)
|
||||
Return True
|
||||
Catch e As Exception
|
||||
MsgBox("An error has occured attempting to create the remote application database: " & vbCrLf & vbCrLf & e.Message)
|
||||
Catch ex As Exception
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorCreatingRemoteDB, ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
@@ -182,9 +185,9 @@ Public Class mgrSQLite
|
||||
Try
|
||||
command.ExecuteNonQuery()
|
||||
trans.Commit()
|
||||
Catch e As Exception
|
||||
Catch ex As Exception
|
||||
trans.Rollback()
|
||||
MsgBox("An error has occured attempting run the query." & vbCrLf & vbCrLf & sSQL & vbCrLf & vbCrLf & e.Message)
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorQueryFailure, New String() {sSQL, ex.Message}, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
Finally
|
||||
command.Dispose()
|
||||
@@ -208,9 +211,9 @@ Public Class mgrSQLite
|
||||
command.ExecuteNonQuery()
|
||||
Next
|
||||
trans.Commit()
|
||||
Catch e As Exception
|
||||
Catch ex As Exception
|
||||
trans.Rollback()
|
||||
MsgBox("An error has occured attempting run the query." & vbCrLf & vbCrLf & sSQL & vbCrLf & vbCrLf & e.Message)
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorQueryFailure, New String() {sSQL, ex.Message}, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
Finally
|
||||
command.Dispose()
|
||||
@@ -230,10 +233,11 @@ Public Class mgrSQLite
|
||||
BuildParams(command, hshParams)
|
||||
|
||||
Try
|
||||
adapter = New SQLiteDataAdapter(command)
|
||||
adapter = New SqliteDataAdapter()
|
||||
adapter.SelectCommand = command
|
||||
adapter.Fill(oData)
|
||||
Catch e As Exception
|
||||
MsgBox("An error has occured attempting run the query." & vbCrLf & vbCrLf & sSQL & vbCrLf & vbCrLf & e.Message)
|
||||
Catch ex As Exception
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorQueryFailure, New String() {sSQL, ex.Message}, MsgBoxStyle.Exclamation)
|
||||
Finally
|
||||
command.Dispose()
|
||||
Disconnect()
|
||||
@@ -480,6 +484,78 @@ Public Class mgrSQLite
|
||||
End If
|
||||
End If
|
||||
|
||||
'0.95 Upgrade
|
||||
If GetDatabaseVersion() < 95 Then
|
||||
If eDatabase = Database.Local Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v94")
|
||||
|
||||
'Add new setting
|
||||
sSQL = "ALTER TABLE settings ADD COLUMN SupressBackup BOOLEAN NOT NULL DEFAULT 0;"
|
||||
sSQL &= "ALTER TABLE settings ADD COLUMN SupressBackupThreshold INTEGER NOT NULL DEFAULT 10;"
|
||||
|
||||
sSQL &= "PRAGMA user_version=95"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
If eDatabase = Database.Remote Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v94")
|
||||
|
||||
sSQL = "PRAGMA user_version=95"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
End If
|
||||
|
||||
'0.96 Upgrade
|
||||
If GetDatabaseVersion() < 96 Then
|
||||
If eDatabase = Database.Local Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v95")
|
||||
|
||||
'Add new setting
|
||||
sSQL = "ALTER TABLE settings ADD COLUMN CompressionLevel INTEGER NOT NULL DEFAULT 5;"
|
||||
|
||||
sSQL &= "PRAGMA user_version=96"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
If eDatabase = Database.Remote Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v95")
|
||||
|
||||
sSQL = "PRAGMA user_version=96"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
End If
|
||||
|
||||
'0.97 Upgrade
|
||||
If GetDatabaseVersion() < 97 Then
|
||||
If eDatabase = Database.Local Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v96")
|
||||
|
||||
'Add new settings
|
||||
sSQL = "ALTER TABLE settings ADD COLUMN Custom7zArguments TEXT;"
|
||||
sSQL &= "ALTER TABLE settings ADD COLUMN Custom7zLocation TEXT;"
|
||||
sSQL &= "ALTER TABLE settings ADD COLUMN SyncFields INTEGER NOT NULL DEFAULT 32;"
|
||||
sSQL &= "ALTER TABLE settings ADD COLUMN AutoSaveLog BOOLEAN NOT NULL DEFAULT 0;"
|
||||
sSQL &= "PRAGMA user_version=97"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
If eDatabase = Database.Remote Then
|
||||
'Backup DB before starting
|
||||
BackupDB("v96")
|
||||
|
||||
sSQL = "PRAGMA user_version=97"
|
||||
|
||||
RunParamQuery(sSQL, New Hashtable)
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function GetDBSize() As Long
|
||||
@@ -498,8 +574,8 @@ Public Class mgrSQLite
|
||||
|
||||
Try
|
||||
command.ExecuteNonQuery()
|
||||
Catch e As Exception
|
||||
MsgBox("An error has occured attempting run the query." & vbCrLf & vbCrLf & sSQL & vbCrLf & vbCrLf & e.Message)
|
||||
Catch ex As Exception
|
||||
mgrCommon.ShowMessage(mgrSQLite_ErrorQueryFailure, New String() {sSQL, ex.Message}, MsgBoxStyle.Exclamation)
|
||||
Finally
|
||||
command.Dispose()
|
||||
Disconnect()
|
||||
|
||||
+135
-2
@@ -12,7 +12,14 @@ Public Class mgrSettings
|
||||
Private bSync As Boolean = True
|
||||
Private bCheckSum As Boolean = True
|
||||
Private bTimeTracking As Boolean = True
|
||||
Private bSupressBackup As Boolean = False
|
||||
Private iSupressBackupThreshold As Integer = 10
|
||||
Private iCompressionLevel As Integer = 5
|
||||
Private s7zArguments As String = String.Empty
|
||||
Private s7zLocation As String = String.Empty
|
||||
Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).TrimEnd(New Char() {"\", "/"})
|
||||
Private eSyncFields As clsGame.eOptionalSyncFields = clsGame.eOptionalSyncFields.None Or clsGame.eOptionalSyncFields.TimeStamp
|
||||
Private bAutoSaveLog As Boolean = False
|
||||
|
||||
Property StartWithWindows As Boolean
|
||||
Get
|
||||
@@ -113,6 +120,99 @@ Public Class mgrSettings
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property SupressBackup As Boolean
|
||||
Get
|
||||
Return bSupressBackup
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
bSupressBackup = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property SupressBackupThreshold As Integer
|
||||
Get
|
||||
Return iSupressBackupThreshold
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
iSupressBackupThreshold = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property CompressionLevel As Integer
|
||||
Get
|
||||
Return iCompressionLevel
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
iCompressionLevel = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property Custom7zArguments As String
|
||||
Get
|
||||
Return s7zArguments
|
||||
End Get
|
||||
Set(value As String)
|
||||
s7zArguments = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property Prepared7zArguments As String
|
||||
Get
|
||||
'Prepare custom 7z arguments
|
||||
Dim sPreparedArguments As String
|
||||
If s7zArguments <> String.Empty Then
|
||||
'Surround the arguments with spaces to be inserted into command
|
||||
sPreparedArguments = " " & s7zArguments & " "
|
||||
Else
|
||||
'The command always needs at least one space inserted
|
||||
sPreparedArguments = " "
|
||||
End If
|
||||
Return sPreparedArguments
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property Custom7zLocation As String
|
||||
Get
|
||||
Return s7zLocation
|
||||
End Get
|
||||
Set(value As String)
|
||||
s7zLocation = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property Is7zUtilityValid As Boolean
|
||||
Get
|
||||
'We don't use a packaged 7za on Unix, assume valid.
|
||||
If mgrCommon.IsUnix Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
If s7zLocation = String.Empty Then
|
||||
'Verify stored hash of the default utility if we're using it
|
||||
Return mgrCommon.UtilityHash = mgrHash.Generate_SHA256_Hash(mgrPath.Default7zLocation)
|
||||
Else
|
||||
'When using a custom utility assume it's valid, we have no way to be sure.
|
||||
Return True
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property Utility7zLocation As String
|
||||
Get
|
||||
'Return default utility when custom setting is not used
|
||||
If s7zLocation = String.Empty Then
|
||||
Return mgrPath.Default7zLocation
|
||||
Else
|
||||
'Check if custom utility is available, if not use the default utility
|
||||
If File.Exists(s7zLocation) Then
|
||||
Return s7zLocation
|
||||
Else
|
||||
Return mgrPath.Default7zLocation
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property BackupFolder As String
|
||||
Get
|
||||
Return sBackupFolder
|
||||
@@ -122,6 +222,24 @@ Public Class mgrSettings
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property SyncFields As clsGame.eOptionalSyncFields
|
||||
Get
|
||||
Return eSyncFields
|
||||
End Get
|
||||
Set(value As clsGame.eOptionalSyncFields)
|
||||
eSyncFields = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property AutoSaveLog As Boolean
|
||||
Get
|
||||
Return bAutoSaveLog
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
bAutoSaveLog = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub SaveFromClass()
|
||||
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
||||
Dim sSQL As String
|
||||
@@ -131,7 +249,9 @@ Public Class mgrSettings
|
||||
oDatabase.RunParamQuery(sSQL, New Hashtable)
|
||||
|
||||
sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, "
|
||||
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, @TimeTracking)"
|
||||
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, "
|
||||
sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, "
|
||||
sSQL &= "@SyncFields,@AutoSaveLog)"
|
||||
|
||||
hshParams.Add("MonitorOnStartup", MonitorOnStartup)
|
||||
hshParams.Add("StartToTray", StartToTray)
|
||||
@@ -145,7 +265,13 @@ Public Class mgrSettings
|
||||
hshParams.Add("CheckSum", CheckSum)
|
||||
hshParams.Add("StartWithWindows", StartWithWindows)
|
||||
hshParams.Add("TimeTracking", TimeTracking)
|
||||
|
||||
hshParams.Add("SupressBackup", SupressBackup)
|
||||
hshParams.Add("SupressBackupThreshold", SupressBackupThreshold)
|
||||
hshParams.Add("CompressionLevel", CompressionLevel)
|
||||
hshParams.Add("Custom7zArguments", Custom7zArguments)
|
||||
hshParams.Add("Custom7zLocation", Custom7zLocation)
|
||||
hshParams.Add("SyncFields", SyncFields)
|
||||
hshParams.Add("AutoSaveLog", AutoSaveLog)
|
||||
oDatabase.RunParamQuery(sSQL, hshParams)
|
||||
End Sub
|
||||
|
||||
@@ -172,6 +298,13 @@ Public Class mgrSettings
|
||||
CheckSum = CBool(dr("CheckSum"))
|
||||
StartWithWindows = CBool(dr("StartWithWindows"))
|
||||
TimeTracking = CBool(dr("TimeTracking"))
|
||||
SupressBackup = CBool(dr("SupressBackup"))
|
||||
SupressBackupThreshold = CInt(dr("SupressBackupThreshold"))
|
||||
CompressionLevel = CInt(dr("CompressionLevel"))
|
||||
If Not IsDBNull(dr("Custom7zArguments")) Then Custom7zArguments = CStr(dr("Custom7zArguments"))
|
||||
If Not IsDBNull(dr("Custom7zLocation")) Then Custom7zLocation = CStr(dr("Custom7zLocation"))
|
||||
SyncFields = CInt(dr("SyncFields"))
|
||||
AutoSaveLog = CBool(dr("AutoSaveLog"))
|
||||
Next
|
||||
|
||||
oDatabase.Disconnect()
|
||||
|
||||
+10
-18
@@ -1,4 +1,5 @@
|
||||
Imports System.Xml.Serialization
|
||||
Imports GBM.My.Resources
|
||||
Imports System.Xml.Serialization
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
|
||||
@@ -10,7 +11,6 @@ Public Class mgrXML
|
||||
Dim hshList As New Hashtable
|
||||
Dim hshDupeList As New Hashtable
|
||||
Dim oGame As clsGame
|
||||
Dim oDupeGame As clsGame
|
||||
|
||||
'If the file doesn't exist return an empty list
|
||||
If Not File.Exists(sLocation) And Not bWebRead Then
|
||||
@@ -32,20 +32,12 @@ Public Class mgrXML
|
||||
oGame.ImportTags.Add(t)
|
||||
Next
|
||||
|
||||
If hshList.Contains(oGame.ProcessName) Or hshDupeList.Contains(oGame.ProcessName) Then
|
||||
oDupeGame = DirectCast(hshList.Item(oGame.ProcessName), clsGame)
|
||||
If Not hshDupeList.Contains(oGame.ProcessName) Then
|
||||
hshDupeList.Add(oGame.ProcessName, oDupeGame)
|
||||
hshList.Remove(oDupeGame.ProcessName)
|
||||
oDupeGame.Duplicate = True
|
||||
oDupeGame.ProcessName = oDupeGame.ProcessName & ":" & oDupeGame.Name
|
||||
hshList.Add(oDupeGame.ProcessName, oDupeGame)
|
||||
End If
|
||||
oGame.ProcessName = oGame.ProcessName & ":" & oGame.Name
|
||||
oGame.Duplicate = True
|
||||
End If
|
||||
|
||||
hshList.Add(oGame.ProcessName, oGame)
|
||||
'This should be wrapped just in case we get some bad data
|
||||
Try
|
||||
hshList.Add(oGame.ProcessName & ":" & oGame.Name, oGame)
|
||||
Catch e As Exception
|
||||
'Do Nothing
|
||||
End Try
|
||||
Next
|
||||
|
||||
Return hshList
|
||||
@@ -69,7 +61,7 @@ Public Class mgrXML
|
||||
oList = oSerializer.Deserialize(oReader)
|
||||
oReader.Close()
|
||||
Catch ex As Exception
|
||||
MsgBox("The XML file cannot be read, it may be an invalid format or corrupted." & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(mgrXML_ErrorImportFailure, ex.Message, MsgBoxStyle.Exclamation)
|
||||
End Try
|
||||
|
||||
Return oList
|
||||
@@ -87,7 +79,7 @@ Public Class mgrXML
|
||||
oWriter.Close()
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox("An error occured exporting the XML data." & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Exclamation, "Game Backup Monitor")
|
||||
mgrCommon.ShowMessage(mgrXML_ErrorExportFailure, ex.Message, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
Imports System.Resources
|
||||
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
@@ -12,7 +14,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("Game Backup Monitor")>
|
||||
<Assembly: AssemblyCompany("Michael J. Seiferling")>
|
||||
<Assembly: AssemblyProduct("Game Backup Monitor")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2015 Michael J. Seiferling")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2016 Michael J. Seiferling")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
@@ -31,5 +33,7 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("0.94.*")>
|
||||
<Assembly: AssemblyFileVersion("0.94.0.0")>
|
||||
<Assembly: AssemblyVersion("0.97.*")>
|
||||
<Assembly: AssemblyFileVersion("0.97.0.0")>
|
||||
|
||||
<Assembly: NeutralResourcesLanguageAttribute("en")>
|
||||
Generated
+4648
-20
File diff suppressed because it is too large
Load Diff
+1550
-8
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+16
-103
@@ -1,113 +1,26 @@
|
||||
Game Backup Monitor v0.94 Readme
|
||||
Game Backup Monitor v0.97 Readme
|
||||
http://mikemaximus.github.io/gbm-web/
|
||||
gamebackupmonitor@gmail.com
|
||||
|
||||
November 17, 2015
|
||||
June 30, 2016
|
||||
|
||||
Disclaimer:
|
||||
|
||||
This is beta release software. You may still encounter some bugs.
|
||||
|
||||
Introduction:
|
||||
New in 0.97
|
||||
|
||||
This application is designed to run in the system tray and monitor for games you play. When you exit a game your save files will be automatically compressed (7z compression), saved to a folder you specify. This may be a cloud folder or external backup drive that other computers will be accessing. GBM can also take care of restoring the save data to other computers that have access to the main backup folder.
|
||||
- (All) Re-designed the Settings screen as a standard preference panel interface.
|
||||
- (Windows) Updated GBM's version of 7-Zip to 16.02 (2016-05-21)
|
||||
- (All) Custom arguments and switches can now be added to GBM's 7-Zip commands.
|
||||
- (All) Custom versions of 7-Zip Console (7za) can now be used as a supported feature.
|
||||
- (Windows) GBM's packaged version(s) of 7-Zip Console (7za) are now verified as a simple security feature.
|
||||
- (All) A "Set Defaults" button is now available on the Settings screen.
|
||||
- (All) Optional data fields such as "Company" and "Version" can now be included in the sync.
|
||||
- (All) Reduced the maximum length of the session log to improve performance and added a setting to control log autosaves.
|
||||
- (All) A "Quick Filter" has been added to the Game Manager. You can now quickly find a game by typing the name as soon as you open the window.
|
||||
- (Linux) An official game list is now available for Linux, GBM will choose the official list based on your operating system.
|
||||
|
||||
GBM has been designed with mostly classic gaming in mind, but it can be used for any application!
|
||||
For more information regarding Linux support read the FAQ at http://mikemaximus.github.io/gbm-web/linux.html
|
||||
|
||||
New in 0.94
|
||||
|
||||
- Added the ability to organize your games with Tags. Users can create and customize their own list of Tags.
|
||||
- Added the ability to filter by Tag in the Game Manager.
|
||||
- Added the ability to filter by Tag when doing an XML export.
|
||||
- Added the ability to disable Time Tracking. Enabling or disabling this setting has no effect on data already recorded.
|
||||
- Added the ability to restart GBM as Administrator from the status bar.
|
||||
- Redesigned notifications, GBM is now silent unless a problem occurs.
|
||||
- Enhanced the sync logic and performance.
|
||||
- The backup "Timestamp" setting is no longer included in XML imports or exports.
|
||||
- Redesigned the XML import and export core. Sorry, this invalidates all prior XML exports files, but it will ensure future backwards compatability.
|
||||
- Various bug fixes.
|
||||
|
||||
New in 0.93
|
||||
|
||||
- GBM now handles date/time fields in an efficient manner, this will solve all issues with regional date formats.
|
||||
- GBM will now gracefully exit with an error message if it detects a database version is newer than the program version itself.
|
||||
- "Access Denied" errors should no longer occur when dragging shortcuts into the Add Game Wizard.
|
||||
- Redesigned how the backup includes and excludes files. The changes allow for more complex backup configurations.
|
||||
- Added an "Open Restore Path" button to the Game Manager, this will automatically open the current backup's restore location in Windows Explorer.
|
||||
- Game names are now cropped in many places to prevent errors when messages and/or notifications exceed control limits.
|
||||
|
||||
New in 0.92
|
||||
|
||||
- GBM now properly handles detecting games in DOSBox that share the same DOS executable name.
|
||||
- "Start with Windows" toggle is now available in settings. Defaults to off and applies to Current User only.
|
||||
- Added "Backups Only" filter option to the Game Manager, this lets you view only games that have backups.
|
||||
- "Backups Only" and "Pending Restore" filters will now list existing backup data for games have been deleted from the game list.
|
||||
- The game list sync is now more verbose in the log.
|
||||
- GBM now triggers a master to local sync when the master data is changed by another application, such as your cloud client downloading an updated version of the master data after GBM is already running.
|
||||
- When importing game configurations, you can now choose exactly which game configurations to import. This applies to the official list or importing an xml file.
|
||||
- Added a Sync toggle to Settings. Disabling sync will speed up the application for users that use GBM on a single computer.
|
||||
- GBM should now properly display a wait cursor in instances that the UI is unavailable.
|
||||
- Added a "Compact Databases" tool, this is used to rebuild GBM's databases to use an optimal amount of disk space. It shouldn't be needed often.
|
||||
- Game detection has been changed. It will take slightly longer for GBM detect a game but this should fix a few long outstanding issues.
|
||||
- Backup & Restore has been optimized to handle everything more efficiently.
|
||||
- GBM will now use the 2015 build of 7-Zip for compression, as well use the 64-bit version of 7z when using the 64-bit version of GBM. 64-bit users will see a huge speed improvement when backing up games with large complex saves, such as Divinity: Original Sin.
|
||||
- GBM now allows you to cancel monitoring via the File menu, system tray menu and monitor status button. You can also now exit the application while a game is being monitored.
|
||||
- The GBM system tray icon tooltip will now display it's current task.
|
||||
- Replaced the icons in GBM with some better looking ones, the system tray icon will now visually represent GBM's current action.
|
||||
- You can now cancel a backup or restore operation in progress. Intended for emergency situations only, cancelling will not undo any actions completed before the operation terminated.
|
||||
- GBM now uses SHA-256 to verify your backup files before restoring them. This is optional, but will be enabled by default.
|
||||
- Overhauled the backend, GBM will use more space to store records, but the improved database design will prevent future bugs.
|
||||
- GBM will now back up your configuration data automatically on a version upgrade.
|
||||
- Another ton of minor fixes and tweaks too various to list.
|
||||
|
||||
New in 0.84
|
||||
|
||||
- Tons of bug fixes and tweaks. GBM is stable enough to move to Beta!
|
||||
- Removed Backup Manager and Restore Manager. All backup & restore functionality is now integrated into the Game Manager.
|
||||
- You can now backup and restore mutliple games at the same time.
|
||||
- You can now edit multiple games at the same time, only on toggle fields for now.
|
||||
- Added a "Monitor Only" option. GBM can only monitor the time you've played a game and not trigger a backup when it's closed.
|
||||
- Deleting a backup will now delete the sub-folder for the game, if it's not empty a confirmation will be displayed first.
|
||||
- Since it can't reliably find them, GBM will no longer attempt to automatically search for dosbox games or games that share a process name.
|
||||
- You can now multi-select on the Game Manager screen to delete multiple games.
|
||||
- When changing your backup folder, if the newly selected backup folder already contains GBM data you now have a choice on how you want to handle the initial game list sync.
|
||||
|
||||
New in 0.81
|
||||
|
||||
- Fixed a critical bug with the Game Manager which allowed you to add duplicate entries. This resulted in a crash and the inability start the app again. 0.81 fixes this bug and will repair any database broken by this issue so the app will function again. (Thanks Nirth from GOG.com)
|
||||
- Fixed an annoying bug where extra game data was being lost when syncing hours spent between computers.
|
||||
- Fixed a potential issue with changing the backup folder.
|
||||
- The Add Game Wizard will now properly handle entries with spaces while working with the Exclude and File Type helper.
|
||||
|
||||
New in 0.8
|
||||
|
||||
- Since it's all about the games anyway, re-branded ABM to GBM - Game Backup Manager.
|
||||
- Removed confusing utilities and screens and replaced them with a user friendly Game Manager.
|
||||
- Rebuilt the Custom Path Variable screen with the new Game Manager look.
|
||||
- 64-bit build available, this will allow GBM to fully detect 64 bit and 32 bit applications. (32-bit will be default download)
|
||||
- Switched back-end from XML to SQLite 3. Old configurations will be imported and upgraded.
|
||||
- Automatic syncing of game list and applicable extra data (such as Hours played) between computers sharing the same backup folder. See "Notes on Automatic Syncing" in this readme for details.
|
||||
- All import features redesigned to work more consistently. Added export feature.
|
||||
- In the rare instance the user is asked to manually find a path, GBM will now search for the location automatically.
|
||||
|
||||
New in 0.7.1.2:
|
||||
|
||||
- Better Monitoring: You no longer need to run ABM as Administrator to monitor certain applications in 99% of situations. See "Current Limitations" for details.
|
||||
- Time Tracking: ABM now tracks the amount of time spent in each application, similar to Steam.
|
||||
- Search: You can now search for a specific application using the new search feature on all applicable forms.
|
||||
- Application Data: You can now add or override application details by using the new "Edit Application Cache" feature.
|
||||
|
||||
New in 0.7.0.7:
|
||||
|
||||
- Fixed some monitor list saving and validation issues.
|
||||
- Fixed the manual backup feature, required application data wasn't being cached.
|
||||
- Fixed possible issue with official import.
|
||||
- Minor Tweaks.
|
||||
|
||||
New in 0.7.0.5:
|
||||
|
||||
- Start-up Wizard: A simple guide to setup the basics when first starting the program.
|
||||
- Add Application Wizard: A more user friendly way to add applications to monitor and backup. The classic monitor list is still available for more advanced configurations and management.
|
||||
- Custom Path Variables: An advanced feature to allow the configuration for more applications to be shared between computers.
|
||||
- Manual Backups: Execute a backup for any monitored application on demand (some applications will be need to be detected by ABM at least once to use this feature)
|
||||
- Various tweaks to make things look and run a little better.
|
||||
- Many bug fixes
|
||||
The entire version history of GBM releases is available at http://mikemaximus.github.io/gbm-web/versionhistory.html
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,12 +2,13 @@
|
||||
|
||||
![Screenshot] (http://mikemaximus.github.io/gbm-web/images/manual/manual_01.jpg)
|
||||
|
||||
Game Backup Monitor is a simple, but flexible application that detects games as you play them. Once you finish playing a game, a backup of the saved games will be made automatically using 7-Zip compression. GBM can be used on a single computer, or on multiple computers to effectively add cloud support to any Windows game or application.
|
||||
Game Backup Monitor is a simple, but flexible application that detects games as you play them. Once you finish playing a game, a backup of the saved games will be made automatically using 7-Zip compression. GBM can be used on a single computer, or on multiple computers to effectively add cloud support to any game or application.
|
||||
|
||||
**License**: GNU General Public License version 3.0 (GPLv3)<br />
|
||||
**Language**: English Only<br />
|
||||
**Platform**: Windows Only (.NET 4)
|
||||
**Platform**: Windows (.NET 4) & Linux (Mono)
|
||||
|
||||
[About Game Backup Monitor] (http://mikemaximus.github.io/gbm-web/about.html) <br />
|
||||
[Game Backup Monitor FAQ] (http://mikemaximus.github.io/gbm-web/faq.html) <br />
|
||||
[Game Backup Monitor Manual] (http://mikemaximus.github.io/gbm-web/manual.html) <br />
|
||||
[List of Preconfigured Games] (http://mikemaximus.github.io/gbm-web/GBM_Official.xml) <br /> <br />
|
||||
|
||||
Reference in New Issue
Block a user