Skip to content

Commit 60aaa1a

Browse files
committed
GUI - add mouse scroll behaviour to scrubbers
1 parent b1a0fb4 commit 60aaa1a

File tree

4 files changed

+34
-0
lines changed

4 files changed

+34
-0
lines changed

app/gui/qt/widgets/bpmscrubwidget.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,22 @@ void BPMScrubWidget::mouseMoveEvent(QMouseEvent* event)
166166
}
167167
}
168168

169+
void BPMScrubWidget::wheelEvent(QWheelEvent* event)
170+
{
171+
172+
QPoint numPixels = event->pixelDelta() / 4;
173+
QPoint numDegrees = event->angleDelta() / 8;
174+
175+
if (!numPixels.isNull()) {
176+
setDisplayAndSyncBPM(m_bpmValue - numPixels.y());
177+
} else if (!numDegrees.isNull()) {
178+
QPoint numSteps = numDegrees / 15;
179+
setDisplayAndSyncBPM(m_bpmValue - numSteps.y());
180+
}
181+
182+
event->accept();
183+
}
184+
169185
void BPMScrubWidget::mouseDoubleClickEvent(QMouseEvent* event)
170186
{
171187
m_isDragging = false;

app/gui/qt/widgets/bpmscrubwidget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public slots:
5050
void mouseDoubleClickEvent(QMouseEvent * event);
5151
void keyPressEvent(QKeyEvent* event);
5252
void keyReleaseEvent(QKeyEvent* event);
53+
void wheelEvent(QWheelEvent * event);
5354

5455
private:
5556
std::shared_ptr<SonicPi::QtAPIClient> m_spClient;

app/gui/qt/widgets/timewarpedit.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,22 @@ void TimeWarpEdit::mouseMoveEvent(QMouseEvent* event)
111111
}
112112
}
113113

114+
void TimeWarpEdit::wheelEvent(QWheelEvent* event)
115+
{
116+
117+
QPoint numPixels = event->pixelDelta() / 4;
118+
QPoint numDegrees = event->angleDelta() / 8;
119+
120+
if (!numPixels.isNull()) {
121+
setDisplayAndWarpToTime(m_timeWarpValue - numPixels.y());
122+
} else if (!numDegrees.isNull()) {
123+
QPoint numSteps = numDegrees / 15;
124+
setDisplayAndWarpToTime(m_timeWarpValue - numSteps.y());
125+
}
126+
127+
event->accept();
128+
}
129+
114130
void TimeWarpEdit::mouseDoubleClickEvent(QMouseEvent* event)
115131
{
116132
m_isDragging = false;

app/gui/qt/widgets/timewarpedit.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public slots:
4545
void mouseDoubleClickEvent(QMouseEvent * event);
4646
void keyPressEvent(QKeyEvent* event);
4747
void keyReleaseEvent(QKeyEvent* event);
48+
void wheelEvent(QWheelEvent * event);
4849

4950
private:
5051
std::shared_ptr<SonicPi::QtAPIClient> m_spClient;

0 commit comments

Comments
 (0)