From 240b2cc2a3ef3066f5327e4458b6aff7bf50c461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole-Andr=C3=A9=20Rodlie?= Date: Mon, 24 Jun 2024 18:22:09 +0200 Subject: [PATCH] Update keysview --- src/app/GUI/keysview.cpp | 46 +++++++++++++++++++++++++--------------- src/app/GUI/keysview.h | 4 ++++ 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/app/GUI/keysview.cpp b/src/app/GUI/keysview.cpp index 51077b081..37848cb76 100644 --- a/src/app/GUI/keysview.cpp +++ b/src/app/GUI/keysview.cpp @@ -190,6 +190,28 @@ void KeysView::selectKeysInSelectionRect() { } } +bool KeysView::hasFrameIn(const int frame) +{ + if (!mCurrentScene) { return false; } + const auto frameIn = mCurrentScene->getFrameIn(); + if ((frameIn.first && frame == (frameIn.second - 1))) { return true; } + return false; +} + +bool KeysView::hasFrameOut(const int frame) +{ + if (!mCurrentScene) { return false; } + const auto frameOut = mCurrentScene->getFrameOut(); + if ((frameOut.first && frame == (frameOut.second - 1))) { return true; } + return false; +} + +bool KeysView::hasFrameMarker(const int frame) +{ + if (!mCurrentScene) { return false; } + return mCurrentScene->hasMarker(frame); +} + void KeysView::resizeEvent(QResizeEvent *e) { if(mHighlighter) mHighlighter->resize(e->size()); updatePixelsPerFrame(); @@ -497,24 +519,14 @@ void KeysView::paintEvent(QPaintEvent *) { maxFrame += qFloor((width() - 40 - xT)/mPixelsPerFrame) - maxFrame%iInc; for(int i = minFrame; i <= maxFrame; i += iInc) { const qreal xTT = xT + (i - mMinViewedFrame + 1)*mPixelsPerFrame; - p.setPen(QPen(ThemeSupport::getThemeTimelineColor(), 2)); - p.drawLine(QPointF(xTT, 0), QPointF(xTT, height())); - - if (mCurrentScene) { - const auto frameIn = mCurrentScene->getFrameIn(); - const auto frameOut = mCurrentScene->getFrameOut(); - if ((frameOut.first && i == (frameOut.second-1)) || (frameIn.first && i == (frameIn.second-1))) { - p.setPen(QPen(ThemeSupport::getThemeHighlightColor(), 2, Qt::DotLine)); - p.drawLine(QPointF(xTT, 0), QPointF(xTT, height())); - } - const auto markers = mCurrentScene->getMarkers(); - for (const auto &mark: markers) { - if ((mark.second-1) == i) { - p.setPen(QPen(Qt::white, 2, Qt::DotLine)); - p.drawLine(QPointF(xTT, 0), QPointF(xTT, height())); - } - } + if (hasFrameIn(i) || hasFrameOut(i)) { + p.setPen(QPen(ThemeSupport::getThemeHighlightColor(), 2, Qt::DotLine)); + } else if (hasFrameMarker(i)) { + p.setPen(QPen(Qt::white, 2, Qt::DotLine)); + } else { + p.setPen(QPen(ThemeSupport::getThemeTimelineColor(), 2)); } + p.drawLine(QPointF(xTT, 0), QPointF(xTT, height())); } if (mCurrentScene) { diff --git a/src/app/GUI/keysview.h b/src/app/GUI/keysview.h index 3349a44d7..8f7a4c937 100644 --- a/src/app/GUI/keysview.h +++ b/src/app/GUI/keysview.h @@ -78,6 +78,10 @@ class KeysView : public QWidget, public KeyFocusTarget { void clearKeySelection(); void selectKeysInSelectionRect(); + bool hasFrameIn(const int frame); + bool hasFrameOut(const int frame); + bool hasFrameMarker(const int frame); + // graph void graphPaint(QPainter *p);