UI: Add ability to style preview background color
This commit is contained in:
@@ -880,3 +880,9 @@ FocusList::item {
|
||||
* [themeID="aboutHLayout"] {
|
||||
background-color: rgb(8, 8, 11);
|
||||
}
|
||||
|
||||
/* Preview background color */
|
||||
|
||||
* [themeID="displayBackgroundColor"] {
|
||||
qproperty-displayBackgroundColor: #28282A;
|
||||
}
|
||||
|
@@ -656,3 +656,9 @@ QLabel#errorLabel {
|
||||
* [themeID="aboutHLayout"] {
|
||||
background-color: rgb(31, 30, 31); /* veryDark */
|
||||
}
|
||||
|
||||
/* Preview background color */
|
||||
|
||||
* [themeID="displayBackgroundColor"] {
|
||||
qproperty-displayBackgroundColor: rgb(76, 76, 76);
|
||||
}
|
||||
|
@@ -135,3 +135,9 @@ QLabel#errorLabel {
|
||||
* [themeID="aboutHLayout"] {
|
||||
background-color: rgb(169, 169, 169);
|
||||
}
|
||||
|
||||
/* Preview background color */
|
||||
|
||||
* [themeID="displayBackgroundColor"] {
|
||||
qproperty-displayBackgroundColor: rgb(76, 76, 76);
|
||||
}
|
||||
|
@@ -1234,3 +1234,9 @@ QToolTip {
|
||||
* [themeID="aboutHLayout"] {
|
||||
background-color: rgb(35, 38, 41); /* Dark Gray */
|
||||
}
|
||||
|
||||
/* Preview background color */
|
||||
|
||||
* [themeID="displayBackgroundColor"] {
|
||||
qproperty-displayBackgroundColor: rgb(35, 38, 41);
|
||||
}
|
||||
|
@@ -6,6 +6,20 @@
|
||||
#include <QResizeEvent>
|
||||
#include <QShowEvent>
|
||||
|
||||
static inline long long color_to_int(QColor color)
|
||||
{
|
||||
auto shift = [&](unsigned val, int shift)
|
||||
{
|
||||
return ((val & 0xff) << shift);
|
||||
};
|
||||
|
||||
return shift(color.red(), 0) |
|
||||
shift(color.green(), 8) |
|
||||
shift(color.blue(), 16) |
|
||||
shift(color.alpha(), 24);
|
||||
}
|
||||
|
||||
|
||||
OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags)
|
||||
: QWidget(parent, flags)
|
||||
{
|
||||
@@ -39,6 +53,14 @@ OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags)
|
||||
|
||||
connect(windowHandle(), &QWindow::visibleChanged, windowVisible);
|
||||
connect(windowHandle(), &QWindow::screenChanged, sizeChanged);
|
||||
|
||||
this->setProperty("themeID", "displayBackgroundColor");
|
||||
}
|
||||
|
||||
void OBSQTDisplay::SetDisplayBackgroundColor(const QColor &color)
|
||||
{
|
||||
backgroundColor = (uint32_t)color_to_int(color);
|
||||
obs_display_set_background_color(display, backgroundColor);
|
||||
}
|
||||
|
||||
void OBSQTDisplay::CreateDisplay()
|
||||
@@ -56,7 +78,7 @@ void OBSQTDisplay::CreateDisplay()
|
||||
|
||||
QTToGSWindow(winId(), info.window);
|
||||
|
||||
display = obs_display_create(&info);
|
||||
display = obs_display_create(&info, backgroundColor);
|
||||
|
||||
emit DisplayCreated(this);
|
||||
}
|
||||
|
@@ -5,6 +5,8 @@
|
||||
|
||||
class OBSQTDisplay : public QWidget {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QColor displayBackgroundColor WRITE SetDisplayBackgroundColor
|
||||
NOTIFY SetDisplayBackgroundColor)
|
||||
|
||||
OBSDisplay display;
|
||||
|
||||
@@ -23,4 +25,9 @@ public:
|
||||
virtual QPaintEngine *paintEngine() const override;
|
||||
|
||||
inline obs_display_t *GetDisplay() const {return display;}
|
||||
|
||||
uint32_t backgroundColor;
|
||||
|
||||
private slots:
|
||||
void SetDisplayBackgroundColor(const QColor &color);
|
||||
};
|
||||
|
Reference in New Issue
Block a user