From 3efde45b7daf0ae3f4c3da6423f47e4b058b4ec7 Mon Sep 17 00:00:00 2001 From: Elliu <elliu@hashi.re> Date: Fri, 4 Feb 2022 00:02:35 +0100 Subject: [PATCH] Add ZValue for items --- .../DocumentViews/AudioVisualizer/TimingCursor.cc | 1 + .../DocumentViews/AudioVisualizer/TimingLine.cc | 2 ++ .../DocumentViews/AudioVisualizer/TimingScene.cc | 2 ++ .../AudioVisualizer/TimingSeparator.cc | 15 ++++++++++++--- src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc | 1 + .../DocumentViews/AudioVisualizer/TimingUtils.hh | 8 ++++++++ 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc index 28b5d411..d1c57ef6 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc +++ b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc @@ -10,6 +10,7 @@ using namespace Vivy; TimingCursor::TimingCursor() : QGraphicsItem() { + setZValue(Z_CURSOR_BAR); textRect = QRectF(0, 10, maxWidth, TimingUtils::audioHeight() - 20); // TODO : remove 10/20 magic numbers } diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc index 8beae2b6..e64008b9 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc +++ b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc @@ -22,6 +22,8 @@ TimingLine::TimingLine(Ass::Line *lineptr, int index, QGraphicsItem *parent) int endSyl = 0; int i; + setZValue(Z_LINE_BACKGROUND); + TimingSeparator *timingSeparatorStart = new TimingSeparator(currentTime, 0, TimingSeparator::SeparatorStyle::Start, this); seps.append(timingSeparatorStart); diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc b/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc index 4decbf3b..3f16407d 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc +++ b/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc @@ -69,6 +69,7 @@ TimingScene::rebuildScene() QPixmap pixmap(QPixmap::fromImage(img)); backgroundImg = addPixmap(pixmap); + backgroundImg->setZValue(Z_SPECTER); backgroundImg->setPos(0, TimingUtils::axisHeight()); TimingUtils::setAudioHeight(pixmap.height()); @@ -77,6 +78,7 @@ TimingScene::rebuildScene() ax = new TimingAxis(); addItem(ax); + ax->setZValue(Z_AXIS); ax->setPos(0, TimingUtils::axisHeight()); // Freeze the scene boundaries diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc index e4c40c94..05ccb1bb 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc +++ b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc @@ -22,9 +22,18 @@ TimingSeparator::TimingSeparator(int time, int index, SeparatorStyle style_, Tim setCursor(Qt::PointingHandCursor); switch (style) { - case SeparatorStyle::Start: pen = QPen(QColor(0, 0, 255)); break; - case SeparatorStyle::Middle: pen = QPen(QColor(180, 0, 180)); break; - case SeparatorStyle::End: pen = QPen(QColor(255, 0, 0)); break; + case SeparatorStyle::Start: + pen = QPen(QColor(0, 0, 255)); + setZValue(Z_SEPARATOR_START_END); + break; + case SeparatorStyle::Middle: + pen = QPen(QColor(180, 0, 180)); + setZValue(Z_SEPARATOR_MIDDLE); + break; + case SeparatorStyle::End: + pen = QPen(QColor(255, 0, 0)); + setZValue(Z_SEPARATOR_START_END); + break; } // Putting even-size width seems to be undefined behaviour for pixel drawing : stick to odd pen.setWidth(1); diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc b/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc index 291804cb..4be5e87e 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc +++ b/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc @@ -12,6 +12,7 @@ TimingSyl::TimingSyl(Ass::Syl syl_, int startTime, QGraphicsItem *parent) : QGraphicsObject(parent) , syl(syl_) { + setZValue(Z_LINE_SYL_TEXT); setPos(TimingUtils::posFromMs(startTime), 0); } diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh b/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh index 1ff08ceb..65a8d3bd 100644 --- a/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh +++ b/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh @@ -9,6 +9,14 @@ #define getTimingScene() static_cast<TimingScene *>(scene()) +#define Z_SPECTER -1000 +#define Z_AXIS 10 +#define Z_LINE_BACKGROUND -100 +#define Z_SEPARATOR_START_END 1000 +#define Z_SEPARATOR_MIDDLE 100 +#define Z_LINE_SYL_TEXT 50 +#define Z_CURSOR_BAR 500 + /* * FIXME * Relying on static may pose issues when multiple audioVisualiser -- GitLab