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; +};