Browse Source

Projucer: Refresh the modules tree on a timer so that rapid changes to the module search paths don't cause a slow down

tags/2021-05-28
ed 6 years ago
parent
commit
15e09fdc5e
1 changed files with 11 additions and 2 deletions
  1. +11
    -2
      extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h

+ 11
- 2
extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h View File

@@ -476,7 +476,8 @@ private:
//============================================================================== //==============================================================================
class EnabledModulesItem : public ProjectTreeItemBase, class EnabledModulesItem : public ProjectTreeItemBase,
private Value::Listener
private Value::Listener,
private Timer
{ {
public: public:
EnabledModulesItem (Project& p) EnabledModulesItem (Project& p)
@@ -667,9 +668,17 @@ private:
if (auto* moduleItem = dynamic_cast<ModuleItem*> (getSubItem (i))) if (auto* moduleItem = dynamic_cast<ModuleItem*> (getSubItem (i)))
moduleItem->refreshModuleInfoIfCurrentlyShowing (juceModulePathChanged); 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) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EnabledModulesItem)
}; };

Loading…
Cancel
Save