From 080a5483aeb2b2d31453addd38da4697e23ffb5c Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 8 Oct 2020 06:45:22 -0700 Subject: [PATCH] Added File Recovery editor setting --- IDE/src/FileRecovery.bf | 3 +++ IDE/src/Settings.bf | 10 ++++++++++ IDE/src/ui/SettingsDialog.bf | 1 + IDE/src/ui/SourceViewPanel.bf | 5 +++-- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/IDE/src/FileRecovery.bf b/IDE/src/FileRecovery.bf index 9863e80a..cb47aa50 100644 --- a/IDE/src/FileRecovery.bf +++ b/IDE/src/FileRecovery.bf @@ -175,6 +175,9 @@ namespace IDE public void CheckWorkspace() { + if (gApp.mSettings.mEditorSettings.mEnableFileRecovery != .Yes) + return; + mWantWorkspaceCleanup = true; String recoverPath = scope String(); diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index c5e7ce5f..cdec2e8c 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -548,6 +548,13 @@ namespace IDE None } + public enum FileRecoveryKind + { + No, + Yes, + BackupOnly + } + public List mFonts = new .() ~ DeleteContainerAndItems!(_); public float mFontSize = 12; public AutoCompleteShowKind mAutoCompleteShowKind = .PanelIfVisible; @@ -564,6 +571,7 @@ namespace IDE public bool mSpellCheckEnabled = true; public bool mShowLineNumbers = true; public bool mFreeCursorMovement; + public FileRecoveryKind mEnableFileRecovery = .Yes; public void Serialize(StructuredData sd) { @@ -586,6 +594,7 @@ namespace IDE sd.Add("SpellCheckEnabled", mSpellCheckEnabled); sd.Add("ShowLineNumbers", mShowLineNumbers); sd.Add("FreeCursorMovement", mFreeCursorMovement); + sd.Add("EnableFileRecovery", mEnableFileRecovery); } public void Deserialize(StructuredData sd) @@ -612,6 +621,7 @@ namespace IDE sd.Get("SpellCheckEnabled", ref mSpellCheckEnabled); sd.Get("ShowLineNumbers", ref mShowLineNumbers); sd.Get("FreeCursorMovement", ref mFreeCursorMovement); + sd.GetEnum("EnableFileRecovery", ref mEnableFileRecovery); } public void SetDefaults() diff --git a/IDE/src/ui/SettingsDialog.bf b/IDE/src/ui/SettingsDialog.bf index 8c9f995d..6a9ca3ac 100644 --- a/IDE/src/ui/SettingsDialog.bf +++ b/IDE/src/ui/SettingsDialog.bf @@ -122,6 +122,7 @@ namespace IDE.ui AddPropertiesItem(category, "Show Line Numbers", "mShowLineNumbers"); AddPropertiesItem(category, "Free Cursor Movement", "mFreeCursorMovement"); + AddPropertiesItem(category, "Enable File Recovery", "mEnableFileRecovery"); category.Open(true, true); } diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index f11d80f6..b122f1a2 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -862,7 +862,8 @@ namespace IDE.ui public void CheckSavedContents() { - if (((mEditData != null)) && (mEditData.mLastFileTextVersion == mEditWidget.Content.mData.mCurTextVersionId) && (mEditData.mRecoveryHash.IsZero)) + if (((mEditData != null)) && (mEditData.mLastFileTextVersion == mEditWidget.Content.mData.mCurTextVersionId) && (mEditData.mRecoveryHash.IsZero) && + (gApp.mSettings.mEditorSettings.mEnableFileRecovery != .No)) { String text = scope .(); mEditWidget.GetText(text); @@ -6170,7 +6171,7 @@ namespace IDE.ui { #if !CLI DeleteAndNullify!(mFileRecoveryEntry); - if ((mFilePath != null) && (mEditData != null) && (!mEditData.mRecoveryHash.IsZero)) + if ((mFilePath != null) && (mEditData != null) && (!mEditData.mRecoveryHash.IsZero) && (gApp.mSettings.mEditorSettings.mEnableFileRecovery != .No)) { String contents = scope .(); mEditWidget.GetText(contents);