From 7d874f00799bef961ac5f78737754e1ba16499f6 Mon Sep 17 00:00:00 2001 From: MikeMaximus Date: Mon, 5 Mar 2018 18:58:51 -0600 Subject: [PATCH] Added message supression support and refined game id sync --- GBM/Forms/frmGameManager.vb | 4 +- GBM/Forms/frmMain.Designer.vb | 56 +++++++++++++++++++++++++-- GBM/Forms/frmMain.vb | 33 ++++++++++++++++ GBM/Forms/frmSettings.Designer.vb | 12 ++++++ GBM/Forms/frmSettings.vb | 12 +++++- GBM/Forms/frmStartUpWizard.vb | 2 +- GBM/Managers/mgrCommon.vb | 11 +++++- GBM/Managers/mgrMonitorList.vb | 47 ++++++++++++++++------ GBM/Managers/mgrSQLite.vb | 6 ++- GBM/Managers/mgrSettings.vb | 28 +++++++++++++- GBM/My Project/Resources.Designer.vb | 58 +++++++++++++++++++++++++++- GBM/My Project/Resources.resx | 24 ++++++++++-- 12 files changed, 264 insertions(+), 29 deletions(-) diff --git a/GBM/Forms/frmGameManager.vb b/GBM/Forms/frmGameManager.vb index b40a468..18cce8b 100644 --- a/GBM/Forms/frmGameManager.vb +++ b/GBM/Forms/frmGameManager.vb @@ -1496,7 +1496,7 @@ Public Class frmGameManager sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False) If sLocation <> String.Empty Then - If mgrMonitorList.DoImport(sLocation, False) Then + If mgrMonitorList.DoImport(sLocation, False, Settings) Then mgrMonitorList.SyncMonitorLists(Settings.SyncFields) LoadData() LoadBackupData() @@ -1526,7 +1526,7 @@ Public Class frmGameManager End If If mgrCommon.ShowMessage(frmGameManager_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If mgrMonitorList.DoImport(sImportURL, True) Then + If mgrMonitorList.DoImport(sImportURL, True, Settings) Then mgrMonitorList.SyncMonitorLists(Settings.SyncFields) LoadData() LoadBackupData() diff --git a/GBM/Forms/frmMain.Designer.vb b/GBM/Forms/frmMain.Designer.vb index 5bc1b43..83816fb 100644 --- a/GBM/Forms/frmMain.Designer.vb +++ b/GBM/Forms/frmMain.Designer.vb @@ -42,6 +42,9 @@ Partial Class frmMain Me.gMonTrayLogClear = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTrayLogSave = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTrayToolsSessions = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonTrayToolsSyncGameID = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonTrayToolsSyncGameIDOfficial = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonTrayToolsSyncGameIDFile = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySep1 = New System.Windows.Forms.ToolStripSeparator() Me.gMonTrayExit = New System.Windows.Forms.ToolStripMenuItem() Me.bwMonitor = New System.ComponentModel.BackgroundWorker() @@ -68,6 +71,9 @@ Partial Class frmMain Me.gMonLogClear = New System.Windows.Forms.ToolStripMenuItem() Me.gMonLogSave = New System.Windows.Forms.ToolStripMenuItem() Me.gMonToolsSessions = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonToolsSyncGameID = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonToolsSyncGameIDOfficial = New System.Windows.Forms.ToolStripMenuItem() + Me.gMonToolsSyncGameIDFile = New System.Windows.Forms.ToolStripMenuItem() Me.gMonHelp = New System.Windows.Forms.ToolStripMenuItem() Me.gMonHelpWebSite = New System.Windows.Forms.ToolStripMenuItem() Me.gMonHelpManual = New System.Windows.Forms.ToolStripMenuItem() @@ -103,7 +109,7 @@ Partial Class frmMain ' Me.gMonTrayMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayNotification, Me.gMonTrayShow, Me.gMonTraySep2, Me.gMonTrayMon, Me.gMonTraySettings, Me.gMonTraySetup, Me.gMonTrayTools, Me.gMonTraySep1, Me.gMonTrayExit}) Me.gMonTrayMenu.Name = "gMonTrayMenu" - Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 192) + Me.gMonTrayMenu.Size = New System.Drawing.Size(162, 170) ' 'gMonTrayNotification ' @@ -168,7 +174,7 @@ Partial Class frmMain ' 'gMonTrayTools ' - Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsCompact, Me.gMonTrayToolsLog, Me.gMonTrayToolsSessions}) + Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsCompact, Me.gMonTrayToolsLog, Me.gMonTrayToolsSessions, Me.gMonTrayToolsSyncGameID}) Me.gMonTrayTools.Name = "gMonTrayTools" Me.gMonTrayTools.Size = New System.Drawing.Size(161, 22) Me.gMonTrayTools.Text = "&Tools" @@ -204,6 +210,25 @@ Partial Class frmMain Me.gMonTrayToolsSessions.Size = New System.Drawing.Size(179, 22) Me.gMonTrayToolsSessions.Text = "&Session Viewer..." ' + 'gMonTrayToolsSyncGameID + ' + Me.gMonTrayToolsSyncGameID.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsSyncGameIDOfficial, Me.gMonTrayToolsSyncGameIDFile}) + Me.gMonTrayToolsSyncGameID.Name = "gMonTrayToolsSyncGameID" + Me.gMonTrayToolsSyncGameID.Size = New System.Drawing.Size(179, 22) + Me.gMonTrayToolsSyncGameID.Text = "S&ync Game IDs" + ' + 'gMonTrayToolsSyncGameIDOfficial + ' + Me.gMonTrayToolsSyncGameIDOfficial.Name = "gMonTrayToolsSyncGameIDOfficial" + Me.gMonTrayToolsSyncGameIDOfficial.Size = New System.Drawing.Size(142, 22) + Me.gMonTrayToolsSyncGameIDOfficial.Text = "&Official List..." + ' + 'gMonTrayToolsSyncGameIDFile + ' + Me.gMonTrayToolsSyncGameIDFile.Name = "gMonTrayToolsSyncGameIDFile" + Me.gMonTrayToolsSyncGameIDFile.Size = New System.Drawing.Size(142, 22) + Me.gMonTrayToolsSyncGameIDFile.Text = "&File..." + ' 'gMonTraySep1 ' Me.gMonTraySep1.Name = "gMonTraySep1" @@ -348,7 +373,7 @@ Partial Class frmMain ' 'gMonTools ' - Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsCompact, Me.gMonToolsLog, Me.gMonToolsSessions}) + Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsCompact, Me.gMonToolsLog, Me.gMonToolsSessions, Me.gMonToolsSyncGameID}) Me.gMonTools.Name = "gMonTools" Me.gMonTools.Size = New System.Drawing.Size(47, 20) Me.gMonTools.Text = "&Tools" @@ -384,6 +409,25 @@ Partial Class frmMain Me.gMonToolsSessions.Size = New System.Drawing.Size(179, 22) Me.gMonToolsSessions.Text = "&Session Viewer..." ' + 'gMonToolsSyncGameID + ' + Me.gMonToolsSyncGameID.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsSyncGameIDOfficial, Me.gMonToolsSyncGameIDFile}) + Me.gMonToolsSyncGameID.Name = "gMonToolsSyncGameID" + Me.gMonToolsSyncGameID.Size = New System.Drawing.Size(179, 22) + Me.gMonToolsSyncGameID.Text = "S&ync Game IDs" + ' + 'gMonToolsSyncGameIDOfficial + ' + Me.gMonToolsSyncGameIDOfficial.Name = "gMonToolsSyncGameIDOfficial" + Me.gMonToolsSyncGameIDOfficial.Size = New System.Drawing.Size(152, 22) + Me.gMonToolsSyncGameIDOfficial.Text = "&Official List..." + ' + 'gMonToolsSyncGameIDFile + ' + Me.gMonToolsSyncGameIDFile.Name = "gMonToolsSyncGameIDFile" + Me.gMonToolsSyncGameIDFile.Size = New System.Drawing.Size(152, 22) + Me.gMonToolsSyncGameIDFile.Text = "&File..." + ' 'gMonHelp ' Me.gMonHelp.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonHelpWebSite, Me.gMonHelpManual, Me.gMonHelpCheckforUpdates, Me.gMonHelpAbout}) @@ -621,4 +665,10 @@ Partial Class frmMain Friend WithEvents gMonStripStatusButton As System.Windows.Forms.ToolStripStatusLabel Friend WithEvents gMonToolsSessions As ToolStripMenuItem Friend WithEvents gMonTrayToolsSessions As ToolStripMenuItem + Friend WithEvents gMonToolsSyncGameID As ToolStripMenuItem + Friend WithEvents gMonToolsSyncGameIDOfficial As ToolStripMenuItem + Friend WithEvents gMonToolsSyncGameIDFile As ToolStripMenuItem + Friend WithEvents gMonTrayToolsSyncGameID As ToolStripMenuItem + Friend WithEvents gMonTrayToolsSyncGameIDOfficial As ToolStripMenuItem + Friend WithEvents gMonTrayToolsSyncGameIDFile As ToolStripMenuItem End Class diff --git a/GBM/Forms/frmMain.vb b/GBM/Forms/frmMain.vb index 59b1a89..9b1b4d1 100644 --- a/GBM/Forms/frmMain.vb +++ b/GBM/Forms/frmMain.vb @@ -988,6 +988,26 @@ Public Class frmMain mgrMonitorList.SyncMonitorLists(oSettings.SyncFields, False) End Sub + Private Sub SyncGameIDs(ByVal bOfficial As Boolean) + Dim sLocation As String + + If mgrCommon.IsUnix Then + sLocation = App_URLImportLinux + Else + sLocation = App_URLImport + End If + + If bOfficial Then + mgrMonitorList.SyncGameIDs(sLocation, oSettings, True) + Else + sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False) + + If sLocation <> String.Empty Then + mgrMonitorList.SyncGameIDs(sLocation, oSettings, False) + End If + End If + End Sub + Private Sub LocalDatabaseCheck() Dim oLocalDatabase As New mgrSQLite(mgrSQLite.Database.Local) oLocalDatabase.DatabaseUpgrade() @@ -1349,6 +1369,9 @@ Public Class frmMain gMonToolsCompact.Text = frmMain_gMonToolsCompact gMonToolsLog.Text = frmMain_gMonToolsLog gMonToolsSessions.Text = frmMain_gMonToolsSessions + gMonToolsSyncGameID.Text = frmMain_gMonToolsSyncGameID + gMonToolsSyncGameIDOfficial.Text = frmMain_gMonToolsSyncGameIDOfficial + gMonToolsSyncGameIDFile.Text = frmMain_gMonToolsSyncGameIDFile gMonLogClear.Text = frmMain_gMonLogClear gMonLogSave.Text = frmMain_gMonLogSave gMonHelp.Text = frmMain_gMonHelp @@ -1370,6 +1393,9 @@ Public Class frmMain gMonTrayToolsCompact.Text = frmMain_gMonToolsCompact gMonTrayToolsLog.Text = frmMain_gMonToolsLog gMonTrayToolsSessions.Text = frmMain_gMonToolsSessions + gMonTrayToolsSyncGameID.Text = frmMain_gMonToolsSyncGameID + gMonTrayToolsSyncGameIDOfficial.Text = frmMain_gMonToolsSyncGameIDOfficial + gMonTrayToolsSyncGameIDFile.Text = frmMain_gMonToolsSyncGameIDFile gMonTrayLogClear.Text = frmMain_gMonLogClear gMonTrayLogSave.Text = frmMain_gMonLogSave gMonTrayExit.Text = frmMain_gMonFileExit @@ -1907,4 +1933,11 @@ Public Class frmMain lblGameTitle.Focus() End Sub + Private Sub gMonToolsSyncGameIDOfficial_Click(sender As Object, e As EventArgs) Handles gMonToolsSyncGameIDOfficial.Click, gMonTrayToolsSyncGameIDOfficial.Click + SyncGameIDs(True) + End Sub + + Private Sub gMonToolsSyncGameIDFile_Click(sender As Object, e As EventArgs) Handles gMonToolsSyncGameIDFile.Click, gMonTrayToolsSyncGameIDFile.Click + SyncGameIDs(False) + End Sub End Class \ No newline at end of file diff --git a/GBM/Forms/frmSettings.Designer.vb b/GBM/Forms/frmSettings.Designer.vb index 52379b5..a51ba5a 100644 --- a/GBM/Forms/frmSettings.Designer.vb +++ b/GBM/Forms/frmSettings.Designer.vb @@ -65,6 +65,7 @@ Partial Class frmSettings Me.grpGameData = New System.Windows.Forms.GroupBox() Me.chkSessionTracking = New System.Windows.Forms.CheckBox() Me.lstSettings = New System.Windows.Forms.ListBox() + Me.btnResetMessages = New System.Windows.Forms.Button() Me.grpStartup.SuspendLayout() Me.grpFolderOptions.SuspendLayout() Me.grp7zGeneral.SuspendLayout() @@ -507,11 +508,21 @@ Partial Class frmSettings Me.lstSettings.Size = New System.Drawing.Size(162, 303) Me.lstSettings.TabIndex = 0 ' + 'btnResetMessages + ' + Me.btnResetMessages.Location = New System.Drawing.Point(128, 321) + Me.btnResetMessages.Name = "btnResetMessages" + Me.btnResetMessages.Size = New System.Drawing.Size(110, 23) + Me.btnResetMessages.TabIndex = 7 + Me.btnResetMessages.Text = "&Reset Warnings" + Me.btnResetMessages.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.btnResetMessages) Me.Controls.Add(Me.pnlGeneral) Me.Controls.Add(Me.pnlBackup) Me.Controls.Add(Me.pnl7z) @@ -592,4 +603,5 @@ Partial Class frmSettings Friend WithEvents lblMinutes As Label Friend WithEvents nudSupressBackupThreshold As NumericUpDown Friend WithEvents chkSupressBackup As CheckBox + Friend WithEvents btnResetMessages As Button End Class diff --git a/GBM/Forms/frmSettings.vb b/GBM/Forms/frmSettings.vb index 9519798..4325b16 100644 --- a/GBM/Forms/frmSettings.vb +++ b/GBM/Forms/frmSettings.vb @@ -162,6 +162,12 @@ Public Class frmSettings End If End Sub + Private Sub ResetMessages() + If mgrCommon.ShowMessage(frmSettings_ConfirmMessageReset, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + oSettings.SupressMessages = mgrSettings.eSupressMessages.None + End If + End Sub + Private Sub LoadSettings() chkStartWindows.Checked = oSettings.StartWithWindows chkMonitorOnStartup.Checked = oSettings.MonitorOnStartup @@ -293,6 +299,7 @@ Public Class frmSettings lblArguments.Text = frmSettings_lblArguments lblLocation.Text = frmSettings_lblLocation btnOptionalFields.Text = frmSettings_btnOptionalFields + btnResetMessages.Text = frmSettings_btnResetMessages 'Unix Handler If mgrCommon.IsUnix Then @@ -351,6 +358,10 @@ Public Class frmSettings SetDefaults() End Sub + Private Sub btnResetMessages_Click(sender As Object, e As EventArgs) Handles btnResetMessages.Click + ResetMessages() + End Sub + Private Sub btnOptionalFields_Click(sender As Object, e As EventArgs) Handles btnOptionalFields.Click OpenOptionalFields() End Sub @@ -358,5 +369,4 @@ Public Class frmSettings Private Sub lstSettings_SelectedValueChanged(sender As Object, e As EventArgs) Handles lstSettings.SelectedValueChanged ChangePanel() End Sub - End Class \ No newline at end of file diff --git a/GBM/Forms/frmStartUpWizard.vb b/GBM/Forms/frmStartUpWizard.vb index 3813e2a..cbcae36 100644 --- a/GBM/Forms/frmStartUpWizard.vb +++ b/GBM/Forms/frmStartUpWizard.vb @@ -105,7 +105,7 @@ Public Class frmStartUpWizard End If If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If mgrMonitorList.DoImport(sImportURL, True) Then + If mgrMonitorList.DoImport(sImportURL, True, Settings, True) Then oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList) mgrMonitorList.SyncMonitorLists(oSettings.SyncFields) End If diff --git a/GBM/Managers/mgrCommon.vb b/GBM/Managers/mgrCommon.vb index e38f0d5..c46af4b 100644 --- a/GBM/Managers/mgrCommon.vb +++ b/GBM/Managers/mgrCommon.vb @@ -65,9 +65,16 @@ Public Class mgrCommon Return oFormatter.Deserialize(oStream) End Function - Public Shared Function CheckAddress(ByVal URL As String) As Boolean + Public Shared Function IsAddress(ByVal sURL As String) As Boolean + If (sURL.IndexOf("http://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Or (sURL.IndexOf("https://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Then + Return True + End If + Return False + End Function + + Public Shared Function CheckAddress(ByVal sURL As String) As Boolean Try - Dim request As WebRequest = WebRequest.Create(URL) + Dim request As WebRequest = WebRequest.Create(sURL) Dim response As WebResponse = request.GetResponse() response.Close() Catch ex As Exception diff --git a/GBM/Managers/mgrMonitorList.vb b/GBM/Managers/mgrMonitorList.vb index d8925f5..8a2afdd 100644 --- a/GBM/Managers/mgrMonitorList.vb +++ b/GBM/Managers/mgrMonitorList.vb @@ -782,21 +782,47 @@ Public Class mgrMonitorList Return oList End Function - Public Shared Function DoImport(ByVal sPath As String, ByVal bOfficial As Boolean) As Boolean + Public Shared Function SyncGameIDs(ByVal sPath As String, ByRef oSettings As mgrSettings, ByVal bOfficial As Boolean) As Boolean Dim sWarning As String - 'Set Warning Message If bOfficial Then - sWarning = mgrMonitorList_ConfirmOfficialGameIDSync + If (oSettings.SupressMessages And mgrSettings.eSupressMessages.GameIDSync) = mgrSettings.eSupressMessages.GameIDSync Then + sWarning = mgrMonitorList_ConfirmOfficialGameIDSync + Else + sWarning = mgrMonitorList_ConfirmInitialOfficialGameIDSync + oSettings.SupressMessages = oSettings.SetMessageField(oSettings.SupressMessages, mgrSettings.eSupressMessages.GameIDSync) + oSettings.SaveSettings() + End If Else - sWarning = mgrMonitorList_ConfirmFileGameIDSync + sWarning = mgrMonitorList_ConfirmFileGameIDSync End If - If (sPath.IndexOf("http://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Or - (sPath.IndexOf("https://", 0, StringComparison.CurrentCultureIgnoreCase) > -1) Then + If mgrCommon.ShowMessage(sWarning, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If mgrCommon.IsAddress(sPath) Then + If mgrCommon.CheckAddress(sPath) Then + DoGameIDSync(sPath, True) + Else + mgrCommon.ShowMessage(mgrMonitorList_WebNoReponse, sPath, MsgBoxStyle.Exclamation) + Return False + End If + Else + If File.Exists(sPath) Then + DoGameIDSync(sPath) + Else + mgrCommon.ShowMessage(mgrMonitorList_FileNotFound, sPath, MsgBoxStyle.Exclamation) + Return False + End If + End If + End If + + Return True + End Function + + Public Shared Function DoImport(ByVal sPath As String, ByVal bOfficial As Boolean, ByRef oSettings As mgrSettings, Optional ByVal bStartUpWizard As Boolean = False) As Boolean + If mgrCommon.IsAddress(sPath) Then If mgrCommon.CheckAddress(sPath) Then - If mgrCommon.ShowMessage(sWarning, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - ImportSyncGameID(sPath, True) + If bOfficial And Not bStartUpWizard And Not ((oSettings.SupressMessages And mgrSettings.eSupressMessages.GameIDSync) = mgrSettings.eSupressMessages.GameIDSync) Then + SyncGameIDs(sPath, oSettings, True) End If ImportMonitorList(sPath, True) Return True @@ -806,9 +832,6 @@ Public Class mgrMonitorList End If Else If File.Exists(sPath) Then - If mgrCommon.ShowMessage(sWarning, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - ImportSyncGameID(sPath) - End If ImportMonitorList(sPath) Return True Else @@ -880,7 +903,7 @@ Public Class mgrMonitorList Application.DoEvents() End Sub - Private Shared Sub ImportSyncGameID(ByVal sLocation As String, Optional ByVal bWebRead As Boolean = False) + Private Shared Sub DoGameIDSync(ByVal sLocation As String, Optional ByVal bWebRead As Boolean = False) Dim oLocalDatabase As New mgrSQLite(mgrSQLite.Database.Local) Dim oRemoteDatabase As New mgrSQLite(mgrSQLite.Database.Remote) Dim sSQL As String diff --git a/GBM/Managers/mgrSQLite.vb b/GBM/Managers/mgrSQLite.vb index 6ca19cf..e9ee9b5 100644 --- a/GBM/Managers/mgrSQLite.vb +++ b/GBM/Managers/mgrSQLite.vb @@ -74,7 +74,8 @@ Public Class mgrSQLite "DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " & "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);" + "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);" 'Add Tables (SavedPath) sSql &= "CREATE TABLE savedpath (PathName TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);" @@ -771,7 +772,8 @@ Public Class mgrSQLite "DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " & "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);" + "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);" 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) SELECT SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & diff --git a/GBM/Managers/mgrSettings.vb b/GBM/Managers/mgrSettings.vb index 3ce05b8..856798f 100644 --- a/GBM/Managers/mgrSettings.vb +++ b/GBM/Managers/mgrSettings.vb @@ -20,8 +20,14 @@ Public Class mgrSettings 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 eMessages As eSupressMessages = eSupressMessages.None Private bAutoSaveLog As Boolean = False + Public Enum eSupressMessages + None = 0 + GameIDSync = 1 + End Enum + Property StartWithWindows As Boolean Get Return bStartWithWindows @@ -250,6 +256,15 @@ Public Class mgrSettings End Set End Property + Property SupressMessages As eSupressMessages + Get + Return eMessages + End Get + Set(value As eSupressMessages) + eMessages = value + End Set + End Property + Private Sub SaveFromClass() Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local) Dim sSQL As String @@ -261,7 +276,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)" + sSQL &= "@SyncFields, @AutoSaveLog, @AutoRestore, @AutoMark, @SessionTracking, @SupressMessages)" hshParams.Add("MonitorOnStartup", MonitorOnStartup) hshParams.Add("StartToTray", StartToTray) @@ -283,6 +298,7 @@ Public Class mgrSettings hshParams.Add("AutoRestore", AutoRestore) hshParams.Add("AutoMark", AutoMark) hshParams.Add("SessionTracking", SessionTracking) + hshParams.Add("SupressMessages", SupressMessages) oDatabase.RunParamQuery(sSQL, hshParams) End Sub @@ -317,6 +333,7 @@ Public Class mgrSettings AutoRestore = CBool(dr("AutoRestore")) AutoMark = CBool(dr("AutoMark")) SessionTracking = CBool(dr("SessionTracking")) + SupressMessages = CInt(dr("SupressMessages")) Next oDatabase.Disconnect() @@ -335,4 +352,13 @@ Public Class mgrSettings 'Set Remote Manifest Location mgrPath.RemoteDatabaseLocation = Me.BackupFolder End Sub + + Public Function SetMessageField(ByVal eMessages As eSupressMessages, ByVal eMessage As eSupressMessages) As eSupressMessages + Return eMessages Or eMessage + End Function + + Public Function RemoveMessageField(ByVal eMessages As eSupressMessages, ByVal eMessage As eSupressMessages) As eSupressMessages + Return eMessages And (Not eMessage) + End Function + End Class diff --git a/GBM/My Project/Resources.Designer.vb b/GBM/My Project/Resources.Designer.vb index 0e562e4..353741e 100644 --- a/GBM/My Project/Resources.Designer.vb +++ b/GBM/My Project/Resources.Designer.vb @@ -3327,6 +3327,33 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to S&ync Game IDs. + ''' + Friend ReadOnly Property frmMain_gMonToolsSyncGameID() As String + Get + Return ResourceManager.GetString("frmMain_gMonToolsSyncGameID", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &File.... + ''' + Friend ReadOnly Property frmMain_gMonToolsSyncGameIDFile() As String + Get + Return ResourceManager.GetString("frmMain_gMonToolsSyncGameIDFile", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to &Official List.... + ''' + Friend ReadOnly Property frmMain_gMonToolsSyncGameIDOfficial() As String + Get + Return ResourceManager.GetString("frmMain_gMonToolsSyncGameIDOfficial", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to Show / Hide. ''' @@ -4020,6 +4047,15 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to &Reset Warnings. + ''' + Friend ReadOnly Property frmSettings_btnResetMessages() As String + Get + Return ResourceManager.GetString("frmSettings_btnResetMessages", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to &Save. ''' @@ -4218,6 +4254,15 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized string similar to Do you want to reset all hidden warnings and messages?. + ''' + Friend ReadOnly Property frmSettings_ConfirmMessageReset() As String + Get + Return ResourceManager.GetString("frmSettings_ConfirmMessageReset", resourceCulture) + End Get + End Property + ''' ''' Looks up a localized string similar to The backup folder does not exist. Please choose a valid backup folder.. ''' @@ -5438,7 +5483,7 @@ Namespace My.Resources End Property ''' - ''' Looks up a localized string similar to Do you want to sync your local game ids with this export file? (Not Recommended) [BR][BR]You should only do this if you're managing your own game configurations.. + ''' Looks up a localized string similar to Do you want to sync your identifiers with this export file?[BR][BR]You should only do this if you're managing your own game configurations.. ''' Friend ReadOnly Property mgrMonitorList_ConfirmFileGameIDSync() As String Get @@ -5447,7 +5492,16 @@ Namespace My.Resources End Property ''' - ''' Looks up a localized string similar to Do you want to sync your local game ids with the official game list? (Recommended)[BR][BR]This allows you to easily keep your game configurations up to date if they change in the future.. + ''' Looks up a localized string similar to GBM now uses a unique identifier for each game. For the import feature to work as intended, your existing game configurations should use the same identifiers.[BR][BR]Do you want to sync your identifiers with the official list?[BR][BR]This warning will only be displayed once, but the option is available anytime from the "Tools" menu.. + ''' + Friend ReadOnly Property mgrMonitorList_ConfirmInitialOfficialGameIDSync() As String + Get + Return ResourceManager.GetString("mgrMonitorList_ConfirmInitialOfficialGameIDSync", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Do you want to sync your identifiers with the official game list?. ''' Friend ReadOnly Property mgrMonitorList_ConfirmOfficialGameIDSync() As String Get diff --git a/GBM/My Project/Resources.resx b/GBM/My Project/Resources.resx index 9848fc4..05992c3 100644 --- a/GBM/My Project/Resources.resx +++ b/GBM/My Project/Resources.resx @@ -2026,8 +2026,8 @@ Game ID - - Do you want to sync your local game ids with the official game list? (Recommended)[BR][BR]This allows you to easily keep your game configurations up to date if they change in the future. + + GBM now uses a unique identifier for each game. For the import feature to work as intended, your existing game configurations should use the same identifiers.[BR][BR]Do you want to sync your identifiers with the official list?[BR][BR]This warning will only be displayed once, but the option is available anytime from the "Tools" menu. This file cannot be used to sync game indentifiers. It was created with an older version of GBM. @@ -2036,6 +2036,24 @@ This export file was created with a version of GBM prior to 1.1.0 and does not contain unique game identifiers.[BR][BR]Do you still want to import configurations from this file? (Not Recommended) - Do you want to sync your local game ids with this export file? (Not Recommended) [BR][BR]You should only do this if you're managing your own game configurations. + Do you want to sync your identifiers with this export file?[BR][BR]You should only do this if you're managing your own game configurations. + + + S&ync Game IDs + + + &File... + + + &Official List... + + + Do you want to sync your identifiers with the official game list? + + + &Reset Warnings + + + Do you want to reset all hidden warnings and messages? \ No newline at end of file