From 707e9d552234076bfb93f960431144a8749f82dd Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sat, 18 Apr 2020 17:55:11 +1000 Subject: [PATCH] project: fixed bug where ocio config wouldn't automatically load from a saved project --- app/dialog/projectproperties/projectproperties.cpp | 8 ++------ app/project/project.cpp | 2 ++ app/render/colormanager.cpp | 10 +++++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/dialog/projectproperties/projectproperties.cpp b/app/dialog/projectproperties/projectproperties.cpp index c4dfadf9f..b71d2b1de 100644 --- a/app/dialog/projectproperties/projectproperties.cpp +++ b/app/dialog/projectproperties/projectproperties.cpp @@ -92,14 +92,10 @@ ProjectPropertiesDialog::ProjectPropertiesDialog(Project* p, QWidget *parent) : void ProjectPropertiesDialog::accept() { try { - OCIO::ConstConfigRcPtr config = OCIO::Config::CreateFromFile(ocio_filename_->text().toUtf8()); - - working_project_->set_default_input_colorspace(default_input_colorspace_->currentText()); - + // This should ripple changes throughout the program that the color config has changed, therefore must be done last working_project_->set_ocio_config(ocio_filename_->text()); - // This should ripple changes throughout the program that the color config has changed, therefore must be done last - working_project_->color_manager()->SetConfig(config); + working_project_->set_default_input_colorspace(default_input_colorspace_->currentText()); QDialog::accept(); } catch (OCIO::Exception& e) { diff --git a/app/project/project.cpp b/app/project/project.cpp index 794ee37a2..5ca5cd7d6 100644 --- a/app/project/project.cpp +++ b/app/project/project.cpp @@ -135,6 +135,8 @@ const QString &Project::ocio_config() const void Project::set_ocio_config(const QString &ocio_config) { + color_manager_.SetConfig(ocio_config); + ocio_config_ = ocio_config; } diff --git a/app/render/colormanager.cpp b/app/render/colormanager.cpp index 3efefb8f4..031c4b787 100644 --- a/app/render/colormanager.cpp +++ b/app/render/colormanager.cpp @@ -44,7 +44,15 @@ OCIO::ConstConfigRcPtr ColorManager::GetConfig() const void ColorManager::SetConfig(const QString &filename) { - SetConfig(OCIO::Config::CreateFromFile(filename.toUtf8())); + OCIO::ConstConfigRcPtr cfg; + + if (filename.isEmpty()) { + cfg = OCIO::Config::CreateFromEnv(); + } else { + cfg = OCIO::Config::CreateFromFile(filename.toUtf8()); + } + + SetConfig(cfg); } void ColorManager::SetConfig(OCIO::ConstConfigRcPtr config)