nodes: color management when setting color parameters is now preserved

This commit is contained in:
itsmattkc
2020-04-18 17:43:37 +10:00
parent f73c41d3fa
commit d3b71e6576
19 changed files with 311 additions and 106 deletions
+12 -19
View File
@@ -27,21 +27,22 @@ OLIVE_NAMESPACE_ENTER
ColorButton::ColorButton(ColorManager* color_manager, QWidget *parent) :
QPushButton(parent),
color_manager_(color_manager),
color_(1.0f, 1.0f, 1.0f),
color_processor_(nullptr)
{
color_ = Color(1.0f, 1.0f, 1.0f);
setAutoFillBackground(true);
connect(this, &ColorButton::clicked, this, &ColorButton::ShowColorDialog);
UpdateColor();
}
const Color &ColorButton::GetColor() const
const ManagedColor &ColorButton::GetColor() const
{
return color_;
}
void ColorButton::SetColor(const Color &c)
void ColorButton::SetColor(const ManagedColor &c)
{
color_ = c;
@@ -50,19 +51,11 @@ void ColorButton::SetColor(const Color &c)
void ColorButton::ShowColorDialog()
{
ColorDialog cd(color_manager_, color_, cm_input_, this);
ColorDialog cd(color_manager_, color_, this);
if (cd.exec() == QDialog::Accepted) {
color_ = cd.GetSelectedColor();
cm_input_ = cd.GetColorSpaceInput();
color_processor_ = ColorProcessor::Create(color_manager_->GetConfig(),
cd.GetColorSpaceInput(),
cd.GetColorSpaceDisplay(),
cd.GetColorSpaceView(),
cd.GetColorSpaceLook());
UpdateColor();
emit ColorChanged(color_);
@@ -71,15 +64,15 @@ void ColorButton::ShowColorDialog()
void ColorButton::UpdateColor()
{
QColor managed;
color_processor_ = ColorProcessor::Create(color_manager_,
color_.color_input(),
color_.color_display(),
color_.color_view(),
color_.color_look());
if (color_processor_) {
managed = color_processor_->ConvertColor(color_).toQColor();
} else {
managed = color_.toQColor();
}
QColor managed = color_processor_->ConvertColor(color_).toQColor();
setStyleSheet(QStringLiteral("ColorButton {background: %1;}").arg(managed.name()));
setStyleSheet(QStringLiteral("%1--ColorButton {background: %2;}").arg(MACRO_VAL_AS_STR(OLIVE_NAMESPACE), managed.name()));
}
OLIVE_NAMESPACE_EXIT
+5 -7
View File
@@ -23,8 +23,8 @@
#include <QPushButton>
#include "render/color.h"
#include "render/colormanager.h"
#include "render/managedcolor.h"
OLIVE_NAMESPACE_ENTER
@@ -34,13 +34,13 @@ class ColorButton : public QPushButton
public:
ColorButton(ColorManager* color_manager, QWidget* parent = nullptr);
const Color& GetColor() const;
const ManagedColor& GetColor() const;
public slots:
void SetColor(const Color& c);
void SetColor(const ManagedColor& c);
signals:
void ColorChanged(const Color& c);
void ColorChanged(const ManagedColor& c);
private slots:
void ShowColorDialog();
@@ -50,9 +50,7 @@ private:
ColorManager* color_manager_;
Color color_;
QString cm_input_;
ManagedColor color_;
ColorProcessorPtr color_processor_;