Mercurial > hg > svgui
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(); +} + +