moved ColorManager to a node

Reduces code by reusing the existing node infrastructure. Also
helps prevent race conditions since the node/render system is
designed for multithreading.
This commit is contained in:
itsmattkc
2021-02-18 14:33:08 +11:00
parent e0e4e42096
commit cc9747ede4
11 changed files with 183 additions and 151 deletions
+11 -2
View File
@@ -86,13 +86,13 @@ void ManagedDisplayWidget::ConnectColorManager(ColorManager *color_manager)
}
if (color_manager_ != nullptr) {
disconnect(color_manager_, &ColorManager::ConfigChanged, this, &ManagedDisplayWidget::ColorConfigChanged);
disconnect(color_manager_, &ColorManager::ValueChanged, this, &ManagedDisplayWidget::ColorManagerValueChanged);
}
color_manager_ = color_manager;
if (color_manager_ != nullptr) {
connect(color_manager_, &ColorManager::ConfigChanged, this, &ManagedDisplayWidget::ColorConfigChanged);
connect(color_manager_, &ColorManager::ValueChanged, this, &ManagedDisplayWidget::ColorManagerValueChanged);
}
ColorConfigChanged();
@@ -350,4 +350,13 @@ void ManagedDisplayWidget::SetupColorProcessor()
emit ColorProcessorChanged(color_service_);
}
void ManagedDisplayWidget::ColorManagerValueChanged(const NodeInput &input, const TimeRange &range)
{
Q_UNUSED(range)
if (input.input() == ColorManager::kConfigFilenameIn || input.input() == ColorManager::kReferenceSpaceIn) {
ColorConfigChanged();
}
}
}