diff options
Diffstat (limited to 'src/waveform/renderers/waveformwidgetrenderer.cpp')
-rw-r--r-- | src/waveform/renderers/waveformwidgetrenderer.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/waveform/renderers/waveformwidgetrenderer.cpp b/src/waveform/renderers/waveformwidgetrenderer.cpp index 8c37c2d2cd..fb1de6cd7c 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.cpp +++ b/src/waveform/renderers/waveformwidgetrenderer.cpp @@ -288,3 +288,30 @@ void WaveformWidgetRenderer::setTrack(TrackPointer track) { m_rendererStack[i]->onSetTrack(); } } + +std::optional<CuePointer> WaveformWidgetRenderer::getCueAtPoint(QPoint point) { + WaveformMarkPointer pSelectedMark; + for (auto pMark : m_markBoundaries.keys()) { + if (m_markBoundaries[pMark].contains(point)) { + pSelectedMark = pMark; + break; + } + } + if (!pSelectedMark) { + return std::nullopt; + } + + CuePointer pSelectedCue; + QList<CuePointer> cueList = getTrackInfo()->getCuePoints(); + for (const auto& pCue : cueList) { + if (pCue->getHotCue() == pSelectedMark->getHotCue()) { + pSelectedCue = pCue; + break; + } + } + if (pSelectedCue != nullptr) { + return pSelectedCue; + } + + return std::nullopt; +} |