From adba393ca85fba19ed1bf6cd825ab8188beb2d16 Mon Sep 17 00:00:00 2001 From: cg2121 Date: Wed, 24 Aug 2022 12:37:54 -0500 Subject: [PATCH] UI: Fix source item widget color height The background color of the source tree item widgets wouldn't be rendered properly. --- UI/data/themes/Acri.qss | 8 +++++++- UI/data/themes/Grey.qss | 8 +++++++- UI/data/themes/Light.qss | 8 +++++++- UI/data/themes/Rachni.qss | 8 +++++++- UI/data/themes/Yami.qss | 8 +++++++- UI/source-tree.cpp | 16 ++++++++++++++++ UI/source-tree.hpp | 12 +++++++++++- 7 files changed, 62 insertions(+), 6 deletions(-) diff --git a/UI/data/themes/Acri.qss b/UI/data/themes/Acri.qss index 489459528..840ca299e 100644 --- a/UI/data/themes/Acri.qss +++ b/UI/data/themes/Acri.qss @@ -189,11 +189,17 @@ SourceTree { padding: 3px; } +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +SourceTreeItem, QMenu::item, SceneTree::item, SourceTree::item { border-radius: 4px; - padding: 6px; color: palette(text); border: 0px solid transparent; } diff --git a/UI/data/themes/Grey.qss b/UI/data/themes/Grey.qss index ef19f6424..9a11836d8 100644 --- a/UI/data/themes/Grey.qss +++ b/UI/data/themes/Grey.qss @@ -189,11 +189,17 @@ SourceTree { padding: 3px; } +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +SourceTreeItem, QMenu::item, SceneTree::item, SourceTree::item { border-radius: 4px; - padding: 6px; color: palette(text); border: 0px solid transparent; } diff --git a/UI/data/themes/Light.qss b/UI/data/themes/Light.qss index 875f61357..33c83eaa5 100644 --- a/UI/data/themes/Light.qss +++ b/UI/data/themes/Light.qss @@ -189,11 +189,17 @@ SourceTree { padding: 3px; } +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +SourceTreeItem, QMenu::item, SceneTree::item, SourceTree::item { border-radius: 4px; - padding: 6px; color: palette(text); border: 0px solid transparent; } diff --git a/UI/data/themes/Rachni.qss b/UI/data/themes/Rachni.qss index df52ce635..529ff4bba 100644 --- a/UI/data/themes/Rachni.qss +++ b/UI/data/themes/Rachni.qss @@ -191,11 +191,17 @@ SourceTree { padding: 3px; } +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +SourceTreeItem, QMenu::item, SceneTree::item, SourceTree::item { border-radius: 4px; - padding: 6px; color: palette(text); border: 0px solid transparent; } diff --git a/UI/data/themes/Yami.qss b/UI/data/themes/Yami.qss index 9b022e5a1..47d794d87 100644 --- a/UI/data/themes/Yami.qss +++ b/UI/data/themes/Yami.qss @@ -189,11 +189,17 @@ SourceTree { padding: 3px; } +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +SourceTreeItem, QMenu::item, SceneTree::item, SourceTree::item { border-radius: 4px; - padding: 6px; color: palette(text); border: 0px solid transparent; } diff --git a/UI/source-tree.cpp b/UI/source-tree.cpp index dc81627dc..f02ec6d6f 100644 --- a/UI/source-tree.cpp +++ b/UI/source-tree.cpp @@ -1088,6 +1088,8 @@ SourceTree::SourceTree(QWidget *parent_) : QListView(parent_) connect(App(), &OBSApp::StyleChanged, this, &SourceTree::UpdateNoSourcesMessage); connect(App(), &OBSApp::StyleChanged, this, &SourceTree::UpdateIcons); + + setItemDelegate(new SourceTreeDelegate(this)); } void SourceTree::UpdateIcons() @@ -1743,3 +1745,17 @@ void SourceTree::paintEvent(QPaintEvent *event) QListView::paintEvent(event); } } + +SourceTreeDelegate::SourceTreeDelegate(QObject *parent) + : QStyledItemDelegate(parent) +{ +} + +QSize SourceTreeDelegate::sizeHint(const QStyleOptionViewItem &, + const QModelIndex &index) const +{ + SourceTree *tree = qobject_cast(parent()); + QWidget *item = tree->indexWidget(index); + + return (QSize(item->width(), item->height())); +} diff --git a/UI/source-tree.hpp b/UI/source-tree.hpp index 635ba728a..184b31bb9 100644 --- a/UI/source-tree.hpp +++ b/UI/source-tree.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -25,7 +26,7 @@ class SourceTreeSubItemCheckBox : public QCheckBox { Q_OBJECT }; -class SourceTreeItem : public QWidget { +class SourceTreeItem : public QFrame { Q_OBJECT friend class SourceTree; @@ -218,3 +219,12 @@ protected: selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override; }; + +class SourceTreeDelegate : public QStyledItemDelegate { + Q_OBJECT + +public: + SourceTreeDelegate(QObject *parent); + virtual QSize sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const override; +};