manageddisplaywidget: show colorspaces as well as DVL
This commit is contained in:
@@ -187,7 +187,7 @@ void ProjectPropertiesDialog::OCIOFilenameUpdated()
|
||||
ocio_config_is_valid_ = true;
|
||||
|
||||
// List input color spaces
|
||||
QStringList input_cs = ColorManager::ListAvailableInputColorspaces(c);
|
||||
QStringList input_cs = ColorManager::ListAvailableColorspaces(c);
|
||||
|
||||
foreach (QString cs, input_cs) {
|
||||
default_input_colorspace_->addItem(cs);
|
||||
|
||||
@@ -132,7 +132,7 @@ void ImageStream::ColorConfigChanged()
|
||||
|
||||
// Check if this colorspace is in the new config
|
||||
if (!colorspace_.isEmpty()) {
|
||||
QStringList colorspaces = color_manager->ListAvailableInputColorspaces();
|
||||
QStringList colorspaces = color_manager->ListAvailableColorspaces();
|
||||
if (!colorspaces.contains(colorspace_)) {
|
||||
// Set to empty if not
|
||||
colorspace_.clear();
|
||||
|
||||
@@ -210,9 +210,9 @@ QStringList ColorManager::ListAvailableLooks()
|
||||
return looks;
|
||||
}
|
||||
|
||||
QStringList ColorManager::ListAvailableInputColorspaces()
|
||||
QStringList ColorManager::ListAvailableColorspaces()
|
||||
{
|
||||
return ListAvailableInputColorspaces(config_);
|
||||
return ListAvailableColorspaces(config_);
|
||||
}
|
||||
|
||||
const QString &ColorManager::GetDefaultInputColorSpace() const
|
||||
@@ -243,7 +243,7 @@ void ColorManager::SetReferenceColorSpace(const QString &s)
|
||||
|
||||
QString ColorManager::GetCompliantColorSpace(const QString &s)
|
||||
{
|
||||
if (ListAvailableInputColorspaces().contains(s)) {
|
||||
if (ListAvailableColorspaces().contains(s)) {
|
||||
return s;
|
||||
} else {
|
||||
return GetDefaultInputColorSpace();
|
||||
@@ -279,7 +279,7 @@ ColorTransform ColorManager::GetCompliantColorSpace(const ColorTransform &transf
|
||||
|
||||
QString output = transform.output();
|
||||
|
||||
if (!ListAvailableInputColorspaces().contains(output)) {
|
||||
if (!ListAvailableColorspaces().contains(output)) {
|
||||
output = GetDefaultInputColorSpace();
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ ColorTransform ColorManager::GetCompliantColorSpace(const ColorTransform &transf
|
||||
}
|
||||
}
|
||||
|
||||
QStringList ColorManager::ListAvailableInputColorspaces(OCIO::ConstConfigRcPtr config)
|
||||
QStringList ColorManager::ListAvailableColorspaces(OCIO::ConstConfigRcPtr config)
|
||||
{
|
||||
QStringList spaces;
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
|
||||
QStringList ListAvailableLooks();
|
||||
|
||||
QStringList ListAvailableInputColorspaces();
|
||||
QStringList ListAvailableColorspaces();
|
||||
|
||||
const QString& GetDefaultInputColorSpace() const;
|
||||
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
|
||||
ColorTransform GetCompliantColorSpace(const ColorTransform& transform, bool force_display = false);
|
||||
|
||||
static QStringList ListAvailableInputColorspaces(OCIO::ConstConfigRcPtr config);
|
||||
static QStringList ListAvailableColorspaces(OCIO::ConstConfigRcPtr config);
|
||||
|
||||
void GetDefaultLumaCoefs(float* rgb) const;
|
||||
Color GetDefaultLumaCoefs() const;
|
||||
|
||||
@@ -52,7 +52,7 @@ ColorSpaceChooser::ColorSpaceChooser(ColorManager* color_manager, bool enable_in
|
||||
input_combobox_ = new QComboBox();
|
||||
layout->addWidget(input_combobox_, row, 1);
|
||||
|
||||
QStringList input_spaces = color_manager->ListAvailableInputColorspaces();
|
||||
QStringList input_spaces = color_manager->ListAvailableColorspaces();
|
||||
|
||||
foreach (const QString& s, input_spaces) {
|
||||
input_combobox_->addItem(s);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -52,6 +52,11 @@ public:
|
||||
*/
|
||||
const ColorTransform& GetColorTransform() const;
|
||||
|
||||
/**
|
||||
* @brief Get menu that can be used to select the colorspace
|
||||
*/
|
||||
Menu* GetColorSpaceMenu(QMenu* parent, bool auto_connect = true);
|
||||
|
||||
/**
|
||||
* @brief Get menu that can be used to select the display transform
|
||||
*/
|
||||
@@ -169,6 +174,11 @@ private slots:
|
||||
*/
|
||||
void MenuLookSelect(QAction* action);
|
||||
|
||||
/**
|
||||
* @brief If GetColorSpaceMenu() is called with `auto_connect` set to true, it will be connected to this
|
||||
*/
|
||||
void MenuColorspaceSelect(QAction* action);
|
||||
|
||||
};
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
Reference in New Issue
Block a user