summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp')
-rw-r--r--src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp b/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
index 91d33fdf..c3b2595a 100644
--- a/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
+++ b/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
@@ -325,10 +325,18 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
painter->drawPixmap(0, 0, hiResIcons ? pixCompAction2x : pixCompAction);
}
+ // variants indicator
+ if (m_variantsGroups.size() > 0) {
+ const auto variantsDef = g_StudioApp.GetCore()->getProjectFile().variantsDef();
+ for (int i = 0; i < m_variantsGroups.size(); ++i) {
+ painter->fillRect(QRect(clipX() + 2 + i * 9, 6, 6, 6),
+ variantsDef[m_variantsGroups[i]].m_color);
+ }
+ }
+
// The following items need to be clipped so that they do not draw overlapping shy etc. buttons
- painter->setClipRect(0, 0, treeWidth() - TimelineConstants::TREE_ICONS_W,
- TimelineConstants::ROW_H);
+ painter->setClipRect(0, 0, clipX(), TimelineConstants::ROW_H);
// expand/collapse arrow
static const QPixmap pixArrow = QPixmap(":/images/arrow.png");
@@ -469,6 +477,12 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
painter->drawPixmap(m_rectType, pixRowType);
}
+void RowTree::updateVariants(const QStringList &groups)
+{
+ m_variantsGroups = groups;
+ update();
+}
+
int RowTree::treeWidth() const
{
return m_scene->treeWidth() - m_scene->getScrollbarOffsets().x();
@@ -512,6 +526,12 @@ void RowTree::setBinding(ITimelineItemBinding *binding)
updateFromBinding();
}
+// x value where label should clip
+int RowTree::clipX() const
+{
+ return treeWidth() - TimelineConstants::TREE_ICONS_W - m_variantsGroups.size() * 9 - 2;
+}
+
ITimelineItemProperty *RowTree::propBinding()
{
return m_PropBinding;