From 898ea840a89348b037f70cd5ad1c102f088f9a4a Mon Sep 17 00:00:00 2001 From: Maarten Bezemer Date: Wed, 19 Jan 2022 00:45:43 +0100 Subject: [PATCH] Support the search box (ctrl+F) --- YAFC/Workspace/SummaryView.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/YAFC/Workspace/SummaryView.cs b/YAFC/Workspace/SummaryView.cs index e0752431..c9a1eb41 100644 --- a/YAFC/Workspace/SummaryView.cs +++ b/YAFC/Workspace/SummaryView.cs @@ -19,6 +19,7 @@ struct GoodDetails } private Project project; + private SearchQuery searchQuery; private readonly ScrollArea scrollArea; private readonly DataColumn goodsColumn; @@ -92,6 +93,12 @@ protected void BuildSummaryTable(ImGui gui, ProjectPage page) { foreach (KeyValuePair goodInfo in allGoods) { + if (!searchQuery.Match(goodInfo.Key)) + { + Console.WriteLine("skip=" + goodInfo.Key); + continue; + } + float amountAvailable = YAFCRounding((goodInfo.Value.totalProvided > 0 ? goodInfo.Value.totalProvided : 0) + goodInfo.Value.extraProduced); var amountNeeded = YAFCRounding((goodInfo.Value.totalProvided < 0 ? -goodInfo.Value.totalProvided : 0) + goodInfo.Value.totalNeeded); if (model.showOnlyIssues && (Math.Abs(amountAvailable - amountNeeded) < Epsilon || amountNeeded == 0)) @@ -255,12 +262,19 @@ private void Recalculate(bool visualOnly) private void SetProviderAmount(ProductionLink element, ProjectPage page, float newAmount) { element.RecordUndo().amount = newAmount; - // Hack force recalculate the page 9and make sure to catch the content change event caused by the recalculation) + // Hack force recalculate the page (and make sure to catch the content change event caused by the recalculation) page.SetActive(true); page.SetToRecalculate(); page.SetActive(false); } + public override void SetSearchQuery(SearchQuery query) + { + searchQuery = query; + bodyContent.Rebuild(); + scrollArea.Rebuild(); + } + public override void CreateModelDropdown(ImGui gui, Type type, Project project) { }