Files
GBM/GBM/Managers/mgrSettings.vb
Michael J. Seiferling 3acb790822 Added new 7z functionality
2016-05-23 09:20:18 -06:00

347 lines
11 KiB
VB.net

Imports System.IO
Public Class mgrSettings
Private bStartWithWindows As Boolean = False
Private bMonitoronStartup As Boolean = True
Private bStartToTray As Boolean = False
Private bShowDetectionToolTips As Boolean = True
Private bDisableConfirmation As Boolean = False
Private bCreateSubFolder As Boolean = False
Private bShowOverwriteWarning As Boolean = True
Private bRestoreOnLaunch As Boolean = False
Private bSync As Boolean = True
Private bSyncGameConfigs As Boolean = True
Private bSyncGameInfo As Boolean = False
Private bSyncHours As Boolean = True
Private bSyncTags As Boolean = True
Private bSyncAll As Boolean = False
Private bCheckSum As Boolean = True
Private bTimeTracking As Boolean = True
Private bSupressBackup As Boolean = False
Private iSupressBackupThreshold As Integer = 10
Private iCompressionLevel As Integer = 5
Private s7zArguments As String = String.Empty
Private s7zLocation As String = String.Empty
Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).TrimEnd(New Char() {"\", "/"})
Property StartWithWindows As Boolean
Get
Return bStartWithWindows
End Get
Set(value As Boolean)
bStartWithWindows = value
End Set
End Property
Property MonitorOnStartup As Boolean
Get
Return bMonitoronStartup
End Get
Set(value As Boolean)
bMonitoronStartup = value
End Set
End Property
Property StartToTray As Boolean
Get
Return bStartToTray
End Get
Set(value As Boolean)
bStartToTray = value
End Set
End Property
Property ShowDetectionToolTips As Boolean
Get
Return bShowDetectionToolTips
End Get
Set(value As Boolean)
bShowDetectionToolTips = value
End Set
End Property
Property DisableConfirmation As Boolean
Get
Return bDisableConfirmation
End Get
Set(value As Boolean)
bDisableConfirmation = value
End Set
End Property
Property CreateSubFolder As Boolean
Get
Return bCreateSubFolder
End Get
Set(value As Boolean)
bCreateSubFolder = value
End Set
End Property
Property ShowOverwriteWarning As Boolean
Get
Return bShowOverwriteWarning
End Get
Set(value As Boolean)
bShowOverwriteWarning = value
End Set
End Property
Property RestoreOnLaunch As Boolean
Get
Return bRestoreOnLaunch
End Get
Set(value As Boolean)
bRestoreOnLaunch = value
End Set
End Property
Property Sync As Boolean
Get
Return bSync
End Get
Set(value As Boolean)
bSync = value
End Set
End Property
Property SyncGameConfigs As Boolean
Get
Return bSyncGameConfigs
End Get
Set(value As Boolean)
bSyncGameConfigs = value
End Set
End Property
Property SyncGameInfo As Boolean
Get
Return bSyncGameInfo
End Get
Set(value As Boolean)
bSyncGameInfo = value
End Set
End Property
Property SyncHours As Boolean
Get
Return bSyncHours
End Get
Set(value As Boolean)
bSyncHours = value
End Set
End Property
Property SyncTags As Boolean
Get
Return bSyncTags
End Get
Set(value As Boolean)
bSyncTags = value
End Set
End Property
Property SyncAll As Boolean
Get
Return bSyncAll
End Get
Set(value As Boolean)
bSyncAll = value
End Set
End Property
Property CheckSum As Boolean
Get
Return bCheckSum
End Get
Set(value As Boolean)
bCheckSum = value
End Set
End Property
Property TimeTracking As Boolean
Get
Return bTimeTracking
End Get
Set(value As Boolean)
bTimeTracking = value
End Set
End Property
Property SupressBackup As Boolean
Get
Return bSupressBackup
End Get
Set(value As Boolean)
bSupressBackup = value
End Set
End Property
Property SupressBackupThreshold As Integer
Get
Return iSupressBackupThreshold
End Get
Set(value As Integer)
iSupressBackupThreshold = value
End Set
End Property
Property CompressionLevel As Integer
Get
Return iCompressionLevel
End Get
Set(value As Integer)
iCompressionLevel = value
End Set
End Property
Property Custom7zArguments As String
Get
Return s7zArguments
End Get
Set(value As String)
s7zArguments = value
End Set
End Property
ReadOnly Property Prepared7zArguments As String
Get
'Prepare custom 7z arguments
Dim sPreparedArguments As String
If s7zArguments <> String.Empty Then
'Surround the arguments with spaces to be inserted into command
sPreparedArguments = " " & s7zArguments & " "
Else
'The command always needs at least one space inserted
sPreparedArguments = " "
End If
Return sPreparedArguments
End Get
End Property
Property Custom7zLocation As String
Get
Return s7zLocation
End Get
Set(value As String)
s7zLocation = value
End Set
End Property
ReadOnly Property 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
End Get
Set(value As String)
sBackupFolder = value.TrimEnd(New Char() {"\", "/"})
End Set
End Property
Private Sub SaveFromClass()
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As New Hashtable
sSQL = "DELETE FROM settings WHERE SettingsID = 1"
oDatabase.RunParamQuery(sSQL, New Hashtable)
sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, "
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @Sync, @CheckSum, @StartWithWindows, "
sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, "
sSQL &= "@SyncGameConfigs, @SyncGameInfo, @SyncHours, @SyncTags, @SyncAll)"
hshParams.Add("MonitorOnStartup", MonitorOnStartup)
hshParams.Add("StartToTray", StartToTray)
hshParams.Add("ShowDetectionToolTips", ShowDetectionToolTips)
hshParams.Add("DisableConfirmation", DisableConfirmation)
hshParams.Add("CreateSubFolder", CreateSubFolder)
hshParams.Add("ShowOverwriteWarning", ShowOverwriteWarning)
hshParams.Add("RestoreOnLaunch", RestoreOnLaunch)
hshParams.Add("BackupFolder", BackupFolder)
hshParams.Add("Sync", Sync)
hshParams.Add("CheckSum", CheckSum)
hshParams.Add("StartWithWindows", StartWithWindows)
hshParams.Add("TimeTracking", TimeTracking)
hshParams.Add("SupressBackup", SupressBackup)
hshParams.Add("SupressBackupThreshold", SupressBackupThreshold)
hshParams.Add("CompressionLevel", CompressionLevel)
hshParams.Add("Custom7zArguments", Custom7zArguments)
hshParams.Add("Custom7zLocation", Custom7zLocation)
hshParams.Add("SyncGameConfigs", SyncGameConfigs)
hshParams.Add("SyncGameInfo", SyncGameInfo)
hshParams.Add("SyncHours", SyncHours)
hshParams.Add("SyncTags", SyncTags)
hshParams.Add("SyncAll", SyncAll)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Private Sub MapToClass()
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim oData As DataSet
Dim sSQL As String
oDatabase.Connect()
sSQL = "SELECT * FROM settings WHERE SettingsID = 1"
oData = oDatabase.ReadParamData(sSQL, New Hashtable)
For Each dr As DataRow In oData.Tables(0).Rows
MonitorOnStartup = CBool(dr("MonitorOnStartup"))
StartToTray = CBool(dr("StartToTray"))
ShowDetectionToolTips = CBool(dr("ShowDetectionToolTips"))
DisableConfirmation = CBool(dr("DisableConfirmation"))
CreateSubFolder = CBool(dr("CreateSubFolder"))
ShowOverwriteWarning = CBool(dr("ShowOverwriteWarning"))
RestoreOnLaunch = CBool(dr("RestoreOnLaunch"))
BackupFolder = CStr(dr("BackupFolder"))
Sync = CBool(dr("Sync"))
CheckSum = CBool(dr("CheckSum"))
StartWithWindows = CBool(dr("StartWithWindows"))
TimeTracking = CBool(dr("TimeTracking"))
SupressBackup = CBool(dr("SupressBackup"))
SupressBackupThreshold = CInt(dr("SupressBackupThreshold"))
CompressionLevel = CInt(dr("CompressionLevel"))
If Not IsDBNull(dr("Custom7zArguments")) Then Custom7zArguments = CStr(dr("Custom7zArguments"))
If Not IsDBNull(dr("Custom7zLocation")) Then Custom7zLocation = CStr(dr("Custom7zLocation"))
SyncGameConfigs = CBool(dr("SyncGameConfigs"))
SyncGameInfo = CBool(dr("SyncGameInfo"))
SyncHours = CBool(dr("SyncHours"))
SyncTags = CBool(dr("SyncTags"))
SyncAll = CBool(dr("SyncAll"))
Next
oDatabase.Disconnect()
End Sub
Public Sub LoadSettings()
MapToClass()
'Set Remote Manifest Location
mgrPath.RemoteDatabaseLocation = Me.BackupFolder
End Sub
Public Sub SaveSettings()
SaveFromClass()
'Set Remote Manifest Location
mgrPath.RemoteDatabaseLocation = Me.BackupFolder
End Sub
End Class