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
@@ -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);
+1 -1
View File
@@ -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();
+5 -5
View File
@@ -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;
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -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