31 Commits

Author SHA1 Message Date
Michael J. Seiferling
378377a1a9 Updated readme.txt for v0.97 2016-06-23 09:56:31 -06:00
Michael J. Seiferling
86ffc75666 Changes for issue #54 2016-06-18 18:41:00 -06:00
Michael J. Seiferling
f312e315b9 Fixed issue with optional fields button 2016-06-15 21:52:20 -06:00
Michael J. Seiferling
e567638c0e Minor Settings changes 2016-06-14 16:11:00 -06:00
Michael J. Seiferling
1f9fcca024 Fixed Settings tab order 2016-06-11 23:14:46 -06:00
Michael J. Seiferling
b68646c97e Minor settings UI changes 2016-06-11 18:12:30 -06:00
Michael J. Seiferling
896c77fe11 Settings label change 2016-06-11 11:32:57 -06:00
Michael J. Seiferling
e288c77ba8 Changes for issue #52 2016-06-10 12:06:01 -06:00
Michael J. Seiferling
8b779f6d66 Fixed small typo in new string 2016-06-09 20:28:10 -06:00
Michael J. Seiferling
ef6e608d30 Changes for issue #27 2016-06-09 12:37:48 -06:00
Michael J. Seiferling
7b524e42fc Removed maintenance code from frmSyncFields 2016-06-07 17:16:20 -06:00
Michael J. Seiferling
2beff1b46d Additions for issue #48 2016-06-07 17:11:52 -06:00
Michael J. Seiferling
0ad4fd890d Changes for issue #51 2016-06-03 19:53:52 -06:00
Michael J. Seiferling
761fed64cc Revert "Changes for issue #51"
This reverts commit f839793071.
2016-06-03 19:50:40 -06:00
Michael J. Seiferling
f839793071 Changes for issue #51 2016-06-03 19:50:25 -06:00
Michael J. Seiferling
b8b4c63910 Fixes for issue #50 2016-05-27 17:13:17 -06:00
Michael J. Seiferling
ef70c08469 Minor fixes 2016-05-27 08:53:17 -06:00
Michael J. Seiferling
45e59f8ae6 Added a quick find filter to Game Manager 2016-05-26 16:50:31 -06:00
Michael J. Seiferling
cb9bab9892 Changes for Issues #46 and #47 2016-05-26 14:13:14 -06:00
Michael J. Seiferling
7f19ae6345 Added basic 7za validation 2016-05-25 15:20:44 -06:00
Michael J. Seiferling
ab240b610c Removed sync fields from upgrade 2016-05-25 09:15:48 -06:00
Michael J. Seiferling
6c80094848 Fixed Settings tab order 2016-05-24 11:44:17 -06:00
Michael J. Seiferling
16649238f0 Minor Settings UI updates 2016-05-24 11:26:49 -06:00
Michael J. Seiferling
39460f57d5 Reverted new Sync settings 2016-05-24 11:15:29 -06:00
Michael J. Seiferling
d788c751f7 Settings UI changes 2016-05-23 14:49:37 -06:00
Michael J. Seiferling
3acb790822 Added new 7z functionality 2016-05-23 09:20:18 -06:00
Michael J. Seiferling
0e4f357c01 Added backend for new Settings 2016-05-22 22:47:28 -06:00
Michael J. Seiferling
58684bf9a5 Updated Settings UI for v0.97 2016-05-22 10:32:00 -06:00
Michael J. Seiferling
1d19a49b0e Updated 7z to v16.02 [2016-05-21] 2016-05-21 22:11:54 -06:00
Michael J. Seiferling
94bb4e70ef Updated readme.txt for v0.96.5977 2016-05-13 07:49:31 -06:00
Michael J. Seiferling
1c493f1d4e Updated 7z to v16 [2016-05-10] 2016-05-13 07:43:28 -06:00
29 changed files with 1943 additions and 476 deletions
+47 -3
View File
@@ -19,6 +19,16 @@
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
@@ -44,7 +54,6 @@
End Get
End Property
Property Name As String
Set(value As String)
sGameName = value
@@ -219,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
@@ -255,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
+41 -19
View File
@@ -89,6 +89,8 @@ Partial Class frmGameManager
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()
@@ -105,7 +107,7 @@ Partial Class frmGameManager
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
'
@@ -116,7 +118,7 @@ Partial Class frmGameManager
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
'
@@ -126,7 +128,7 @@ Partial Class frmGameManager
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 = 16
Me.btnBackup.TabIndex = 18
Me.btnBackup.Text = "&Backup"
Me.btnBackup.UseVisualStyleBackColor = True
'
@@ -136,7 +138,7 @@ Partial Class frmGameManager
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 = 17
Me.btnClose.TabIndex = 19
Me.btnClose.Text = "C&lose"
Me.btnClose.UseVisualStyleBackColor = True
'
@@ -162,7 +164,7 @@ Partial Class frmGameManager
Me.grpConfig.Location = New System.Drawing.Point(247, 12)
Me.grpConfig.Name = "grpConfig"
Me.grpConfig.Size = New System.Drawing.Size(525, 157)
Me.grpConfig.TabIndex = 6
Me.grpConfig.TabIndex = 8
Me.grpConfig.TabStop = False
Me.grpConfig.Text = "Configuration"
'
@@ -304,7 +306,7 @@ Partial Class frmGameManager
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 = 9
Me.chkMonitorOnly.TabIndex = 11
Me.chkMonitorOnly.Text = "Monitor only (No backup)"
Me.chkMonitorOnly.UseVisualStyleBackColor = True
'
@@ -328,7 +330,7 @@ Partial Class frmGameManager
Me.grpExtra.Location = New System.Drawing.Point(247, 175)
Me.grpExtra.Name = "grpExtra"
Me.grpExtra.Size = New System.Drawing.Size(525, 155)
Me.grpExtra.TabIndex = 7
Me.grpExtra.TabIndex = 9
Me.grpExtra.TabStop = False
Me.grpExtra.Text = "Game Information"
'
@@ -459,7 +461,7 @@ Partial Class frmGameManager
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 = 10
Me.btnTags.TabIndex = 12
Me.btnTags.Text = "Tags..."
Me.btnTags.UseVisualStyleBackColor = True
'
@@ -481,7 +483,7 @@ Partial Class frmGameManager
Me.grpStats.Location = New System.Drawing.Point(247, 365)
Me.grpStats.Name = "grpStats"
Me.grpStats.Size = New System.Drawing.Size(525, 154)
Me.grpStats.TabIndex = 13
Me.grpStats.TabIndex = 15
Me.grpStats.TabStop = False
Me.grpStats.Text = "Backup Information"
'
@@ -599,7 +601,7 @@ Partial Class frmGameManager
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 = 14
Me.btnMarkAsRestored.TabIndex = 16
Me.btnMarkAsRestored.Text = "&Mark as Restored"
Me.btnMarkAsRestored.UseVisualStyleBackColor = True
'
@@ -609,7 +611,7 @@ Partial Class frmGameManager
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 = 15
Me.btnRestore.TabIndex = 17
Me.btnRestore.Text = "&Restore"
Me.btnRestore.UseVisualStyleBackColor = True
'
@@ -619,18 +621,18 @@ Partial Class frmGameManager
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 = 11
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(228, 381)
Me.lstGames.TabIndex = 1
Me.lstGames.Size = New System.Drawing.Size(228, 355)
Me.lstGames.TabIndex = 3
'
'btnCancel
'
@@ -638,7 +640,7 @@ Partial Class frmGameManager
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 = 12
Me.btnCancel.TabIndex = 14
Me.btnCancel.Text = "&Cancel"
Me.btnCancel.UseVisualStyleBackColor = True
'
@@ -648,7 +650,7 @@ Partial Class frmGameManager
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 = 8
Me.chkEnabled.TabIndex = 10
Me.chkEnabled.Text = "Monitor this game"
Me.chkEnabled.UseVisualStyleBackColor = True
'
@@ -714,7 +716,7 @@ Partial Class frmGameManager
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 = 4
Me.btnImport.TabIndex = 6
Me.btnImport.Text = "&Import"
Me.btnImport.UseVisualStyleBackColor = True
'
@@ -723,7 +725,7 @@ Partial Class frmGameManager
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 = 5
Me.btnExport.TabIndex = 7
Me.btnExport.Text = "&Export"
Me.btnExport.UseVisualStyleBackColor = True
'
@@ -746,11 +748,29 @@ Partial Class frmGameManager
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)
@@ -857,4 +877,6 @@ Partial Class frmGameManager
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
+61 -8
View File
@@ -20,6 +20,7 @@ Public Class frmGameManager
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
@@ -377,11 +378,19 @@ Public Class frmGameManager
Dim oApp As clsGame
Dim oData As KeyValuePair(Of String, String)
Dim oList As New List(Of KeyValuePair(Of String, String))
Dim sFilter As String = txtQuickFilter.Text
For Each de As DictionaryEntry In AppData
oApp = DirectCast(de.Value, clsGame)
oData = New KeyValuePair(Of String, String)(oApp.ID, oApp.Name)
'Apply the quick filter if applicable
If sFilter = String.Empty Then
oList.Add(oData)
Else
If oApp.Name.ToLower.Contains(sFilter.ToLower) Then
oList.Add(oData)
End If
End If
Next
oList.Sort(AddressOf mgrCommon.CompareByListBoxItemByValue)
@@ -749,6 +758,8 @@ Public Class frmGameManager
Case eModes.Add
grpFilter.Enabled = False
lstGames.Enabled = False
lblQuickFilter.Enabled = False
txtQuickFilter.Enabled = False
grpConfig.Enabled = True
chkMonitorOnly.Enabled = True
grpExtra.Enabled = True
@@ -781,6 +792,8 @@ Public Class frmGameManager
Case eModes.Edit
grpFilter.Enabled = False
lstGames.Enabled = False
lblQuickFilter.Enabled = False
txtQuickFilter.Enabled = False
grpConfig.Enabled = True
chkEnabled.Enabled = True
chkMonitorOnly.Enabled = True
@@ -803,6 +816,8 @@ Public Class frmGameManager
Case eModes.View
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
grpConfig.Enabled = True
chkEnabled.Enabled = True
chkMonitorOnly.Enabled = True
@@ -820,6 +835,8 @@ Public Class frmGameManager
Case eModes.ViewTemp
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
grpConfig.Enabled = False
chkEnabled.Enabled = False
chkMonitorOnly.Enabled = False
@@ -840,6 +857,8 @@ Public Class frmGameManager
Case eModes.Disabled
grpFilter.Enabled = True
lstGames.Enabled = True
lblQuickFilter.Enabled = True
txtQuickFilter.Enabled = True
WipeControls(grpConfig.Controls)
WipeControls(grpExtra.Controls)
WipeControls(grpStats.Controls)
@@ -865,6 +884,8 @@ Public Class frmGameManager
btnExport.Enabled = True
Case eModes.MultiSelect
lstGames.Enabled = True
lblQuickFilter.Enabled = False
txtQuickFilter.Enabled = False
WipeControls(grpConfig.Controls)
WipeControls(grpExtra.Controls)
WipeControls(grpStats.Controls)
@@ -1181,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
bDoBackup = True
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmBackup, BackupList(0).Name)
ElseIf BackupList.Count > 1 Then
bDoBackup = True
sMsg = mgrCommon.FormatString(frmGameManager_ConfirmMultiBackup, BackupList.Count)
Else
mgrCommon.ShowMessage(frmGameManager_ErrorNoValidBackup, MsgBoxStyle.Information)
End If
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()
@@ -1216,7 +1244,8 @@ 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
@@ -1234,7 +1263,6 @@ Public Class frmGameManager
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 mgrCommon.ShowMessage(sMsg, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
TriggerRestore = True
@@ -1269,14 +1297,16 @@ Public Class frmGameManager
End Sub
Private Sub ImportOfficialGameList()
Dim sImportURL As String
If mgrCommon.IsUnix Then
If mgrCommon.ShowMessage(frmGameManager_ConfirmUnixImportWarning, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
Exit Sub
End If
sImportURL = App_URLImportLinux
Else
sImportURL = App_URLImport
End If
If mgrCommon.ShowMessage(frmGameManager_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If mgrMonitorList.DoImport(App_URLImport) Then
If mgrMonitorList.DoImport(sImportURL) Then
LoadData()
End If
End If
@@ -1333,6 +1363,12 @@ Public Class frmGameManager
btnAdd.Text = frmGameManager_btnAdd
cmsOfficial.Text = frmGameManager_cmsOfficial
cmsFile.Text = frmGameManager_cmsFile
lblQuickFilter.Text = frmGameManager_lblQuickFilter
'Init Filter Timer
tmFilterTimer = New Timer()
tmFilterTimer.Interval = 1000
tmFilterTimer.Enabled = False
End Sub
Private Sub frmGameManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
@@ -1489,4 +1525,21 @@ Public Class frmGameManager
ExportGameList()
End Sub
Private Sub txtQuickFilter_TextChanged(sender As Object, e As EventArgs) Handles txtQuickFilter.TextChanged
If Not tmFilterTimer.Enabled Then
tmFilterTimer.Enabled = True
tmFilterTimer.Start()
End If
End Sub
Private Sub tmFilterTimer_Tick(sender As Object, ByVal e As EventArgs) Handles tmFilterTimer.Tick
lstGames.DataSource = Nothing
FormatAndFillList()
tmFilterTimer.Stop()
tmFilterTimer.Enabled = False
End Sub
Private Sub frmGameManager_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
txtQuickFilter.Focus()
End Sub
End Class
+1 -1
View File
@@ -224,7 +224,7 @@ Partial Class frmMain
'
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, 184)
Me.txtLog.MaxLength = 16777216
Me.txtLog.MaxLength = 524288
Me.txtLog.Multiline = True
Me.txtLog.Name = "txtLog"
Me.txtLog.ReadOnly = True
+59 -41
View File
@@ -24,6 +24,8 @@ Public Class frmMain
Private bCancelledByUser As Boolean = False
Private bShutdown As Boolean = False
Private bInitFail As Boolean = False
Private bPathDetectionFailure As Boolean = False
Private sPathDetectionError As String = String.Empty
Private bMenuEnabled As Boolean = True
Private bLockdown As Boolean = True
Private bFirstRun As Boolean = False
@@ -554,7 +556,7 @@ Public Class frmMain
End If
mgrMonitorList.DoListUpdate(oProcess.GameInfo)
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
UpdateTimeSpent(dCurrentHours, oProcess.TimeSpent.TotalHours)
End Sub
@@ -669,7 +671,7 @@ Public Class frmMain
Dim frm As New frmTags
PauseScan()
frm.ShowDialog()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan()
End Sub
@@ -680,7 +682,7 @@ Public Class frmMain
frm.PendingRestores = bPendingRestores
frm.ShowDialog()
LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan()
'Handle backup trigger
@@ -716,7 +718,7 @@ Public Class frmMain
frm.GameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
frm.ShowDialog()
LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan()
End Sub
@@ -725,7 +727,7 @@ Public Class frmMain
PauseScan()
frm.ShowDialog()
mgrPath.CustomVariablesReload()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan()
End Sub
@@ -796,7 +798,7 @@ Public Class frmMain
Private Sub SyncGameSettings()
'Sync Monitor List
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(False)
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
End Sub
Private Sub LocalDatabaseCheck()
@@ -811,13 +813,6 @@ Public Class frmMain
Private Sub LoadAndVerify()
'The application cannot continue if this fails
If Not oBackup.CheckForUtilities(mgrPath.Utility7zLocation) Then
mgrCommon.ShowMessage(frmMain_Error7zip, MsgBoxStyle.Critical)
bShutdown = True
Me.Close()
End If
'Local Database Check
VerifyDBVersion(mgrSQLite.Database.Local)
LocalDatabaseCheck()
@@ -855,6 +850,20 @@ Public Class frmMain
End If
End If
'Check for any custom 7z utility and display a warning if it's missing
If oSettings.Custom7zLocation <> String.Empty Then
If Not oBackup.CheckForUtilities(oSettings.Custom7zLocation) Then
mgrCommon.ShowMessage(frmMain_Error7zCustom, oSettings.Custom7zLocation, MsgBoxStyle.Exclamation)
End If
End If
'If the default utility is missing we cannot continue
If Not oBackup.CheckForUtilities(mgrPath.Default7zLocation) Then
mgrCommon.ShowMessage(frmMain_Error7zip, MsgBoxStyle.Critical)
bShutdown = True
Me.Close()
End If
End Sub
'Functions that handle buttons, menus and other GUI features on this form
@@ -1041,12 +1050,17 @@ Public Class frmMain
Dim d As New UpdateLogCallBack(AddressOf UpdateLog)
Me.Invoke(d, New Object() {sLogUpdate, bTrayUpdate, objIcon, bTimeStamp})
Else
'Auto save and clear the log if we are approaching the limit
If txtLog.TextLength > 16770000 Then
'Auto save and/or clear the log if we are approaching the limit
If txtLog.TextLength > 262144 Then
If oSettings.AutoSaveLog Then
Dim sLogFile As String = mgrPath.LogFileLocation
mgrCommon.SaveText(txtLog.Text, sLogFile)
txtLog.Clear()
txtLog.AppendText("[" & Date.Now & "] " & mgrCommon.FormatString(frmMain_LogAutoSave, sLogFile))
Else
txtLog.Clear()
txtLog.AppendText("[" & Date.Now & "] " & frmMain_LogAutoClear)
End If
End If
'We shouldn't allow any one message to be greater than 255 characters if that same message is pushed to the tray icon
@@ -1234,7 +1248,7 @@ Public Class frmMain
oSettings.BackupFolder = sBackupPath
oSettings.SaveSettings()
oSettings.LoadSettings()
If oSettings.Sync Then mgrMonitorList.HandleBackupLocationChange()
If oSettings.Sync Then mgrMonitorList.HandleBackupLocationChange(oSettings)
End If
Return True
Else
@@ -1513,7 +1527,6 @@ Public Class frmMain
Private Sub ScanTimerEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmScanTimer.Tick
Dim bNeedsPath As Boolean = False
Dim bContinue As Boolean = True
Dim bAskForRestart As Boolean = False
Dim iErrorCode As Integer = 0
Dim sErrorMessage As String = String.Empty
@@ -1525,42 +1538,27 @@ Public Class frmMain
If iErrorCode = 5 Then
If oProcess.Duplicate Then
sErrorMessage = mgrCommon.FormatString(frmMain_ErrorMultiAdmin)
mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation)
bAskForRestart = True
UpdateLog(sErrorMessage, True, ToolTipIcon.Warning, True)
Else
If Not CheckForSavedPath() Then
sErrorMessage = mgrCommon.FormatString(frmMain_ErrorAdminBackup, oProcess.GameInfo.Name)
oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sErrorMessage)
If oProcess.GameInfo.ProcessPath <> String.Empty Then
'Update and reload
mgrMonitorList.DoListUpdate(oProcess.GameInfo)
LoadGameSettings()
bContinue = True
bPathDetectionFailure = True
sPathDetectionError = mgrCommon.FormatString(frmMain_ErrorAdminBackup, oProcess.GameInfo.Name)
End If
Else
bContinue = True
End If
End If
ElseIf iErrorCode = 299 Then
If oProcess.Duplicate Then
sErrorMessage = mgrCommon.FormatString(frmMain_ErrorMulti64)
mgrCommon.ShowMessage(sErrorMessage, MsgBoxStyle.Exclamation)
UpdateLog(sErrorMessage, True, ToolTipIcon.Warning, True)
Else
If Not CheckForSavedPath() Then
sErrorMessage = mgrCommon.FormatString(frmMain_Error64Backup, oProcess.GameInfo.Name)
oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sErrorMessage)
If oProcess.GameInfo.ProcessPath <> String.Empty Then
'Update and reload
mgrMonitorList.DoListUpdate(oProcess.GameInfo)
LoadGameSettings()
bContinue = True
bPathDetectionFailure = True
sPathDetectionError = mgrCommon.FormatString(frmMain_Error64Backup, oProcess.GameInfo.Name)
End If
Else
bContinue = True
End If
End If
End If
End If
If bContinue = True Then
CheckForSavedDuplicate()
@@ -1577,9 +1575,6 @@ Public Class frmMain
bwMonitor.RunWorkerAsync()
Else
StopScan()
If bAskForRestart Then
RestartAsAdmin()
End If
End If
End If
End Sub
@@ -1600,9 +1595,28 @@ Public Class frmMain
End Sub
Private Sub bwMain_RunWorkerCompleted(sender As System.Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwMonitor.RunWorkerCompleted
Dim bContinue As Boolean = True
oProcess.EndTime = Now
If Not bCancelledByUser Then
'Check if we failed to detect the game path
If bPathDetectionFailure Then
oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sPathDetectionError)
If oProcess.GameInfo.ProcessPath <> String.Empty Then
'Update and reload
mgrMonitorList.DoListUpdate(oProcess.GameInfo)
LoadGameSettings()
Else
bContinue = False
If oSettings.TimeTracking Then HandleTimeSpent()
UpdateLog(mgrCommon.FormatString(frmMain_ErrorBackupUnknownPath, oProcess.GameInfo.Name), False)
oProcess.GameInfo = Nothing
ResetGameInfo()
ResumeScan()
End If
End If
If bContinue Then
If DoMultiGameCheck() Then
UpdateLog(mgrCommon.FormatString(frmMain_GameEnded, oProcess.GameInfo.Name), False)
If oSettings.TimeTracking Then HandleTimeSpent()
@@ -1614,7 +1628,11 @@ Public Class frmMain
ResumeScan()
End If
End If
End If
'Reset globals
bPathDetectionFailure = False
sPathDetectionError = String.Empty
bCancelledByUser = False
oProcess.StartTime = Now : oProcess.EndTime = Now
End Sub
+335 -140
View File
@@ -24,34 +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.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.grp7z = New System.Windows.Forms.GroupBox()
Me.lblCompression = New System.Windows.Forms.Label()
Me.grp7zGeneral = New System.Windows.Forms.GroupBox()
Me.cboCompression = New System.Windows.Forms.ComboBox()
Me.grpGeneral.SuspendLayout()
Me.grpPaths.SuspendLayout()
Me.grpBackup.SuspendLayout()
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.grp7z.SuspendLayout()
Me.grp7zGeneral.SuspendLayout()
Me.pnlBackup.SuspendLayout()
Me.pnl7z.SuspendLayout()
Me.grp7zAdvanced.SuspendLayout()
Me.grp7zInformation.SuspendLayout()
Me.pnlGeneral.SuspendLayout()
Me.grpGameData.SuspendLayout()
Me.SuspendLayout()
'
'chkMonitorOnStartup
@@ -67,37 +88,24 @@ Partial Class frmSettings
'chkBackupConfirm
'
Me.chkBackupConfirm.AutoSize = True
Me.chkBackupConfirm.Location = New System.Drawing.Point(6, 42)
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 = 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 = 4
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
'
@@ -109,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 = 5
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(159, 17)
Me.chkShowDetectionTips.TabIndex = 3
Me.chkShowDetectionTips.Text = "Show detection notifications"
Me.chkShowDetectionTips.UseVisualStyleBackColor = True
'
'chkStartToTray
'
Me.chkStartToTray.AutoSize = True
@@ -139,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, 410)
Me.grpPaths.Name = "grpPaths"
Me.grpPaths.Size = New System.Drawing.Size(360, 60)
Me.grpPaths.TabIndex = 3
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
@@ -163,60 +201,53 @@ 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, 476)
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, 476)
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
'
Me.grpBackup.Controls.Add(Me.lblMinutes)
Me.grpBackup.Controls.Add(Me.nudSupressBackupThreshold)
Me.grpBackup.Controls.Add(Me.chkSupressBackup)
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, 168)
Me.grpBackup.TabIndex = 1
Me.grpBackup.TabStop = False
Me.grpBackup.Text = "Backup and Restore"
'
'lblMinutes
'
Me.lblMinutes.AutoSize = True
Me.lblMinutes.Location = New System.Drawing.Point(286, 135)
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
@@ -224,7 +255,7 @@ Partial Class frmSettings
'
'nudSupressBackupThreshold
'
Me.nudSupressBackupThreshold.Location = New System.Drawing.Point(229, 133)
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)
@@ -233,7 +264,7 @@ Partial Class frmSettings
'chkSupressBackup
'
Me.chkSupressBackup.AutoSize = True
Me.chkSupressBackup.Location = New System.Drawing.Point(6, 134)
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
@@ -243,7 +274,7 @@ Partial Class frmSettings
'chkCheckSum
'
Me.chkCheckSum.AutoSize = True
Me.chkCheckSum.Location = New System.Drawing.Point(6, 88)
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 = 3
@@ -253,7 +284,7 @@ Partial Class frmSettings
'chkRestoreOnLaunch
'
Me.chkRestoreOnLaunch.AutoSize = True
Me.chkRestoreOnLaunch.Location = New System.Drawing.Point(6, 111)
Me.chkRestoreOnLaunch.Location = New System.Drawing.Point(6, 157)
Me.chkRestoreOnLaunch.Name = "chkRestoreOnLaunch"
Me.chkRestoreOnLaunch.Size = New System.Drawing.Size(257, 17)
Me.chkRestoreOnLaunch.TabIndex = 4
@@ -263,33 +294,32 @@ Partial Class frmSettings
'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, 19)
Me.chkCreateFolder.Name = "chkCreateFolder"
Me.chkCreateFolder.Size = New System.Drawing.Size(186, 17)
Me.chkCreateFolder.TabIndex = 0
Me.chkCreateFolder.Text = "Create a sub-folder for each game"
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"
'
'grp7z
'cboCompression
'
Me.grp7z.Controls.Add(Me.cboCompression)
Me.grp7z.Controls.Add(Me.lblCompression)
Me.grp7z.Location = New System.Drawing.Point(12, 357)
Me.grp7z.Name = "grp7z"
Me.grp7z.Size = New System.Drawing.Size(360, 47)
Me.grp7z.TabIndex = 2
Me.grp7z.TabStop = False
Me.grp7z.Text = "7z Options"
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
'
@@ -300,26 +330,167 @@ Partial Class frmSettings
Me.lblCompression.TabIndex = 0
Me.lblCompression.Text = "Compression:"
'
'cboCompression
'btn7zLocation
'
Me.cboCompression.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboCompression.FormattingEnabled = True
Me.cboCompression.Location = New System.Drawing.Point(88, 17)
Me.cboCompression.Name = "cboCompression"
Me.cboCompression.Size = New System.Drawing.Size(224, 21)
Me.cboCompression.TabIndex = 1
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, 511)
Me.Controls.Add(Me.grp7z)
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
@@ -328,22 +499,30 @@ Partial Class frmSettings
Me.ShowInTaskbar = False
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.grp7z.ResumeLayout(False)
Me.grp7z.PerformLayout()
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 btnSave As System.Windows.Forms.Button
Friend WithEvents btnCancel As System.Windows.Forms.Button
@@ -351,7 +530,6 @@ Partial Class frmSettings
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
@@ -362,7 +540,24 @@ Partial Class frmSettings
Friend WithEvents lblMinutes As Label
Friend WithEvents nudSupressBackupThreshold As NumericUpDown
Friend WithEvents chkSupressBackup As CheckBox
Friend WithEvents grp7z As GroupBox
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
+193 -24
View File
@@ -1,9 +1,11 @@
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
@@ -15,15 +17,6 @@ Public Class frmSettings
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
@@ -51,6 +44,7 @@ Public Class frmSettings
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
@@ -60,6 +54,13 @@ Public Class frmSettings
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
bCheckSumDisabled = True
@@ -68,13 +69,13 @@ Public Class frmSettings
'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
@@ -82,13 +83,29 @@ Public Class frmSettings
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
@@ -96,11 +113,67 @@ Public Class frmSettings
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
@@ -113,16 +186,26 @@ Public Class frmSettings
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"
@@ -136,6 +219,57 @@ Public Class frmSettings
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()
@@ -143,7 +277,6 @@ Public Class frmSettings
Me.Text = frmSettings_FormName
'Set Form Text
grpBackup.Text = frmSettings_grpBackup
lblMinutes.Text = frmSettings_lblMinutes
chkSupressBackup.Text = frmSettings_chkSupressBackup
chkCheckSum.Text = frmSettings_chkCheckSum
@@ -153,24 +286,37 @@ Public Class frmSettings
chkBackupConfirm.Text = frmSettings_chkBackupConfirm
btnCancel.Text = frmSettings_btnCancel
btnSave.Text = frmSettings_btnSave
grpPaths.Text = frmSettings_grpPaths
grpFolderOptions.Text = frmSettings_grpFolderOptions
btnBackupFolder.Text = frmSettings_btnBackupFolder
lblBackupFolder.Text = frmSettings_lblBackupFolder
grpGeneral.Text = frmSettings_grpGeneral
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
grp7z.Text = frmSettings_grp7z
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
@@ -185,12 +331,6 @@ Public Class frmSettings
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()
@@ -203,7 +343,36 @@ Public Class frmSettings
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
+10 -8
View File
@@ -66,7 +66,7 @@ Public Class frmStartUpWizard
If oDatabase.CheckDB() Then
'Make sure database is the latest version
oDatabase.DatabaseUpgrade()
mgrMonitorList.SyncMonitorLists(False)
mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
mgrCommon.ShowMessage(frmStartUpWizard_ExistingData, MsgBoxStyle.Information)
End If
End Sub
@@ -98,16 +98,18 @@ Public Class frmStartUpWizard
End Sub
Private Sub DownloadSettings()
Dim sImportURL As String
If mgrCommon.IsUnix Then
If mgrCommon.ShowMessage(frmGameManager_ConfirmUnixImportWarning, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
Exit Sub
End If
sImportURL = App_URLImportLinux
Else
sImportURL = App_URLImport
End If
If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If mgrMonitorList.DoImport(App_URLImport) Then
If mgrMonitorList.DoImport(sImportURL) Then
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
End If
End If
End Sub
@@ -122,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()
@@ -131,7 +133,7 @@ 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
+163
View File
@@ -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
+120
View File
@@ -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>
+115
View File
@@ -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
+16 -19
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -195,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>
@@ -273,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>
@@ -329,6 +338,12 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="References\Mono.Data.Sqlite.dll" />
<Content Include="Utilities\x64\7za.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Utilities\x86\7za.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="x86\sqlite3.dll" />
<None Include="Resources\gbm.ico" />
<Content Include="Resources\Admin.png" />
@@ -342,24 +357,6 @@
<Content Include="Resources\type.ico" />
<Content Include="Resources\User.png" />
<Content Include="x64\sqlite3.dll" />
<Content Include="Utilities\x64\7za.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<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>
<None Include="Resources\Stopped.png" />
<None Include="Resources\Detected.png" />
<None Include="Resources\Ready.png" />
+8 -8
View File
@@ -169,20 +169,16 @@ Public Class mgrBackup
BuildFileList(sSavePath, oGame.ExcludeList, mgrPath.ExcludeFileLocation)
Try
If Directory.Exists(sSavePath) Then
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
If Directory.Exists(sSavePath) Then
'The Linux version of 7za doesn't support the new verbose parameters and fails out. Just split this up for now until we have a better solution.
If mgrCommon.IsUnix Then
prs7z.StartInfo.Arguments = "a -t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
Else
prs7z.StartInfo.Arguments = "a -bb1 -bt -t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
End If
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
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
@@ -207,6 +203,10 @@ Public Class mgrBackup
End If
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
bBackupCompleted = False
End If
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorNoSavePath, oGame.Name), True, ToolTipIcon.Error, True)
bBackupCompleted = False
+25
View File
@@ -5,6 +5,23 @@ 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
@@ -140,6 +157,14 @@ 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
+76 -16
View File
@@ -10,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
@@ -25,15 +25,15 @@ Public Class mgrMonitorList
'If the remote database actually contains a list, then ask what to do
If iGameCount > 0 Then
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
mgrMonitorList.SyncMonitorLists()
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
@@ -61,22 +61,63 @@ Public Class mgrMonitorList
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)
'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, (SELECT ProcessPath FROM monitorlist WHERE MonitorID=@ID), "
sSQL &= "(SELECT Icon FROM monitorlist WHERE MonitorID=@ID), @Hours, (SELECT Version FROM monitorlist WHERE MonitorID=@ID), "
sSQL &= "(SELECT Company FROM monitorlist WHERE MonitorID=@ID), COALESCE((SELECT Enabled FROM monitorlist WHERE MonitorID=@ID),1), COALESCE((SELECT MonitorOnly FROM monitorlist WHERE MonitorID=@ID),0));"
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)
@@ -84,9 +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)
'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
@@ -117,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
@@ -148,17 +209,16 @@ Public Class mgrMonitorList
For Each oFromItem In hshCompareFrom.Values
If hshCompareTo.Contains(oFromItem.CompoundKey) Then
oToItem = DirectCast(hshCompareTo(oFromItem.CompoundKey), clsGame)
If oFromItem.SyncEquals(oToItem) Then
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
+13 -13
View File
@@ -5,11 +5,11 @@ 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 sLogFile As String = sSettingsRoot & "/gbm_log_" & Date.Now.ToString("dd-MM-yyyy-HH-mm-ss") & ".txt"
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
@@ -37,7 +37,7 @@ 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"
@@ -45,18 +45,18 @@ Public Class mgrPath
Select Case oReleaseType
Case ProcessorArchitecture.Amd64
Return Application.StartupPath & "/Utilities/x64/7za.exe"
Return Application.StartupPath & "\Utilities\x64\7za.exe"
Case ProcessorArchitecture.IA64
Return Application.StartupPath & "/Utilities/x64/7za.exe"
Return Application.StartupPath & "\Utilities\x64\7za.exe"
Case ProcessorArchitecture.MSIL
Return Application.StartupPath & "/Utilities/x86/7za.exe"
Return Application.StartupPath & "\Utilities\x86\7za.exe"
Case ProcessorArchitecture.X86
Return Application.StartupPath & "/Utilities/x86/7za.exe"
Return Application.StartupPath & "\Utilities\x86\7za.exe"
Case ProcessorArchitecture.None
Return Application.StartupPath & "/Utilities/x86/7za.exe"
Return Application.StartupPath & "\Utilities\x86\7za.exe"
End Select
Return Application.StartupPath & "/Utilities/x86/7za.exe"
Return Application.StartupPath & "\Utilities\x86\7za.exe"
End Get
End Property
@@ -95,7 +95,7 @@ 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
+7 -6
View File
@@ -231,12 +231,9 @@ Public Class mgrRestore
Try
If File.Exists(sBackupFile) Then
If mgrCommon.IsUnix Then
prs7z.StartInfo.Arguments = "x """ & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
Else
prs7z.StartInfo.Arguments = "x -bb1 -bt """ & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
End If
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
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
@@ -261,6 +258,10 @@ Public Class mgrRestore
End If
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
bRestoreCompleted = False
End If
Else
RaiseEvent UpdateLog(mgrRestore_ErrorNoBackup, True, ToolTipIcon.Error, True)
End If
+27 -1
View File
@@ -73,7 +73,8 @@ Public Class mgrSQLite
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);"
"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, " &
@@ -530,6 +531,31 @@ Public Class mgrSQLite
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
+98 -2
View File
@@ -15,7 +15,11 @@ Public Class mgrSettings
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
@@ -143,6 +147,72 @@ Public Class mgrSettings
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
@@ -152,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
@@ -162,7 +250,8 @@ Public Class mgrSettings
sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, "
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, "
sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel)"
sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, "
sSQL &= "@SyncFields,@AutoSaveLog)"
hshParams.Add("MonitorOnStartup", MonitorOnStartup)
hshParams.Add("StartToTray", StartToTray)
@@ -179,7 +268,10 @@ Public Class mgrSettings
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
@@ -209,6 +301,10 @@ Public Class mgrSettings
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()
+3 -3
View File
@@ -14,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)>
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("0.96.*")>
<Assembly: AssemblyFileVersion("0.96.0.0")>
<Assembly: AssemblyVersion("0.97.*")>
<Assembly: AssemblyFileVersion("0.97.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("en")>
+321 -33
View File
@@ -87,6 +87,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 7-Zip (7za.exe) is invalid and has been prevented from running..
'''</summary>
Friend ReadOnly Property App_Invalid7zDetected() As String
Get
Return ResourceManager.GetString("App_Invalid7zDetected", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] KB.
'''</summary>
@@ -123,6 +132,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to N/A.
'''</summary>
Friend ReadOnly Property App_NotAvailable() As String
Get
Return ResourceManager.GetString("App_NotAvailable", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to http://mikemaximus.github.io/gbm-web/GBM_Official.xml.
'''</summary>
@@ -132,6 +150,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to http://mikemaximus.github.io/gbm-web/GBM_Official_Linux.xml.
'''</summary>
Friend ReadOnly Property App_URLImportLinux() As String
Get
Return ResourceManager.GetString("App_URLImportLinux", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to http://mikemaximus.github.io/gbm-web/manual.html.
'''</summary>
@@ -1455,15 +1482,6 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to You appear to be using a Unix based operating system. The official list currently contains only Microsoft Windows game configurations.[BR][BR]Do you wish to continue?.
'''</summary>
Friend ReadOnly Property frmGameManager_ConfirmUnixImportWarning() As String
Get
Return ResourceManager.GetString("frmGameManager_ConfirmUnixImportWarning", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Backup Monitor Export.
'''</summary>
@@ -1483,7 +1501,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to The selected game(s) have no backup data..
''' Looks up a localized string similar to The selected game(s) have no backup data or can&apos;t be restored with their current configuration..
'''</summary>
Friend ReadOnly Property frmGameManager_ErrorNoBackupData() As String
Get
@@ -1518,6 +1536,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to A backup cannot be run on the selected game(s) with their current configuration..
'''</summary>
Friend ReadOnly Property frmGameManager_ErrorNoValidBackup() As String
Get
Return ResourceManager.GetString("frmGameManager_ErrorNoValidBackup", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] uses a relative path and the game path has not been set..
'''</summary>
@@ -1743,6 +1770,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Quick Filter:.
'''</summary>
Friend ReadOnly Property frmGameManager_lblQuickFilter() As String
Get
Return ResourceManager.GetString("frmGameManager_lblQuickFilter", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Restore Path:.
'''</summary>
@@ -2310,6 +2346,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The custom 7-Zip utility could not be found at:[BR][BR][PARAM][BR][BR]Please check your settings, the default 7-Zip utility will be used..
'''</summary>
Friend ReadOnly Property frmMain_Error7zCustom() As String
Get
Return ResourceManager.GetString("frmMain_Error7zCustom", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 7-Zip was not found. The application cannot continue..
'''</summary>
@@ -2320,7 +2365,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] is running as Administrator and GBM is not, GBM cannot detect the required information to save your backup..
''' Looks up a localized string similar to [PARAM] was running as Administrator and GBM is not, GBM cannot detect the required information to save your backup..
'''</summary>
Friend ReadOnly Property frmMain_ErrorAdminBackup() As String
Get
@@ -2446,7 +2491,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Multiple possible 64-bit games have been detected, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please install the 64-bit version of GBM to detect and backup this game properly..
''' Looks up a localized string similar to Install the 64-bit version of GBM to detect the last running game..
'''</summary>
Friend ReadOnly Property frmMain_ErrorMulti64() As String
Get
@@ -2455,7 +2500,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Multiple possible games have been detected running as Administrator and GBM is not, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please run GBM as Administrator to properly detect and backup this game..
''' Looks up a localized string similar to Restart GBM as Administrator to detect the last running game..
'''</summary>
Friend ReadOnly Property frmMain_ErrorMultiAdmin() As String
Get
@@ -2806,7 +2851,16 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to The session log has been cleared due to size and auto-saved to [PARAM]..
''' Looks up a localized string similar to The session log reached maximum length and has been cleared..
'''</summary>
Friend ReadOnly Property frmMain_LogAutoClear() As String
Get
Return ResourceManager.GetString("frmMain_LogAutoClear", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The session log reached maximum length and has been auto-saved to [PARAM]..
'''</summary>
Friend ReadOnly Property frmMain_LogAutoSave() As String
Get
@@ -3057,6 +3111,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Executable.
'''</summary>
Friend ReadOnly Property frmSettings_7zaFileType() As String
Get
Return ResourceManager.GetString("frmSettings_7zaFileType", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Locate 7-Zip Console (7za).
'''</summary>
Friend ReadOnly Property frmSettings_Browse7za() As String
Get
Return ResourceManager.GetString("frmSettings_Browse7za", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Choose a backup folder:.
'''</summary>
@@ -3084,6 +3156,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Set &amp;Defaults.
'''</summary>
Friend ReadOnly Property frmSettings_btnDefaults() As String
Get
Return ResourceManager.GetString("frmSettings_btnDefaults", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Choose &amp;Optional Fields....
'''</summary>
Friend ReadOnly Property frmSettings_btnOptionalFields() As String
Get
Return ResourceManager.GetString("frmSettings_btnOptionalFields", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to &amp;Save.
'''</summary>
@@ -3147,6 +3237,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Autosave log when max length is exceeded.
'''</summary>
Friend ReadOnly Property frmSettings_chkAutoSaveLog() As String
Get
Return ResourceManager.GetString("frmSettings_chkAutoSaveLog", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Disable backup confirmation.
'''</summary>
@@ -3238,7 +3337,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Sync game list data with backup folder.
''' Looks up a localized string similar to Enable syncing.
'''</summary>
Friend ReadOnly Property frmSettings_chkSync() As String
Get
@@ -3255,6 +3354,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Do you want to revert all settings to their defaults?.
'''</summary>
Friend ReadOnly Property frmSettings_ConfirmDefaults() As String
Get
Return ResourceManager.GetString("frmSettings_ConfirmDefaults", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The backup folder does not exist. Please choose a valid backup folder..
'''</summary>
@@ -3264,6 +3372,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The custom 7-Zip location [PARAM] does not exist..
'''</summary>
Friend ReadOnly Property frmSettings_ErrorLocation() As String
Get
Return ResourceManager.GetString("frmSettings_ErrorLocation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Settings.
'''</summary>
@@ -3274,38 +3391,65 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 7z Options.
''' Looks up a localized string similar to Advanced.
'''</summary>
Friend ReadOnly Property frmSettings_grp7z() As String
Friend ReadOnly Property frmSettings_grp7zAdvanced() As String
Get
Return ResourceManager.GetString("frmSettings_grp7z", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Backup and Restore.
'''</summary>
Friend ReadOnly Property frmSettings_grpBackup() As String
Get
Return ResourceManager.GetString("frmSettings_grpBackup", resourceCulture)
Return ResourceManager.GetString("frmSettings_grp7zAdvanced", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to General.
'''</summary>
Friend ReadOnly Property frmSettings_grpGeneral() As String
Friend ReadOnly Property frmSettings_grp7zGeneral() As String
Get
Return ResourceManager.GetString("frmSettings_grpGeneral", resourceCulture)
Return ResourceManager.GetString("frmSettings_grp7zGeneral", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Paths.
''' Looks up a localized string similar to Version Information.
'''</summary>
Friend ReadOnly Property frmSettings_grpPaths() As String
Friend ReadOnly Property frmSettings_grp7zInformation() As String
Get
Return ResourceManager.GetString("frmSettings_grpPaths", resourceCulture)
Return ResourceManager.GetString("frmSettings_grp7zInformation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Folders.
'''</summary>
Friend ReadOnly Property frmSettings_grpFolderOptions() As String
Get
Return ResourceManager.GetString("frmSettings_grpFolderOptions", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Data.
'''</summary>
Friend ReadOnly Property frmSettings_grpGameData() As String
Get
Return ResourceManager.GetString("frmSettings_grpGameData", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Startup.
'''</summary>
Friend ReadOnly Property frmSettings_grpStartup() As String
Get
Return ResourceManager.GetString("frmSettings_grpStartup", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Custom Arguments:.
'''</summary>
Friend ReadOnly Property frmSettings_lblArguments() As String
Get
Return ResourceManager.GetString("frmSettings_lblArguments", resourceCulture)
End Get
End Property
@@ -3327,6 +3471,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Custom Location:.
'''</summary>
Friend ReadOnly Property frmSettings_lblLocation() As String
Get
Return ResourceManager.GetString("frmSettings_lblLocation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to minutes.
'''</summary>
@@ -3336,6 +3489,51 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 7-Zip.
'''</summary>
Friend ReadOnly Property frmSettings_lstSettings_7z() As String
Get
Return ResourceManager.GetString("frmSettings_lstSettings_7z", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Backup and Restore.
'''</summary>
Friend ReadOnly Property frmSettings_lstSettings_BackupRestore() As String
Get
Return ResourceManager.GetString("frmSettings_lstSettings_BackupRestore", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to General.
'''</summary>
Friend ReadOnly Property frmSettings_lstSettings_General() As String
Get
Return ResourceManager.GetString("frmSettings_lstSettings_General", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Invalid or poorly formatted 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the custom arguments and try again..
'''</summary>
Friend ReadOnly Property frmSettings_WarningArguments() As String
Get
Return ResourceManager.GetString("frmSettings_WarningArguments", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to You have chosen a custom utility that does not appear to be 7-Zip. [BR][BR]GBM only supports the use of 7-Zip Console (7za)..
'''</summary>
Friend ReadOnly Property frmSettings_WarningLocation() As String
Get
Return ResourceManager.GetString("frmSettings_WarningLocation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Choose a backup folder:.
'''</summary>
@@ -3597,6 +3795,96 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to &amp;Cancel.
'''</summary>
Friend ReadOnly Property frmSyncFields_btnCancel() As String
Get
Return ResourceManager.GetString("frmSyncFields_btnCancel", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to &amp;Save.
'''</summary>
Friend ReadOnly Property frmSyncFields_btnSave() As String
Get
Return ResourceManager.GetString("frmSyncFields_btnSave", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Company.
'''</summary>
Friend ReadOnly Property frmSyncFields_chkCompany() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkCompany", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Path (Not Recommended).
'''</summary>
Friend ReadOnly Property frmSyncFields_chkGamePath() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkGamePath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Icon (Not Recommended).
'''</summary>
Friend ReadOnly Property frmSyncFields_chkIcon() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkIcon", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Monitor this game.
'''</summary>
Friend ReadOnly Property frmSyncFields_chkMonitorGame() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkMonitorGame", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Time stamp each backup.
'''</summary>
Friend ReadOnly Property frmSyncFields_chkTimeStamp() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkTimeStamp", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Version.
'''</summary>
Friend ReadOnly Property frmSyncFields_chkVersion() As String
Get
Return ResourceManager.GetString("frmSyncFields_chkVersion", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Optional Sync Fields.
'''</summary>
Friend ReadOnly Property frmSyncFields_FormName() As String
Get
Return ResourceManager.GetString("frmSyncFields_FormName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Available Fields.
'''</summary>
Friend ReadOnly Property frmSyncFields_grpFields() As String
Get
Return ResourceManager.GetString("frmSyncFields_grpFields", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to +.
'''</summary>
@@ -4160,7 +4448,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to GBM data already exists in the backup folder.[BR][BR]Do you want to make your local game list the new master game list in this folder? (Recommended)[BR][BR]Choosing No will sync your local game list to the current master game list in this folder..
''' Looks up a localized string similar to The sync settings have changed and data already exists in the backup folder.[BR][BR]Do you want to make your current game data on this PC the new master game data in this folder? (Highly Recommended)[BR][BR]Choosing No will sync your game data on this PC to the current master game data in this folder..
'''</summary>
Friend ReadOnly Property mgrMonitorList_ConfirmExistingData() As String
Get
+115 -19
View File
@@ -197,7 +197,7 @@
<value>7-Zip was not found. The application cannot continue.</value>
</data>
<data name="frmMain_ErrorAdminBackup" xml:space="preserve">
<value>[PARAM] is running as Administrator and GBM is not, GBM cannot detect the required information to save your backup.</value>
<value>[PARAM] was running as Administrator and GBM is not, GBM cannot detect the required information to save your backup.</value>
</data>
<data name="frmMain_ErrorAdminDetect" xml:space="preserve">
<value>[PARAM] is running as Administrator and GBM is not.[BR]You cannot cancel monitoring at this time.[BR][BR]Run GBM as Administrator to prevent this issue.</value>
@@ -227,10 +227,10 @@
<value>The GBM data (Version [PARAM]) in your backup folder is too new for your version of GBM (Version [PARAM])[BR][BR]All computers sharing a backup folder must use the same version of GBM. The application cannot proceed.</value>
</data>
<data name="frmMain_ErrorMulti64" xml:space="preserve">
<value>Multiple possible 64-bit games have been detected, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please install the 64-bit version of GBM to detect and backup this game properly.</value>
<value>Install the 64-bit version of GBM to detect the last running game.</value>
</data>
<data name="frmMain_ErrorMultiAdmin" xml:space="preserve">
<value>Multiple possible games have been detected running as Administrator and GBM is not, GBM cannot detect the path to identify your game or save your backup.[BR][BR]Please run GBM as Administrator to properly detect and backup this game.</value>
<value>Restart GBM as Administrator to detect the last running game.</value>
</data>
<data name="frmMain_ErrorRelativePath" xml:space="preserve">
<value>[PARAM] uses a relative path and has never been detected on this computer.</value>
@@ -566,7 +566,7 @@
<value>A game with this exact name and process already exists.</value>
</data>
<data name="frmGameManager_ErrorNoBackupData" xml:space="preserve">
<value>The selected game(s) have no backup data.</value>
<value>The selected game(s) have no backup data or can't be restored with their current configuration.</value>
</data>
<data name="frmGameManager_ErrorNoBackupExists" xml:space="preserve">
<value>The backup file does not exist.</value>
@@ -1106,7 +1106,7 @@
<value>Backup only when session time exceeds</value>
</data>
<data name="frmSettings_chkSync" xml:space="preserve">
<value>Sync game list data with backup folder</value>
<value>Enable syncing</value>
</data>
<data name="frmSettings_chkTimeTracking" xml:space="preserve">
<value>Enable time tracking</value>
@@ -1117,14 +1117,11 @@
<data name="frmSettings_FormName" xml:space="preserve">
<value>Settings</value>
</data>
<data name="frmSettings_grpBackup" xml:space="preserve">
<value>Backup and Restore</value>
<data name="frmSettings_grpStartup" xml:space="preserve">
<value>Startup</value>
</data>
<data name="frmSettings_grpGeneral" xml:space="preserve">
<value>General</value>
</data>
<data name="frmSettings_grpPaths" xml:space="preserve">
<value>Paths</value>
<data name="frmSettings_grpFolderOptions" xml:space="preserve">
<value>Folders</value>
</data>
<data name="frmSettings_lblBackupFolder" xml:space="preserve">
<value>Backup Folder:</value>
@@ -1361,7 +1358,7 @@
<value>Would you like to apply a filter to your export?</value>
</data>
<data name="mgrMonitorList_ConfirmExistingData" xml:space="preserve">
<value>GBM data already exists in the backup folder.[BR][BR]Do you want to make your local game list the new master game list in this folder? (Recommended)[BR][BR]Choosing No will sync your local game list to the current master game list in this folder.</value>
<value>The sync settings have changed and data already exists in the backup folder.[BR][BR]Do you want to make your current game data on this PC the new master game data in this folder? (Highly Recommended)[BR][BR]Choosing No will sync your game data on this PC to the current master game data in this folder.</value>
</data>
<data name="mgrMonitorList_ExportComplete" xml:space="preserve">
<value>Export Complete. [PARAM] item(s) have been exported.</value>
@@ -1499,7 +1496,7 @@
<value>&amp;Log</value>
</data>
<data name="frmMain_LogAutoSave" xml:space="preserve">
<value>The session log has been cleared due to size and auto-saved to [PARAM].</value>
<value>The session log reached maximum length and has been auto-saved to [PARAM].</value>
</data>
<data name="frmMain_Text" xml:space="preserve">
<value>Text</value>
@@ -1525,8 +1522,8 @@
<data name="frmSettings_cboCompression_Ultra" xml:space="preserve">
<value>Ultra</value>
</data>
<data name="frmSettings_grp7z" xml:space="preserve">
<value>7z Options</value>
<data name="frmSettings_grp7zGeneral" xml:space="preserve">
<value>General</value>
</data>
<data name="frmSettings_lblCompression" xml:space="preserve">
<value>Compression:</value>
@@ -1558,9 +1555,6 @@
<data name="App_ErrorUnixNotAvailable" xml:space="preserve">
<value>This function is currently not available on a Unix based operating system.</value>
</data>
<data name="frmGameManager_ConfirmUnixImportWarning" xml:space="preserve">
<value>You appear to be using a Unix based operating system. The official list currently contains only Microsoft Windows game configurations.[BR][BR]Do you wish to continue?</value>
</data>
<data name="frmMain_PNGFilter" xml:space="preserve">
<value>PNG files (*.png)|*.png</value>
</data>
@@ -1597,4 +1591,106 @@
<data name="frmFileFolderSearch_SearchCancel" xml:space="preserve">
<value>Search Aborted!</value>
</data>
<data name="frmSettings_btnDefaults" xml:space="preserve">
<value>Set &amp;Defaults</value>
</data>
<data name="frmSettings_lblArguments" xml:space="preserve">
<value>Custom Arguments:</value>
</data>
<data name="frmSettings_lblLocation" xml:space="preserve">
<value>Custom Location:</value>
</data>
<data name="frmSettings_7zaFileType" xml:space="preserve">
<value>Executable</value>
</data>
<data name="frmSettings_Browse7za" xml:space="preserve">
<value>Locate 7-Zip Console (7za)</value>
</data>
<data name="frmSettings_WarningArguments" xml:space="preserve">
<value>Invalid or poorly formatted 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the custom arguments and try again.</value>
</data>
<data name="frmMain_Error7zCustom" xml:space="preserve">
<value>The custom 7-Zip utility could not be found at:[BR][BR][PARAM][BR][BR]Please check your settings, the default 7-Zip utility will be used.</value>
</data>
<data name="frmSettings_ConfirmDefaults" xml:space="preserve">
<value>Do you want to revert all settings to their defaults?</value>
</data>
<data name="frmSettings_ErrorLocation" xml:space="preserve">
<value>The custom 7-Zip location [PARAM] does not exist.</value>
</data>
<data name="frmSettings_WarningLocation" xml:space="preserve">
<value>You have chosen a custom utility that does not appear to be 7-Zip. [BR][BR]GBM only supports the use of 7-Zip Console (7za).</value>
</data>
<data name="App_Invalid7zDetected" xml:space="preserve">
<value>7-Zip (7za.exe) is invalid and has been prevented from running.</value>
</data>
<data name="frmGameManager_lblQuickFilter" xml:space="preserve">
<value>Quick Filter:</value>
</data>
<data name="frmGameManager_ErrorNoValidBackup" xml:space="preserve">
<value>A backup cannot be run on the selected game(s) with their current configuration.</value>
</data>
<data name="frmSettings_btnOptionalFields" xml:space="preserve">
<value>Choose &amp;Optional Fields...</value>
</data>
<data name="frmSyncFields_btnCancel" xml:space="preserve">
<value>&amp;Cancel</value>
</data>
<data name="frmSyncFields_btnSave" xml:space="preserve">
<value>&amp;Save</value>
</data>
<data name="frmSyncFields_chkCompany" xml:space="preserve">
<value>Company</value>
</data>
<data name="frmSyncFields_chkGamePath" xml:space="preserve">
<value>Game Path (Not Recommended)</value>
</data>
<data name="frmSyncFields_chkIcon" xml:space="preserve">
<value>Icon (Not Recommended)</value>
</data>
<data name="frmSyncFields_chkMonitorGame" xml:space="preserve">
<value>Monitor this game</value>
</data>
<data name="frmSyncFields_chkTimeStamp" xml:space="preserve">
<value>Time stamp each backup</value>
</data>
<data name="frmSyncFields_chkVersion" xml:space="preserve">
<value>Version</value>
</data>
<data name="frmSyncFields_FormName" xml:space="preserve">
<value>Optional Sync Fields</value>
</data>
<data name="frmSyncFields_grpFields" xml:space="preserve">
<value>Available Fields</value>
</data>
<data name="frmMain_LogAutoClear" xml:space="preserve">
<value>The session log reached maximum length and has been cleared.</value>
</data>
<data name="frmSettings_chkAutoSaveLog" xml:space="preserve">
<value>Autosave log when max length is exceeded</value>
</data>
<data name="frmSettings_grpGameData" xml:space="preserve">
<value>Game Data</value>
</data>
<data name="frmSettings_lstSettings_7z" xml:space="preserve">
<value>7-Zip</value>
</data>
<data name="frmSettings_lstSettings_BackupRestore" xml:space="preserve">
<value>Backup and Restore</value>
</data>
<data name="frmSettings_lstSettings_General" xml:space="preserve">
<value>General</value>
</data>
<data name="frmSettings_grp7zAdvanced" xml:space="preserve">
<value>Advanced</value>
</data>
<data name="frmSettings_grp7zInformation" xml:space="preserve">
<value>Version Information</value>
</data>
<data name="App_NotAvailable" xml:space="preserve">
<value>N/A</value>
</data>
<data name="App_URLImportLinux" xml:space="preserve">
<value>http://mikemaximus.github.io/gbm-web/GBM_Official_Linux.xml</value>
</data>
</root>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+14 -37
View File
@@ -1,49 +1,26 @@
Game Backup Monitor v0.96 Readme
Game Backup Monitor v0.97 Readme
http://mikemaximus.github.io/gbm-web/
gamebackupmonitor@gmail.com
March 24, 2016
June 30, 2016
Disclaimer:
This is beta release software. You may still encounter some bugs.
New in 0.96
New in 0.97
- (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.
For more information regarding Linux support read the FAQ at http://mikemaximus.github.io/gbm-web/linux.html
- (All) Modified backup and restore logic for better usability when doing batch operations and to fix Mono related issues.
- (All) Overhauled the Search screen for better usability and to fix Mono related issues.
- (All) Overhauled the Import screen for better usability. Added game tags, simple filtering, sorting and general fixes.
- (Linux) Fixed some bad code causing the "Official Import" connection to time out when making multiple connections in the same session.
- (Linux) Fixed cross-platform issues with opening backup files and restore locations from the Game Manager.
- (All) Backup files opened from the Game Manager will now open directly in the app they are associated with, like 7-Zip GUI or File Roller.
- (Linux) Fixed cross-platform issues with automatic file/folder searching. It's now enabled on Linux.
- (All) GBM now restores saved games to the currently configured saved game path by default. The stored manfiest location is only used when there's no configuration for the game.
- (Linux) Added Linux support via Mono!
- (All) Replaced System.Data.SQLite with the Mono.Data.Sqlite for cross-platform support.
- (Windows) Updated GBM's version of 7-Zip to 15.14 (2015-12-31)
- (All) Added the ability to set the 7-Zip compression level on the Settings screen.
- (Windows) GBM now deletes all user files to the Windows recycle bin by default.
- (All) Added the ability to clear and save the session log from the Tools menu.
- (All) GBM now auto-saves and clears the session log to %localappdata%\gbm if it reaches it's limit (2 MB).
- (All) The file size will be displayed in the session log after each backup.
The entire version history of GBM releases is available at http://mikemaximus.github.io/gbm-web/versionhistory.html
Important Upgrade Information:
If you've used a pre-release of v0.96, you may experience the following error message after installing this version.
Column 'CompressionLevel' does not belong to table Table.
If you get this error follow these steps:
1. Start GBM and click "Yes" to continue past the error.
2. Press CTRL and ~ (Tilde) to open the Developer Console.
3. Enter the command exactly as follows (or copy & paste it) then click OK.
SQL Local PRAGMA user_version=95
4. You'll receive confirmation that the command was executed. Click OK and immediately close GBM via the File menu.
5. Restart GBM and the error will no longer appear!