diff widgets/LevelPanToolButton.cpp @ 1324:13d9b422f7fe zoom

Merge from default branch
author Chris Cannam
date Mon, 17 Sep 2018 13:51:31 +0100
parents 1589bc7528b7
children 27ea5d61b402
line wrap: on
line diff
--- a/widgets/LevelPanToolButton.cpp	Mon Dec 12 15:18:52 2016 +0000
+++ b/widgets/LevelPanToolButton.cpp	Mon Sep 17 13:51:31 2018 +0100
@@ -18,9 +18,12 @@
 #include <QMenu>
 #include <QWidgetAction>
 #include <QImage>
+#include <QMouseEvent>
 #include <QStylePainter>
 #include <QStyleOptionToolButton>
 
+#include "base/Debug.h"
+
 #include <iostream>
 using std::cerr;
 using std::endl;
@@ -49,6 +52,7 @@
 
     setPopupMode(InstantPopup);
     setMenu(menu);
+    setToolTip(tr("Click to adjust level and pan"));
 
     setImageSize(m_pixels);
     setBigImageSize(m_pixelsBig);
@@ -58,6 +62,25 @@
 {
 }
 
+void
+LevelPanToolButton::mousePressEvent(QMouseEvent *e)
+{
+    if (e->button() == Qt::MidButton ||
+        ((e->button() == Qt::LeftButton) &&
+         (e->modifiers() & Qt::ControlModifier))) {
+        m_lpw->setToDefault();
+        e->accept();
+    } else {
+        QToolButton::mousePressEvent(e);
+    }
+}
+
+void
+LevelPanToolButton::wheelEvent(QWheelEvent *e)
+{
+    m_lpw->wheelEvent(e);
+}
+
 float
 LevelPanToolButton::getLevel() const
 {
@@ -110,6 +133,13 @@
 }
 
 void
+LevelPanToolButton::setMonitoringLevels(float left, float right)
+{
+    m_lpw->setMonitoringLevels(left, right);
+    update();
+}
+
+void
 LevelPanToolButton::setIncludeMute(bool include)
 {
     m_lpw->setIncludeMute(include);
@@ -127,10 +157,10 @@
 LevelPanToolButton::selfLevelChanged(float level)
 {
     if (level > 0.f) {
-	m_muted = false;
+        m_muted = false;
     } else {
-	m_muted = true;
-	m_savedLevel = 1.f;
+        m_muted = true;
+        m_savedLevel = 1.f;
     }
     update();
 }
@@ -138,17 +168,15 @@
 void
 LevelPanToolButton::selfClicked()
 {
-    cerr << "selfClicked" << endl;
-    
     if (m_muted) {
-	m_muted = false;
-	m_lpw->setLevel(m_savedLevel);
-	emit levelChanged(m_savedLevel);
+        m_muted = false;
+        m_lpw->setLevel(m_savedLevel);
+        emit levelChanged(m_savedLevel);
     } else {
-	m_savedLevel = m_lpw->getLevel();
-	m_muted = true;
-	m_lpw->setLevel(0.f);
-	emit levelChanged(0.f);
+        m_savedLevel = m_lpw->getLevel();
+        m_muted = true;
+        m_lpw->setLevel(0.f);
+        emit levelChanged(0.f);
     }
     update();
 }
@@ -170,4 +198,18 @@
     m_lpw->renderTo(this, QRectF(margin, margin, m_pixels, m_pixels), false);
 }
 
+void
+LevelPanToolButton::enterEvent(QEvent *e)
+{
+    QToolButton::enterEvent(e);
+    emit mouseEntered();
+}
 
+void
+LevelPanToolButton::leaveEvent(QEvent *e)
+{
+    QToolButton::enterEvent(e);
+    emit mouseLeft();
+}
+
+