From c19f97629f27c758d63038c5b473d166a75da520 Mon Sep 17 00:00:00 2001 From: baydam Date: Sat, 7 Apr 2018 20:50:46 +0000 Subject: [PATCH] By default show controls on output on if it is hovered by mouse --- src/gui/OutputGLCanvas.cpp | 17 +++++++++++++++-- src/gui/OutputGLCanvas.h | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/gui/OutputGLCanvas.cpp b/src/gui/OutputGLCanvas.cpp index 6bdb1a0..4e09ced 100644 --- a/src/gui/OutputGLCanvas.cpp +++ b/src/gui/OutputGLCanvas.cpp @@ -27,7 +27,8 @@ namespace mmp { OutputGLCanvas::OutputGLCanvas(MainWindow* mainWindow, QWidget* parent, const QGLWidget* shareWidget, QGraphicsScene* scene) : MapperGLCanvas(mainWindow, true, parent, shareWidget, scene), _displayCrosshair(false), - _displayTestSignal(false) + _displayTestSignal(false), + _windowIsHovered(false) { // Disable scrollbars. setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -68,7 +69,7 @@ void OutputGLCanvas::drawForeground(QPainter *painter , const QRectF &rect) painter->restore(); glPopMatrix(); } - else + else if (MainWindow::window()->displayControls() && _windowIsHovered) { MapperGLCanvas::drawForeground(painter, rect); @@ -107,6 +108,18 @@ void OutputGLCanvas::drawForeground(QPainter *painter , const QRectF &rect) } +void OutputGLCanvas::enterEvent(QEvent *event) +{ + _windowIsHovered = true; + QGraphicsView::enterEvent(event); +} + +void OutputGLCanvas::leaveEvent(QEvent *event) +{ + _windowIsHovered = false; + QGraphicsView::leaveEvent(event); +} + void OutputGLCanvas::_drawClassicTestSignal(QPainter* painter) { const QRect& geo = geometry(); diff --git a/src/gui/OutputGLCanvas.h b/src/gui/OutputGLCanvas.h index 075f6d2..21b1e3f 100644 --- a/src/gui/OutputGLCanvas.h +++ b/src/gui/OutputGLCanvas.h @@ -62,6 +62,7 @@ private: QBrush _brush_test_signal; QImage _palTestCard; QImage _ntscTestCard; + bool _windowIsHovered; protected: // overriden from QGlWidget: @@ -69,6 +70,8 @@ protected: void wheelEvent(QWheelEvent *event); void mouseMoveEvent(QMouseEvent *event); + void enterEvent(QEvent * event); + void leaveEvent(QEvent *event); }; }