From 2574f4dec5386663ef35d180f136c870f39703e6 Mon Sep 17 00:00:00 2001 From: MineGame159 Date: Fri, 5 Jun 2020 16:31:23 +0200 Subject: [PATCH] Added AutocompleteRequireControl setting --- IDE/src/Settings.bf | 3 ++ IDE/src/ui/SettingsDialog.bf | 1 + IDE/src/ui/SourceEditWidgetContent.bf | 48 ++++++++++++++------------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index 36e81c19..394c0d4d 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -309,6 +309,7 @@ namespace IDE public float mUIScale = 100; public Colors mColors = new .() ~ delete _; public AutoCompleteShowKind mAutoCompleteShowKind = .PanelIfVisible; + public bool mAutoCompleteRequireControl = true; public bool mAutoCompleteRequireTab = false; public bool mAutoCompleteOnEnter = true; public bool mAutoCompleteShowDocumentation = true; @@ -331,6 +332,7 @@ namespace IDE sd.Add("FontSize", mFontSize); sd.Add("UIScale", mUIScale); sd.Add("AutoCompleteShowKind", mAutoCompleteShowKind); + sd.Add("AutoCompleteRequireControl", mAutoCompleteRequireControl); sd.Add("AutoCompleteRequireTab", mAutoCompleteRequireTab); sd.Add("AutoCompleteOnEnter", mAutoCompleteOnEnter); sd.Add("AutoCompleteShowDocumentation", mAutoCompleteShowDocumentation); @@ -359,6 +361,7 @@ namespace IDE sd.Get("FontSize", ref mFontSize); sd.Get("UIScale", ref mUIScale); sd.Get("AutoCompleteShowKind", ref mAutoCompleteShowKind); + sd.Get("AutoCompleteRequireControl", ref mAutoCompleteRequireControl); sd.Get("AutoCompleteRequireTab", ref mAutoCompleteRequireTab); sd.Get("AutoCompleteOnEnter", ref mAutoCompleteOnEnter); sd.Get("AutoCompleteShowDocumentation", ref mAutoCompleteShowDocumentation); diff --git a/IDE/src/ui/SettingsDialog.bf b/IDE/src/ui/SettingsDialog.bf index 90d39645..732d3c3f 100644 --- a/IDE/src/ui/SettingsDialog.bf +++ b/IDE/src/ui/SettingsDialog.bf @@ -77,6 +77,7 @@ namespace IDE.ui AddPropertiesItem(category, "Font Size", "mFontSize"); AddPropertiesItem(category, "UI Scale", "mUIScale"); AddPropertiesItem(category, "Autocomplete", "mAutoCompleteShowKind"); + AddPropertiesItem(category, "Autocomplete Require Control", "mAutoCompleteRequireControl"); AddPropertiesItem(category, "Autocomplete Require Tab", "mAutoCompleteRequireTab"); AddPropertiesItem(category, "Autocomplete on Enter", "mAutoCompleteOnEnter"); AddPropertiesItem(category, "Autocomplete Show Documentation", "mAutoCompleteShowDocumentation"); diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index 14a18ec0..bdaf0f33 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -2811,30 +2811,32 @@ namespace IDE.ui mSelection = null; } - if (((keyCode == KeyCode.Up) || (keyCode == KeyCode.Down) || (keyCode == KeyCode.PageUp) || (keyCode == KeyCode.PageDown)) && - (mWidgetWindow.IsKeyDown(KeyCode.Control))) + if (((keyCode == KeyCode.Up) || (keyCode == KeyCode.Down) || (keyCode == KeyCode.PageUp) || (keyCode == KeyCode.PageDown))) { - if (mAutoComplete != null) - { - if (mAutoComplete.mAutoCompleteListWidget != null) - { - int32 pageSize = (int32)(mAutoComplete.mAutoCompleteListWidget.mScrollContentContainer.mHeight / mAutoComplete.mAutoCompleteListWidget.mItemSpacing - 0.5f); - int32 moveDir = 0; - switch (keyCode) - { - case KeyCode.Up: moveDir = -1; break; - case KeyCode.Down: moveDir = 1; break; - case KeyCode.PageUp: moveDir = -pageSize; break; - case KeyCode.PageDown: moveDir = pageSize; break; - default: - } - mAutoComplete.mAutoCompleteListWidget.SelectDirection(moveDir); - } - else if (mAutoComplete.mInvokeWidget != null) - { - mAutoComplete.mInvokeWidget.SelectDirection(((keyCode == KeyCode.Up) || (keyCode == KeyCode.PageUp)) ? -1 : 1); - } - } + if (!gApp.mSettings.mEditorSettings.mAutoCompleteRequireControl || mWidgetWindow.IsKeyDown(KeyCode.Control)) + { + if (mAutoComplete != null) + { + if (mAutoComplete.mAutoCompleteListWidget != null) + { + int32 pageSize = (int32)(mAutoComplete.mAutoCompleteListWidget.mScrollContentContainer.mHeight / mAutoComplete.mAutoCompleteListWidget.mItemSpacing - 0.5f); + int32 moveDir = 0; + switch (keyCode) + { + case KeyCode.Up: moveDir = -1; break; + case KeyCode.Down: moveDir = 1; break; + case KeyCode.PageUp: moveDir = -pageSize; break; + case KeyCode.PageDown: moveDir = pageSize; break; + default: + } + mAutoComplete.mAutoCompleteListWidget.SelectDirection(moveDir); + } + else if (mAutoComplete.mInvokeWidget != null) + { + mAutoComplete.mInvokeWidget.SelectDirection(((keyCode == KeyCode.Up) || (keyCode == KeyCode.PageUp)) ? -1 : 1); + } + } + } // Disabled window-scroll code for ctrl+up/ctrl+down when autocomplete is not up return;