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:
parent
2e532329a7
commit
497ac0bea3
3 changed files with 14 additions and 13 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue