manageddisplaywidget: show colorspaces as well as DVL

This commit is contained in:
itsmattkc
2020-06-09 13:53:20 +10:00
parent f436bab2d5
commit 0f301cfdcc
7 changed files with 47 additions and 10 deletions
@@ -72,6 +72,26 @@ const ColorTransform &ManagedDisplayWidget::GetColorTransform() const
return color_transform_;
}
Menu *ManagedDisplayWidget::GetColorSpaceMenu(QMenu *parent, bool auto_connect)
{
QStringList colorspaces = color_manager()->ListAvailableColorspaces();
Menu* ocio_colorspace_menu = new Menu(tr("Color Space"), parent);
if (auto_connect) {
connect(ocio_colorspace_menu, &Menu::triggered, this, &ManagedDisplayWidget::MenuColorspaceSelect);
}
foreach (const QString& c, colorspaces) {
QAction* action = ocio_colorspace_menu->addAction(c);
action->setCheckable(true);
action->setChecked(color_transform_.output() == c);
action->setData(c);
}
return ocio_colorspace_menu;
}
void ManagedDisplayWidget::ColorConfigChanged()
{
if (!color_manager_) {
@@ -101,6 +121,8 @@ void ManagedDisplayWidget::ShowDefaultContextMenu()
Menu m(this);
if (color_manager_) {
m.addMenu(GetColorSpaceMenu(&m));
m.addSeparator();
m.addMenu(GetDisplayMenu(&m));
m.addMenu(GetViewMenu(&m));
m.addMenu(GetLookMenu(&m));
@@ -145,6 +167,11 @@ void ManagedDisplayWidget::MenuLookSelect(QAction *action)
SetColorTransform(new_transform);
}
void ManagedDisplayWidget::MenuColorspaceSelect(QAction *action)
{
SetColorTransform(color_manager()->GetCompliantColorSpace(ColorTransform(action->data().toString())));
}
void ManagedDisplayWidget::SetColorTransform(const ColorTransform &transform)
{
makeCurrent();