From c5aa22663e555524d34813dd00bf350e5d5ba33b Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Mon, 23 Jan 2017 09:35:43 +0100 Subject: [PATCH] allow drag track label button for moving track (#3271) * allow drag track label button for moving track * improve mouseclick * improve click 2 --- include/TrackLabelButton.h | 2 ++ src/gui/widgets/TrackLabelButton.cpp | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/TrackLabelButton.h b/include/TrackLabelButton.h index 918c29f83..7970397cf 100644 --- a/include/TrackLabelButton.h +++ b/include/TrackLabelButton.h @@ -51,6 +51,7 @@ protected: virtual void dropEvent( QDropEvent * _de ); virtual void mousePressEvent( QMouseEvent * _me ); virtual void mouseDoubleClickEvent( QMouseEvent * _me ); + virtual void mouseReleaseEvent( QMouseEvent * _me ); virtual void paintEvent( QPaintEvent * _pe ); @@ -58,6 +59,7 @@ private: TrackView * m_trackView; QString m_iconName; QLineEdit * m_renameLineEdit; + QRect m_buttonRect; } ; diff --git a/src/gui/widgets/TrackLabelButton.cpp b/src/gui/widgets/TrackLabelButton.cpp index b466ade89..4a6beddd9 100644 --- a/src/gui/widgets/TrackLabelButton.cpp +++ b/src/gui/widgets/TrackLabelButton.cpp @@ -146,7 +146,8 @@ void TrackLabelButton::mousePressEvent( QMouseEvent * _me ) } else { - QToolButton::mousePressEvent( _me ); + m_buttonRect = QRect( this->mapToGlobal( pos() ), size() ); + _me->ignore(); } } @@ -161,6 +162,19 @@ void TrackLabelButton::mouseDoubleClickEvent( QMouseEvent * _me ) +void TrackLabelButton::mouseReleaseEvent(QMouseEvent *_me) +{ + if( m_buttonRect.contains( _me->globalPos(), true ) ) + { + QToolButton::mousePressEvent( _me ); + } + QToolButton::mouseReleaseEvent( _me ); + _me->ignore(); +} + + + + void TrackLabelButton::paintEvent( QPaintEvent * _pe ) { if( m_trackView->getTrack()->type() == Track::InstrumentTrack )