diff --git a/UI/properties-view.cpp b/UI/properties-view.cpp index d867abd9e..4e5630342 100644 --- a/UI/properties-view.cpp +++ b/UI/properties-view.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -638,17 +639,38 @@ void OBSPropertiesView::AddColor(obs_property_t *prop, QFormLayout *layout, button->setText(QTStr("Basic.PropertiesWindow.SelectColor")); button->setToolTip(QT_UTF8(obs_property_long_description(prop))); + QPalette palette = QPalette(color); colorLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel); colorLabel->setText(color.name(QColor::HexArgb)); - colorLabel->setPalette(QPalette(color)); + colorLabel->setPalette(palette); + colorLabel->setStyleSheet( + QString("background-color :%1; color: %2;") + .arg(palette.color(QPalette::Window).name(QColor::HexArgb)) + .arg(palette.color(QPalette::WindowText).name(QColor::HexArgb))); colorLabel->setAutoFillBackground(true); colorLabel->setAlignment(Qt::AlignCenter); colorLabel->setToolTip(QT_UTF8(obs_property_long_description(prop))); + QFrame *backdrop = new QLabel; + backdrop->setFrameStyle(QFrame::Sunken | QFrame::Panel); + backdrop->setPalette(palette); + backdrop->setStyleSheet( + "background: qlineargradient(x1:0, y1:0, x2:1, y2:1," + "stop:0 #cccccc, stop:0.45 #cccccc," + "stop:0.55 #444444, stop:1 #444444)"); + backdrop->setAutoFillBackground(true); + + QStackedLayout *stackLayout = new QStackedLayout; + stackLayout->setContentsMargins(0, 0, 0, 0); + stackLayout->setStackingMode(QStackedLayout::StackAll); + + stackLayout->addWidget(backdrop); + stackLayout->addWidget(colorLabel); + QHBoxLayout *subLayout = new QHBoxLayout; subLayout->setContentsMargins(0, 0, 0, 0); - subLayout->addWidget(colorLabel); + subLayout->addItem(stackLayout); subLayout->addWidget(button); WidgetInfo *info = new WidgetInfo(this, prop, colorLabel); @@ -1636,7 +1658,12 @@ bool WidgetInfo::ColorChanged(const char *setting) QLabel *label = static_cast(widget); label->setText(color.name(QColor::HexArgb)); - label->setPalette(QPalette(color)); + QPalette palette = QPalette(color); + label->setPalette(palette); + label->setStyleSheet( + QString("background-color :%1; color: %2;") + .arg(palette.color(QPalette::Window).name(QColor::HexArgb)) + .arg(palette.color(QPalette::WindowText).name(QColor::HexArgb))); obs_data_set_int(view->settings, setting, color_to_int(color));