From 15e09fdc5e1321520bcc040e79c31faee45ea482 Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 17 Aug 2018 15:14:53 +0100 Subject: [PATCH] Projucer: Refresh the modules tree on a timer so that rapid changes to the module search paths don't cause a slow down --- .../Project/UI/Sidebar/jucer_ModuleTreeItems.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h index 5d96038c5b..79e9b9dead 100644 --- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h +++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h @@ -476,7 +476,8 @@ private: //============================================================================== class EnabledModulesItem : public ProjectTreeItemBase, - private Value::Listener + private Value::Listener, + private Timer { public: EnabledModulesItem (Project& p) @@ -667,9 +668,17 @@ private: if (auto* moduleItem = dynamic_cast (getSubItem (i))) moduleItem->refreshModuleInfoIfCurrentlyShowing (juceModulePathChanged); - refreshSubItems(); + // coalesce changes using a timer in case the value is changing rapidly + startTimer (750); } } + //============================================================================== + void timerCallback() override + { + stopTimer(); + refreshSubItems(); + } + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EnabledModulesItem) };