1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Prevent unnecessary ChangeListener callbacks in HeaderComponent

This commit is contained in:
ed 2019-01-11 17:40:34 +00:00
parent 2e532329a7
commit 497ac0bea3
3 changed files with 14 additions and 13 deletions

View file

@ -123,7 +123,8 @@ void HeaderComponent::setCurrentProject (Project* p) noexcept
exportersTree.addListener (this);
updateExporters();
project->addChangeListener (this);
projectNameValue.referTo (project->getProjectValue (Ids::name));
projectNameValue.addListener (this);
updateName();
isBuilding = false;
@ -131,14 +132,12 @@ void HeaderComponent::setCurrentProject (Project* p) noexcept
repaint();
childProcess = ProjucerApplication::getApp().childProcessCache->getExisting (*project);
if (childProcess != nullptr)
{
childProcess->activityList.addChangeListener (this);
childProcess->errorList.addChangeListener (this);
}
if (childProcess != nullptr)
{
runAppButton->setTooltip ({});
runAppButton->setEnabled (true);
}
@ -227,14 +226,9 @@ void HeaderComponent::lookAndFeelChanged()
userSettingsWindow->sendLookAndFeelChange();
}
void HeaderComponent::changeListenerCallback (ChangeBroadcaster* source)
void HeaderComponent::changeListenerCallback (ChangeBroadcaster*)
{
if (source == project)
{
updateName();
updateExporters();
}
else if (childProcess != nullptr)
if (childProcess != nullptr)
{
if (childProcess->activityList.getNumActivities() > 0)
buildPing();
@ -243,6 +237,11 @@ void HeaderComponent::changeListenerCallback (ChangeBroadcaster* source)
}
}
void HeaderComponent::valueChanged (Value&)
{
updateName();
}
void HeaderComponent::timerCallback()
{
repaint();

View file

@ -36,6 +36,7 @@ class Project;
class HeaderComponent : public Component,
private ValueTree::Listener,
private ChangeListener,
private Value::Listener,
private Timer
{
public:
@ -65,6 +66,7 @@ private:
//==========================================================================
void lookAndFeelChanged() override;
void changeListenerCallback (ChangeBroadcaster* source) override;
void valueChanged (Value&) override;
void timerCallback() override;
//==========================================================================
@ -100,6 +102,8 @@ private:
Project* project = nullptr;
ValueTree exportersTree;
Value projectNameValue;
ComboBox exporterBox;
Label configLabel { "Config Label", "Selected exporter" },
projectNameLabel;

View file

@ -714,8 +714,6 @@ void Project::valueTreePropertyChanged (ValueTree& tree, const Identifier& prope
{
if (property == Ids::projectType)
{
sendChangeMessage();
sendProjectSettingAnalyticsEvent ("Project Type = " + projectTypeValue.get().toString());
}
else if (property == Ids::name)