Additions for issue #48

This commit is contained in:
Michael J. Seiferling
2016-06-07 17:11:52 -06:00
parent 0ad4fd890d
commit 2beff1b46d
15 changed files with 753 additions and 47 deletions
+44 -2
View File
@@ -19,6 +19,16 @@
Private bTempGame As Boolean = False Private bTempGame As Boolean = False
Private oImportTags As New List(Of Tag) 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 Property ID As String
Set(value As String) Set(value As String)
sGameID = value sGameID = value
@@ -44,7 +54,6 @@
End Get End Get
End Property End Property
Property Name As String Property Name As String
Set(value As String) Set(value As String)
sGameName = value sGameName = value
@@ -219,11 +228,12 @@
End Set End Set
End Property 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) Dim oGame As clsGame = TryCast(obj, clsGame)
If oGame Is Nothing Then If oGame Is Nothing Then
Return False Return False
Else Else
'Core Sync Fields
If ID <> oGame.ID Then If ID <> oGame.ID Then
Return False Return False
End If End If
@@ -257,6 +267,38 @@
If MonitorOnly <> oGame.MonitorOnly Then If MonitorOnly <> oGame.MonitorOnly Then
Return False Return False
End If 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 Return True
End If End If
End Function End Function
+7 -7
View File
@@ -556,7 +556,7 @@ Public Class frmMain
End If End If
mgrMonitorList.DoListUpdate(oProcess.GameInfo) mgrMonitorList.DoListUpdate(oProcess.GameInfo)
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
UpdateTimeSpent(dCurrentHours, oProcess.TimeSpent.TotalHours) UpdateTimeSpent(dCurrentHours, oProcess.TimeSpent.TotalHours)
End Sub End Sub
@@ -671,7 +671,7 @@ Public Class frmMain
Dim frm As New frmTags Dim frm As New frmTags
PauseScan() PauseScan()
frm.ShowDialog() frm.ShowDialog()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan() ResumeScan()
End Sub End Sub
@@ -682,7 +682,7 @@ Public Class frmMain
frm.PendingRestores = bPendingRestores frm.PendingRestores = bPendingRestores
frm.ShowDialog() frm.ShowDialog()
LoadGameSettings() LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan() ResumeScan()
'Handle backup trigger 'Handle backup trigger
@@ -718,7 +718,7 @@ Public Class frmMain
frm.GameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList) frm.GameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
frm.ShowDialog() frm.ShowDialog()
LoadGameSettings() LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan() ResumeScan()
End Sub End Sub
@@ -727,7 +727,7 @@ Public Class frmMain
PauseScan() PauseScan()
frm.ShowDialog() frm.ShowDialog()
mgrPath.CustomVariablesReload() mgrPath.CustomVariablesReload()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
ResumeScan() ResumeScan()
End Sub End Sub
@@ -798,7 +798,7 @@ Public Class frmMain
Private Sub SyncGameSettings() Private Sub SyncGameSettings()
'Sync Monitor List 'Sync Monitor List
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(False) If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
End Sub End Sub
Private Sub LocalDatabaseCheck() Private Sub LocalDatabaseCheck()
@@ -1243,7 +1243,7 @@ Public Class frmMain
oSettings.BackupFolder = sBackupPath oSettings.BackupFolder = sBackupPath
oSettings.SaveSettings() oSettings.SaveSettings()
oSettings.LoadSettings() oSettings.LoadSettings()
If oSettings.Sync Then mgrMonitorList.HandleBackupLocationChange() If oSettings.Sync Then mgrMonitorList.HandleBackupLocationChange(oSettings)
End If End If
Return True Return True
Else Else
+13
View File
@@ -58,6 +58,7 @@ Partial Class frmSettings
Me.lbl7zProduct = New System.Windows.Forms.Label() Me.lbl7zProduct = New System.Windows.Forms.Label()
Me.btnDefaults = New System.Windows.Forms.Button() Me.btnDefaults = New System.Windows.Forms.Button()
Me.ttUtilityStatus = New System.Windows.Forms.ToolTip(Me.components) Me.ttUtilityStatus = New System.Windows.Forms.ToolTip(Me.components)
Me.btnOptionalFields = New System.Windows.Forms.Button()
Me.grpGeneral.SuspendLayout() Me.grpGeneral.SuspendLayout()
Me.grpPaths.SuspendLayout() Me.grpPaths.SuspendLayout()
Me.grpBackup.SuspendLayout() Me.grpBackup.SuspendLayout()
@@ -88,6 +89,7 @@ Partial Class frmSettings
' '
'grpGeneral 'grpGeneral
' '
Me.grpGeneral.Controls.Add(Me.btnOptionalFields)
Me.grpGeneral.Controls.Add(Me.chkTimeTracking) Me.grpGeneral.Controls.Add(Me.chkTimeTracking)
Me.grpGeneral.Controls.Add(Me.chkSync) Me.grpGeneral.Controls.Add(Me.chkSync)
Me.grpGeneral.Controls.Add(Me.chkStartWindows) Me.grpGeneral.Controls.Add(Me.chkStartWindows)
@@ -406,6 +408,16 @@ Partial Class frmSettings
Me.btnDefaults.Text = "Set &Defaults" Me.btnDefaults.Text = "Set &Defaults"
Me.btnDefaults.UseVisualStyleBackColor = True Me.btnDefaults.UseVisualStyleBackColor = True
' '
'btnOptionalFields
'
Me.btnOptionalFields.DialogResult = System.Windows.Forms.DialogResult.OK
Me.btnOptionalFields.Location = New System.Drawing.Point(110, 130)
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
'
'frmSettings 'frmSettings
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -474,4 +486,5 @@ Partial Class frmSettings
Friend WithEvents btnDefaults As Button Friend WithEvents btnDefaults As Button
Friend WithEvents pbUtilityStatus As PictureBox Friend WithEvents pbUtilityStatus As PictureBox
Friend WithEvents ttUtilityStatus As ToolTip Friend WithEvents ttUtilityStatus As ToolTip
Friend WithEvents btnOptionalFields As Button
End Class End Class
+40 -13
View File
@@ -3,8 +3,9 @@ Imports System.IO
Public Class frmSettings Public Class frmSettings
Dim bShutdown As Boolean = False Dim bShutdown As Boolean = False
Dim bBackupLocationChanged As Boolean = False Dim bSyncSettingsChanged As Boolean = False
Dim bCheckSumDisabled As Boolean = False Dim bCheckSumDisabled As Boolean = False
Dim eCurrentSyncFields As clsGame.eOptionalSyncFields
Private oSettings As mgrSettings Private oSettings As mgrSettings
Property Settings As mgrSettings Property Settings As mgrSettings
@@ -16,15 +17,6 @@ Public Class frmSettings
End Set End Set
End Property 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) Private Sub HandleRegistryUpdate(ByVal bToggle As Boolean)
Dim oKey As Microsoft.Win32.RegistryKey Dim oKey As Microsoft.Win32.RegistryKey
Dim sAppName As String = Application.ProductName Dim sAppName As String = Application.ProductName
@@ -76,13 +68,13 @@ Public Class frmSettings
'Turning syncing from off to on is the same as changing the backup folder 'Turning syncing from off to on is the same as changing the backup folder
If chkSync.Checked = True And oSettings.Sync = False Then If chkSync.Checked = True And oSettings.Sync = False Then
bBackupLocationChanged = True bSyncSettingsChanged = True
End If End If
oSettings.Sync = chkSync.Checked oSettings.Sync = chkSync.Checked
If Directory.Exists(txtBackupFolder.Text) Then If Directory.Exists(txtBackupFolder.Text) Then
If oSettings.BackupFolder <> txtBackupFolder.Text Then If oSettings.BackupFolder <> txtBackupFolder.Text Then
If chkSync.Checked Then bBackupLocationChanged = True If chkSync.Checked Then bSyncSettingsChanged = True
End If End If
oSettings.BackupFolder = txtBackupFolder.Text oSettings.BackupFolder = txtBackupFolder.Text
Else Else
@@ -101,13 +93,18 @@ Public Class frmSettings
End If End If
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 Return True
End Function End Function
Private Function SaveSettings() As Boolean Private Function SaveSettings() As Boolean
If ValidateSettings() Then If ValidateSettings() Then
oSettings.SaveSettings() oSettings.SaveSettings()
If BackupLocationChanged Then mgrMonitorList.HandleBackupLocationChange() If bSyncSettingsChanged Then mgrMonitorList.HandleBackupLocationChange(Settings)
If bCheckSumDisabled Then mgrManifest.DoManifestHashWipe() If bCheckSumDisabled Then mgrManifest.DoManifestHashWipe()
Return True Return True
Else Else
@@ -184,6 +181,7 @@ Public Class frmSettings
cboCompression.SelectedValue = oSettings.CompressionLevel cboCompression.SelectedValue = oSettings.CompressionLevel
txt7zArguments.Text = oSettings.Custom7zArguments txt7zArguments.Text = oSettings.Custom7zArguments
txt7zLocation.Text = oSettings.Custom7zLocation txt7zLocation.Text = oSettings.Custom7zLocation
eCurrentSyncFields = oSettings.SyncFields
'Unix Handler 'Unix Handler
If mgrCommon.IsUnix Then If mgrCommon.IsUnix Then
@@ -193,6 +191,9 @@ Public Class frmSettings
'Retrieve 7z Info 'Retrieve 7z Info
Get7zInfo(oSettings.Custom7zLocation) Get7zInfo(oSettings.Custom7zLocation)
'Toggle Sync Button
ToggleSyncButton()
End Sub End Sub
Private Sub LoadCombos() Private Sub LoadCombos()
@@ -212,6 +213,23 @@ Public Class frmSettings
cboCompression.DataSource = oComboItems cboCompression.DataSource = oComboItems
End Sub 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 SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmSettings_FormName Me.Text = frmSettings_FormName
@@ -242,6 +260,7 @@ Public Class frmSettings
btnDefaults.Text = frmSettings_btnDefaults btnDefaults.Text = frmSettings_btnDefaults
lblArguments.Text = frmSettings_lblArguments lblArguments.Text = frmSettings_lblArguments
lblLocation.Text = frmSettings_lblLocation lblLocation.Text = frmSettings_lblLocation
btnOptionalFields.Text = frmSettings_btnOptionalFields
'Unix Handler 'Unix Handler
If mgrCommon.IsUnix Then If mgrCommon.IsUnix Then
@@ -300,4 +319,12 @@ Public Class frmSettings
Private Sub btnDefaults_Click(sender As Object, e As EventArgs) Handles btnDefaults.Click Private Sub btnDefaults_Click(sender As Object, e As EventArgs) Handles btnDefaults.Click
SetDefaults() SetDefaults()
End Sub 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
End Class End Class
+4 -4
View File
@@ -66,7 +66,7 @@ Public Class frmStartUpWizard
If oDatabase.CheckDB() Then If oDatabase.CheckDB() Then
'Make sure database is the latest version 'Make sure database is the latest version
oDatabase.DatabaseUpgrade() oDatabase.DatabaseUpgrade()
mgrMonitorList.SyncMonitorLists(False) mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
mgrCommon.ShowMessage(frmStartUpWizard_ExistingData, MsgBoxStyle.Information) mgrCommon.ShowMessage(frmStartUpWizard_ExistingData, MsgBoxStyle.Information)
End If End If
End Sub End Sub
@@ -107,7 +107,7 @@ Public Class frmStartUpWizard
If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If mgrMonitorList.DoImport(App_URLImport) Then If mgrMonitorList.DoImport(App_URLImport) Then
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList) 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 If End If
End Sub End Sub
@@ -122,7 +122,7 @@ Public Class frmStartUpWizard
frm.GameData = oGameData frm.GameData = oGameData
frm.ShowDialog() frm.ShowDialog()
LoadGameSettings() LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
End Sub End Sub
Private Sub OpenMonitorList() Private Sub OpenMonitorList()
@@ -131,7 +131,7 @@ Public Class frmStartUpWizard
frm.DisableExternalFunctions = True frm.DisableExternalFunctions = True
frm.ShowDialog() frm.ShowDialog()
LoadGameSettings() LoadGameSettings()
If oSettings.Sync Then mgrMonitorList.SyncMonitorLists() If oSettings.Sync Then mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
End Sub End Sub
Private Function ValidateBackupPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean 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>
+119
View File
@@ -0,0 +1,119 @@
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()
Dim sResources As String = String.Empty
Dim sCode As String = String.Empty
mgrCommon.GetAllStrings(Me, sResources, sCode, "frmSyncFields")
Clipboard.SetText(sResources & vbCrLf & vbCrLf & sCode)
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
+9
View File
@@ -195,6 +195,12 @@
<DependentUpon>frmMain.vb</DependentUpon> <DependentUpon>frmMain.vb</DependentUpon>
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </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"> <Compile Include="Forms\frmTags.Designer.vb">
<DependentUpon>frmTags.vb</DependentUpon> <DependentUpon>frmTags.vb</DependentUpon>
</Compile> </Compile>
@@ -273,6 +279,9 @@
<DependentUpon>frmMain.vb</DependentUpon> <DependentUpon>frmMain.vb</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\frmSyncFields.resx">
<DependentUpon>frmSyncFields.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\frmTags.resx"> <EmbeddedResource Include="Forms\frmTags.resx">
<DependentUpon>frmTags.vb</DependentUpon> <DependentUpon>frmTags.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
+8
View File
@@ -157,6 +157,14 @@ Public Class mgrCommon
oProcess.Start() oProcess.Start()
End Sub 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 'Delete file based on OS type
Public Shared Sub DeleteFile(ByVal sPath As String, Optional ByVal bRecycle As Boolean = True) Public Shared Sub DeleteFile(ByVal sPath As String, Optional ByVal bRecycle As Boolean = True)
If File.Exists(sPath) Then If File.Exists(sPath) Then
+75 -15
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 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 oDatabase As New mgrSQLite(mgrSQLite.Database.Remote)
Dim iGameCount As Integer 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 the remote database actually contains a list, then ask what to do
If iGameCount > 0 Then If iGameCount > 0 Then
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
mgrMonitorList.SyncMonitorLists() mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
Else Else
mgrMonitorList.SyncMonitorLists(False) mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False)
End If End If
Else Else
mgrMonitorList.SyncMonitorLists() mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
End If End If
Else Else
mgrMonitorList.SyncMonitorLists() mgrMonitorList.SyncMonitorLists(oSettings.SyncFields)
End If End If
End Sub End Sub
@@ -61,22 +61,63 @@ Public Class mgrMonitorList
End If End If
End Sub 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 oDatabase As New mgrSQLite(iSelectDB)
Dim sSQL As String Dim sSQL As String
Dim hshParams As Hashtable Dim hshParams As Hashtable
Dim oParamList As New List(Of 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 = "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 &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
sSQL &= "@TimeStamp, @ExcludeList, (SELECT ProcessPath FROM monitorlist WHERE MonitorID=@ID), " sSQL &= sTimeStamp & ", @ExcludeList, " & sGamePath & ", "
sSQL &= "(SELECT Icon FROM monitorlist WHERE MonitorID=@ID), @Hours, (SELECT Version FROM monitorlist WHERE MonitorID=@ID), " sSQL &= sIcon & ", @Hours, " & sVersion & ", "
sSQL &= "(SELECT Company FROM monitorlist WHERE MonitorID=@ID), COALESCE((SELECT Enabled FROM monitorlist WHERE MonitorID=@ID),1), @MonitorOnly);" sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly);"
For Each oGame As clsGame In hshGames.Values For Each oGame As clsGame In hshGames.Values
hshParams = New Hashtable hshParams = New Hashtable
'Parameters 'Core Parameters
hshParams.Add("ID", oGame.ID) hshParams.Add("ID", oGame.ID)
hshParams.Add("Name", oGame.Name) hshParams.Add("Name", oGame.Name)
hshParams.Add("Process", oGame.TrueProcess) hshParams.Add("Process", oGame.TrueProcess)
@@ -84,11 +125,30 @@ Public Class mgrMonitorList
hshParams.Add("AbsolutePath", oGame.AbsolutePath) hshParams.Add("AbsolutePath", oGame.AbsolutePath)
hshParams.Add("FolderSave", oGame.FolderSave) hshParams.Add("FolderSave", oGame.FolderSave)
hshParams.Add("FileType", oGame.FileType) hshParams.Add("FileType", oGame.FileType)
hshParams.Add("TimeStamp", oGame.AppendTimeStamp)
hshParams.Add("ExcludeList", oGame.ExcludeList) hshParams.Add("ExcludeList", oGame.ExcludeList)
hshParams.Add("Hours", oGame.Hours) hshParams.Add("Hours", oGame.Hours)
hshParams.Add("MonitorOnly", oGame.MonitorOnly) 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) oParamList.Add(hshParams)
Next Next
@@ -118,7 +178,7 @@ Public Class mgrMonitorList
oDatabase.RunMassParamQuery(sSQL, oParamList) oDatabase.RunMassParamQuery(sSQL, oParamList)
End Sub 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 hshCompareFrom As Hashtable
Dim hshCompareTo As Hashtable Dim hshCompareTo As Hashtable
Dim hshSyncItems As Hashtable Dim hshSyncItems As Hashtable
@@ -149,16 +209,16 @@ Public Class mgrMonitorList
For Each oFromItem In hshCompareFrom.Values For Each oFromItem In hshCompareFrom.Values
If hshCompareTo.Contains(oFromItem.CompoundKey) Then If hshCompareTo.Contains(oFromItem.CompoundKey) Then
oToItem = DirectCast(hshCompareTo(oFromItem.CompoundKey), clsGame) oToItem = DirectCast(hshCompareTo(oFromItem.CompoundKey), clsGame)
If oFromItem.SyncEquals(oToItem) Then If oFromItem.SyncEquals(oToItem, eSyncFields) Then
hshSyncItems.Remove(oFromItem.CompoundKey) hshSyncItems.Remove(oFromItem.CompoundKey)
End If End If
End If End If
Next Next
If bToRemote Then If bToRemote Then
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Remote) DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Remote, eSyncFields)
Else Else
DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Local) DoListAddUpdateSync(hshSyncItems, mgrSQLite.Database.Local, eSyncFields)
End If End If
'Sync Tags 'Sync Tags
+3 -2
View File
@@ -74,7 +74,7 @@ Public Class mgrSQLite
"DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch 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, " & "BackupFolder TEXT NOT NULL, Sync BOOLEAN NOT NULL, CheckSum BOOLEAN NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " &
"SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " &
"Custom7zLocation TEXT);" "Custom7zLocation TEXT, SyncFields INTEGER NOT NULL);"
'Add Tables (Monitor List) 'Add Tables (Monitor List)
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
@@ -537,9 +537,10 @@ Public Class mgrSQLite
'Backup DB before starting 'Backup DB before starting
BackupDB("v96") BackupDB("v96")
'Add new setting 'Add new settings
sSQL = "ALTER TABLE settings ADD COLUMN Custom7zArguments TEXT;" sSQL = "ALTER TABLE settings ADD COLUMN Custom7zArguments TEXT;"
sSQL &= "ALTER TABLE settings ADD COLUMN Custom7zLocation TEXT;" sSQL &= "ALTER TABLE settings ADD COLUMN Custom7zLocation TEXT;"
sSQL &= "ALTER TABLE settings ADD COLUMN SyncFields INTEGER NOT NULL DEFAULT 32;"
sSQL &= "PRAGMA user_version=97" sSQL &= "PRAGMA user_version=97"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
+14 -2
View File
@@ -18,6 +18,7 @@ Public Class mgrSettings
Private s7zArguments As String = String.Empty Private s7zArguments As String = String.Empty
Private s7zLocation As String = String.Empty Private s7zLocation As String = String.Empty
Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).TrimEnd(New Char() {"\", "/"}) Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).TrimEnd(New Char() {"\", "/"})
Private eSyncFields As clsGame.eOptionalSyncFields = clsGame.eOptionalSyncFields.None Or clsGame.eOptionalSyncFields.TimeStamp
Property StartWithWindows As Boolean Property StartWithWindows As Boolean
Get Get
@@ -220,6 +221,15 @@ Public Class mgrSettings
End Set End Set
End Property End Property
Property SyncFields As clsGame.eOptionalSyncFields
Get
Return eSyncFields
End Get
Set(value As clsGame.eOptionalSyncFields)
eSyncFields = value
End Set
End Property
Private Sub SaveFromClass() Private Sub SaveFromClass()
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local) Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String Dim sSQL As String
@@ -230,7 +240,8 @@ Public Class mgrSettings
sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, " sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, "
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, " sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, "
sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation)" sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, "
sSQL &= "@SyncFields)"
hshParams.Add("MonitorOnStartup", MonitorOnStartup) hshParams.Add("MonitorOnStartup", MonitorOnStartup)
hshParams.Add("StartToTray", StartToTray) hshParams.Add("StartToTray", StartToTray)
@@ -249,7 +260,7 @@ Public Class mgrSettings
hshParams.Add("CompressionLevel", CompressionLevel) hshParams.Add("CompressionLevel", CompressionLevel)
hshParams.Add("Custom7zArguments", Custom7zArguments) hshParams.Add("Custom7zArguments", Custom7zArguments)
hshParams.Add("Custom7zLocation", Custom7zLocation) hshParams.Add("Custom7zLocation", Custom7zLocation)
hshParams.Add("SyncFields", SyncFields)
oDatabase.RunParamQuery(sSQL, hshParams) oDatabase.RunParamQuery(sSQL, hshParams)
End Sub End Sub
@@ -281,6 +292,7 @@ Public Class mgrSettings
CompressionLevel = CInt(dr("CompressionLevel")) CompressionLevel = CInt(dr("CompressionLevel"))
If Not IsDBNull(dr("Custom7zArguments")) Then Custom7zArguments = CStr(dr("Custom7zArguments")) If Not IsDBNull(dr("Custom7zArguments")) Then Custom7zArguments = CStr(dr("Custom7zArguments"))
If Not IsDBNull(dr("Custom7zLocation")) Then Custom7zLocation = CStr(dr("Custom7zLocation")) If Not IsDBNull(dr("Custom7zLocation")) Then Custom7zLocation = CStr(dr("Custom7zLocation"))
SyncFields = CInt(dr("SyncFields"))
Next Next
oDatabase.Disconnect() oDatabase.Disconnect()
+100 -1
View File
@@ -3147,6 +3147,15 @@ Namespace My.Resources
End Get End Get
End Property 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> '''<summary>
''' Looks up a localized string similar to &amp;Save. ''' Looks up a localized string similar to &amp;Save.
'''</summary> '''</summary>
@@ -3759,6 +3768,96 @@ Namespace My.Resources
End Get End Get
End Property 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> '''<summary>
''' Looks up a localized string similar to +. ''' Looks up a localized string similar to +.
'''</summary> '''</summary>
@@ -4322,7 +4421,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<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> '''</summary>
Friend ReadOnly Property mgrMonitorList_ConfirmExistingData() As String Friend ReadOnly Property mgrMonitorList_ConfirmExistingData() As String
Get Get
+34 -1
View File
@@ -1361,7 +1361,7 @@
<value>Would you like to apply a filter to your export?</value> <value>Would you like to apply a filter to your export?</value>
</data> </data>
<data name="mgrMonitorList_ConfirmExistingData" xml:space="preserve"> <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>
<data name="mgrMonitorList_ExportComplete" xml:space="preserve"> <data name="mgrMonitorList_ExportComplete" xml:space="preserve">
<value>Export Complete. [PARAM] item(s) have been exported.</value> <value>Export Complete. [PARAM] item(s) have been exported.</value>
@@ -1660,4 +1660,37 @@
<data name="frmGameManager_ErrorNoValidBackup" xml:space="preserve"> <data name="frmGameManager_ErrorNoValidBackup" xml:space="preserve">
<value>A backup cannot be run on the selected game(s) with their current configuration.</value> <value>A backup cannot be run on the selected game(s) with their current configuration.</value>
</data> </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>
</root> </root>