diff --git a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h index 0874972..e3189f3 100644 --- a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h +++ b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h @@ -16,6 +16,9 @@ public: void onMouseMove(QMouseEvent *event) noexcept; + /// Shows or hides graph overlay (name, close button, etc.) + void showGraphOverlay(bool show) noexcept; + private: class VisualizationGraphRenderingDelegatePrivate; spimpl::unique_impl_ptr impl; diff --git a/gui/include/Visualization/VisualizationGraphWidget.h b/gui/include/Visualization/VisualizationGraphWidget.h index b695f09..c396c82 100644 --- a/gui/include/Visualization/VisualizationGraphWidget.h +++ b/gui/include/Visualization/VisualizationGraphWidget.h @@ -57,6 +57,9 @@ signals: void variableAdded(std::shared_ptr var); +protected: + void enterEvent(QEvent *event) override; + void leaveEvent(QEvent *event) override; QCustomPlot &plot() noexcept; diff --git a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp index 0df228c..dfc70ca 100644 --- a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp +++ b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp @@ -160,3 +160,10 @@ void VisualizationGraphRenderingDelegate::onMouseMove(QMouseEvent *event) noexce } } } + +void VisualizationGraphRenderingDelegate::showGraphOverlay(bool show) noexcept +{ + auto overlay = impl->m_Plot.layer(OVERLAY_LAYER); + overlay->setVisible(show); + overlay->replot(); +} diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index d81ec54..c5b9b95 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -204,6 +204,18 @@ QString VisualizationGraphWidget::name() const return impl->m_Name; } +void VisualizationGraphWidget::enterEvent(QEvent *event) +{ + Q_UNUSED(event); + impl->m_RenderingDelegate->showGraphOverlay(true); +} + +void VisualizationGraphWidget::leaveEvent(QEvent *event) +{ + Q_UNUSED(event); + impl->m_RenderingDelegate->showGraphOverlay(false); +} + QCustomPlot &VisualizationGraphWidget::plot() noexcept { return *ui->widget;