Jelajahi Sumber

Added File Recovery editor setting

Brian Fiete 5 tahun lalu
induk
melakukan
080a5483ae

+ 3 - 0
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();

+ 10 - 0
IDE/src/Settings.bf

@@ -548,6 +548,13 @@ namespace IDE
 				None
 			}
 
+			public enum FileRecoveryKind
+			{
+				No,
+				Yes,
+				BackupOnly
+			}	
+
 			public List<String> 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<FileRecoveryKind>("EnableFileRecovery", ref mEnableFileRecovery);
 			}
 
 			public void SetDefaults()

+ 1 - 0
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);
 		}

+ 3 - 2
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);