From 8e26e97fd42a50ee4b48e20d1ae386d20dcc12ff Mon Sep 17 00:00:00 2001 From: "Michael J. Seiferling" Date: Mon, 12 Mar 2018 13:03:32 -0600 Subject: [PATCH] Added file name option to settings --- GBM/Classes/clsGame.vb | 6 ++++ GBM/Forms/frmSettings.Designer.vb | 43 ++++++++++++++++++---------- GBM/Forms/frmSettings.vb | 3 ++ GBM/Managers/mgrBackup.vb | 22 ++++++++++---- GBM/Managers/mgrSQLite.vb | 8 +++--- GBM/Managers/mgrSettings.vb | 14 ++++++++- GBM/My Project/Resources.Designer.vb | 11 ++++++- GBM/My Project/Resources.resx | 5 +++- 8 files changed, 85 insertions(+), 27 deletions(-) diff --git a/GBM/Classes/clsGame.vb b/GBM/Classes/clsGame.vb index ddaf18a..e62e89a 100644 --- a/GBM/Classes/clsGame.vb +++ b/GBM/Classes/clsGame.vb @@ -62,6 +62,12 @@ Public Class clsGame End Get End Property + ReadOnly Property FileSafeName As String + Get + Return mgrPath.ValidateForFileSystem(sGameName) + End Get + End Property + Property Name As String Set(value As String) sGameName = value diff --git a/GBM/Forms/frmSettings.Designer.vb b/GBM/Forms/frmSettings.Designer.vb index 336c32e..73ee18e 100644 --- a/GBM/Forms/frmSettings.Designer.vb +++ b/GBM/Forms/frmSettings.Designer.vb @@ -24,6 +24,7 @@ Partial Class frmSettings Private Sub InitializeComponent() Me.chkMonitorOnStartup = New System.Windows.Forms.CheckBox() Me.grpStartup = New System.Windows.Forms.GroupBox() + Me.chkBackupOnLaunch = New System.Windows.Forms.CheckBox() Me.chkStartWindows = New System.Windows.Forms.CheckBox() Me.chkStartToTray = New System.Windows.Forms.CheckBox() Me.chkAutoSaveLog = New System.Windows.Forms.CheckBox() @@ -66,7 +67,7 @@ Partial Class frmSettings Me.chkSessionTracking = New System.Windows.Forms.CheckBox() Me.lstSettings = New System.Windows.Forms.ListBox() Me.btnResetMessages = New System.Windows.Forms.Button() - Me.chkBackupOnLaunch = New System.Windows.Forms.CheckBox() + Me.chkUseNames = New System.Windows.Forms.CheckBox() Me.grpStartup.SuspendLayout() Me.grpFolderOptions.SuspendLayout() Me.grp7zGeneral.SuspendLayout() @@ -103,6 +104,16 @@ Partial Class frmSettings Me.grpStartup.TabStop = False Me.grpStartup.Text = "Startup" ' + 'chkBackupOnLaunch + ' + Me.chkBackupOnLaunch.AutoSize = True + Me.chkBackupOnLaunch.Location = New System.Drawing.Point(6, 88) + Me.chkBackupOnLaunch.Name = "chkBackupOnLaunch" + Me.chkBackupOnLaunch.Size = New System.Drawing.Size(185, 17) + Me.chkBackupOnLaunch.TabIndex = 3 + Me.chkBackupOnLaunch.Text = "Backup GBM data files on launch" + Me.chkBackupOnLaunch.UseVisualStyleBackColor = True + ' 'chkStartWindows ' Me.chkStartWindows.AutoSize = True @@ -164,16 +175,17 @@ Partial Class frmSettings ' 'grpFolderOptions ' + Me.grpFolderOptions.Controls.Add(Me.chkUseNames) 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.Size = New System.Drawing.Size(354, 90) Me.grpFolderOptions.TabIndex = 0 Me.grpFolderOptions.TabStop = False - Me.grpFolderOptions.Text = "Folders" + Me.grpFolderOptions.Text = "Files and Folders" ' 'btnBackupFolder ' @@ -341,7 +353,7 @@ Partial Class frmSettings 'chkBackupConfirm ' Me.chkBackupConfirm.AutoSize = True - Me.chkBackupConfirm.Location = New System.Drawing.Point(14, 180) + Me.chkBackupConfirm.Location = New System.Drawing.Point(14, 199) Me.chkBackupConfirm.Name = "chkBackupConfirm" Me.chkBackupConfirm.Size = New System.Drawing.Size(160, 17) Me.chkBackupConfirm.TabIndex = 2 @@ -351,7 +363,7 @@ Partial Class frmSettings 'chkOverwriteWarning ' Me.chkOverwriteWarning.AutoSize = True - Me.chkOverwriteWarning.Location = New System.Drawing.Point(14, 203) + Me.chkOverwriteWarning.Location = New System.Drawing.Point(14, 222) Me.chkOverwriteWarning.Name = "chkOverwriteWarning" Me.chkOverwriteWarning.Size = New System.Drawing.Size(139, 17) Me.chkOverwriteWarning.TabIndex = 3 @@ -363,7 +375,7 @@ Partial Class frmSettings Me.grpBackupHandling.Controls.Add(Me.chkAutoRestore) Me.grpBackupHandling.Controls.Add(Me.chkRestoreNotify) Me.grpBackupHandling.Controls.Add(Me.chkAutoMark) - Me.grpBackupHandling.Location = New System.Drawing.Point(6, 88) + Me.grpBackupHandling.Location = New System.Drawing.Point(6, 107) Me.grpBackupHandling.Margin = New System.Windows.Forms.Padding(2) Me.grpBackupHandling.Name = "grpBackupHandling" Me.grpBackupHandling.Padding = New System.Windows.Forms.Padding(2) @@ -519,24 +531,24 @@ Partial Class frmSettings Me.btnResetMessages.Text = "&Reset Warnings" Me.btnResetMessages.UseVisualStyleBackColor = True ' - 'chkBackupOnLaunch + 'chkUseNames ' - Me.chkBackupOnLaunch.AutoSize = True - Me.chkBackupOnLaunch.Location = New System.Drawing.Point(6, 88) - Me.chkBackupOnLaunch.Name = "chkBackupOnLaunch" - Me.chkBackupOnLaunch.Size = New System.Drawing.Size(185, 17) - Me.chkBackupOnLaunch.TabIndex = 3 - Me.chkBackupOnLaunch.Text = "Backup GBM data files on launch" - Me.chkBackupOnLaunch.UseVisualStyleBackColor = True + Me.chkUseNames.AutoSize = True + Me.chkUseNames.Location = New System.Drawing.Point(9, 65) + Me.chkUseNames.Name = "chkUseNames" + Me.chkUseNames.Size = New System.Drawing.Size(254, 17) + Me.chkUseNames.TabIndex = 3 + Me.chkUseNames.Text = "Use Name instead of ID for folder and file names" + Me.chkUseNames.UseVisualStyleBackColor = True ' 'frmSettings ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(554, 361) + Me.Controls.Add(Me.pnlBackup) Me.Controls.Add(Me.btnResetMessages) Me.Controls.Add(Me.pnlGeneral) - Me.Controls.Add(Me.pnlBackup) Me.Controls.Add(Me.pnl7z) Me.Controls.Add(Me.lstSettings) Me.Controls.Add(Me.btnDefaults) @@ -617,4 +629,5 @@ Partial Class frmSettings Friend WithEvents chkSupressBackup As CheckBox Friend WithEvents btnResetMessages As Button Friend WithEvents chkBackupOnLaunch As CheckBox + Friend WithEvents chkUseNames As CheckBox End Class diff --git a/GBM/Forms/frmSettings.vb b/GBM/Forms/frmSettings.vb index 7f01dae..e6f4094 100644 --- a/GBM/Forms/frmSettings.vb +++ b/GBM/Forms/frmSettings.vb @@ -52,6 +52,7 @@ Public Class frmSettings oSettings.AutoSaveLog = chkAutoSaveLog.Checked oSettings.DisableConfirmation = chkBackupConfirm.Checked oSettings.CreateSubFolder = chkCreateFolder.Checked + oSettings.UseNames = chkUseNames.Checked oSettings.ShowOverwriteWarning = chkOverwriteWarning.Checked oSettings.RestoreOnLaunch = chkRestoreNotify.Checked oSettings.AutoRestore = chkAutoRestore.Checked @@ -178,6 +179,7 @@ Public Class frmSettings chkAutoSaveLog.Checked = oSettings.AutoSaveLog chkBackupConfirm.Checked = oSettings.DisableConfirmation chkCreateFolder.Checked = oSettings.CreateSubFolder + chkUseNames.Checked = oSettings.UseNames chkOverwriteWarning.Checked = oSettings.ShowOverwriteWarning chkRestoreNotify.Checked = oSettings.RestoreOnLaunch chkAutoRestore.Checked = oSettings.AutoRestore @@ -278,6 +280,7 @@ Public Class frmSettings chkAutoMark.Text = frmSettings_chkAutoMark chkOverwriteWarning.Text = frmSettings_chkOverwriteWarning chkCreateFolder.Text = frmSettings_chkCreateFolder + chkUseNames.Text = frmSettings_chkUseNames chkBackupConfirm.Text = frmSettings_chkBackupConfirm btnCancel.Text = frmSettings_btnCancel btnSave.Text = frmSettings_btnSave diff --git a/GBM/Managers/mgrBackup.vb b/GBM/Managers/mgrBackup.vb index 74394a2..9e25a3a 100644 --- a/GBM/Managers/mgrBackup.vb +++ b/GBM/Managers/mgrBackup.vb @@ -101,14 +101,26 @@ Public Class mgrBackup Return sSavePath End Function + Private Function GetFileName(ByVal oGame As clsGame) As String + Dim sName As String + + If oSettings.UseNames Then + sName = oGame.FileSafeName + Else + sName = oGame.ID + End If + + Return sName + End Function + Public Function CheckBackupPrereq(ByVal oGame As clsGame) As Boolean Dim sBackupFile As String = oSettings.BackupFolder Dim sSavePath As String Dim lAvailableSpace As Long Dim lFolderSize As Long - If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.ID - sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.ID & ".7z" + If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) + sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & ".7z" 'Verify saved game path sSavePath = VerifySavePath(oGame) @@ -199,7 +211,7 @@ Public Class mgrBackup RaiseEvent UpdateBackupInfo(oGame) If oSettings.CreateSubFolder Then - sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.ID + sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) Try If Not Directory.Exists(sBackupFile) Then Directory.CreateDirectory(sBackupFile) @@ -212,9 +224,9 @@ Public Class mgrBackup If oGame.AppendTimeStamp Then CheckOldBackups(oGame) - sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.ID & sTimeStamp & ".7z" + sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & sTimeStamp & ".7z" Else - sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.ID & ".7z" + sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & ".7z" End If If bDoBackup Then diff --git a/GBM/Managers/mgrSQLite.vb b/GBM/Managers/mgrSQLite.vb index 6767210..2b58eee 100644 --- a/GBM/Managers/mgrSQLite.vb +++ b/GBM/Managers/mgrSQLite.vb @@ -75,7 +75,7 @@ Public Class mgrSQLite "BackupFolder TEXT NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " & "SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL, AutoRestore BOOLEAN NOT NULL, AutoMark BOOLEAN NOT NULL, SessionTracking BOOLEAN NOT NULL, " & - "SupressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL);" + "SupressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL, UseNames BOOLEAN NOT NULL);" 'Add Tables (SavedPath) sSql &= "CREATE TABLE savedpath (PathName TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);" @@ -783,12 +783,12 @@ Public Class mgrSQLite "BackupFolder TEXT NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " & "SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL, AutoRestore BOOLEAN NOT NULL, AutoMark BOOLEAN NOT NULL, SessionTracking BOOLEAN NOT NULL, " & - "SupressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL);" + "SupressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL, UseNames BOOLEAN NOT NULL);" sSQL &= "INSERT INTO settings_new(SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & "BackupFolder, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " & - "AutoRestore, AutoMark, SessionTracking, SupressMessages, BackupOnLaunch) SELECT SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & + "AutoRestore, AutoMark, SessionTracking, SupressMessages, BackupOnLaunch, UseNames) SELECT SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & "BackupFolder, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " & - "AutoRestore, AutoMark, SessionTracking, 0, 1 FROM settings;" & + "AutoRestore, AutoMark, SessionTracking, 0, 1, 1 FROM settings;" & "DROP TABLE settings; ALTER TABLE settings_new RENAME TO settings;" sSQL &= "CREATE TABLE monitorlist_new (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & "AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & diff --git a/GBM/Managers/mgrSettings.vb b/GBM/Managers/mgrSettings.vb index 3668cbc..f6721da 100644 --- a/GBM/Managers/mgrSettings.vb +++ b/GBM/Managers/mgrSettings.vb @@ -23,6 +23,7 @@ Public Class mgrSettings Private eMessages As eSupressMessages = eSupressMessages.None Private bAutoSaveLog As Boolean = False Private bBackupOnLaunch As Boolean = True + Private bUseNames As Boolean = False Public Enum eSupressMessages None = 0 @@ -275,6 +276,15 @@ Public Class mgrSettings End Set End Property + Property UseNames As Boolean + Get + Return bUseNames + End Get + Set(value As Boolean) + bUseNames = value + End Set + End Property + Sub New() 'The GameIDsync message should be supressed on all new databases SupressMessages = SetMessageField(SupressMessages, eSupressMessages.GameIDSync) @@ -291,7 +301,7 @@ Public Class mgrSettings sSQL = "INSERT INTO settings VALUES (1, @MonitorOnStartup, @StartToTray, @ShowDetectionToolTips, @DisableConfirmation, " sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @StartWithWindows, " sSQL &= "@TimeTracking, @SupressBackup, @SupressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, " - sSQL &= "@SyncFields, @AutoSaveLog, @AutoRestore, @AutoMark, @SessionTracking, @SupressMessages, @BackupOnLaunch)" + sSQL &= "@SyncFields, @AutoSaveLog, @AutoRestore, @AutoMark, @SessionTracking, @SupressMessages, @BackupOnLaunch, @UseNames)" hshParams.Add("MonitorOnStartup", MonitorOnStartup) hshParams.Add("StartToTray", StartToTray) @@ -315,6 +325,7 @@ Public Class mgrSettings hshParams.Add("SessionTracking", SessionTracking) hshParams.Add("SupressMessages", SupressMessages) hshParams.Add("BackupOnLaunch", BackupOnLaunch) + hshParams.Add("UseNames", UseNames) oDatabase.RunParamQuery(sSQL, hshParams) End Sub @@ -351,6 +362,7 @@ Public Class mgrSettings SessionTracking = CBool(dr("SessionTracking")) SupressMessages = CInt(dr("SupressMessages")) BackupOnLaunch = CBool(dr("BackupOnLaunch")) + UseNames = CBool(dr("UseNames")) Next oDatabase.Disconnect() diff --git a/GBM/My Project/Resources.Designer.vb b/GBM/My Project/Resources.Designer.vb index 685a29b..558ec1a 100644 --- a/GBM/My Project/Resources.Designer.vb +++ b/GBM/My Project/Resources.Designer.vb @@ -4542,6 +4542,15 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to Use Name instead of ID for folder and file names. + ''' + Friend ReadOnly Property frmSettings_chkUseNames() As String + Get + Return ResourceManager.GetString("frmSettings_chkUseNames", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to Do you want to revert all settings to their defaults?. ''' @@ -4624,7 +4633,7 @@ Namespace My.Resources End Property ''' - ''' Looks up a localized string similar to Folders. + ''' Looks up a localized string similar to Files and Folders. ''' Friend ReadOnly Property frmSettings_grpFolderOptions() As String Get diff --git a/GBM/My Project/Resources.resx b/GBM/My Project/Resources.resx index 88d8056..9abb3d1 100644 --- a/GBM/My Project/Resources.resx +++ b/GBM/My Project/Resources.resx @@ -1094,7 +1094,7 @@ Startup - Folders + Files and Folders Backup Folder: @@ -2164,4 +2164,7 @@ [PARAM] has been started. + + Use Name instead of ID for folder and file names + \ No newline at end of file