diff --git a/ChangeLog b/ChangeLog index 571d81342..53a82cd64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-12-14 Andrew Kelley + + * include/piano_roll.h: + * src/gui/piano_roll.cpp: + double click in the note edit area to clear selected notes (allowing you + to edit note velocities/panning for all notes) + 2008-12-14 Tobias Doerffel * CMakeLists.txt: diff --git a/TODO b/TODO index 0c09a6226..a88f56fd5 100644 --- a/TODO +++ b/TODO @@ -52,8 +52,11 @@ - add FLAC as export-format? Andrew Kelley's todo: +- when setting a new note, set panning and volume to that of last note +- figure out a way to not make editing note volume awkward. AKA don't select notes just by clicking on them, and don't select newly created notes + + - if you press both controls at the same time, the piano roll gets stuck in selection mode -- change my modifier code to use mainwindows modifier info - multiview button - show notes from every instrument in the current beat+bassline with different colors - undo/redo for piano roll - add a tools menu to piano roll @@ -62,8 +65,6 @@ Andrew Kelley's todo: * quick slice * look through FL Studio's tools and implement some of them - when looking at a piano roll, if the song is playing that pattern, move the position ticker to where it should be -- double-click in note edit area to clear selection (assuming the intent of editing all notes) -- when setting a new note, set panning and volume to that of last note - recording automation - make knobs easier to tune (less sensitive) diff --git a/include/piano_roll.h b/include/piano_roll.h index 6907cbd49..4de787707 100644 --- a/include/piano_roll.h +++ b/include/piano_roll.h @@ -89,6 +89,7 @@ protected: virtual void keyReleaseEvent( QKeyEvent * _ke ); virtual void leaveEvent( QEvent * _e ); virtual void mousePressEvent( QMouseEvent * _me ); + virtual void mouseDoubleClickEvent( QMouseEvent * _me ); virtual void mouseReleaseEvent( QMouseEvent * _me ); virtual void mouseMoveEvent( QMouseEvent * _me ); virtual void paintEvent( QPaintEvent * _pe ); diff --git a/src/gui/piano_roll.cpp b/src/gui/piano_roll.cpp index ea1726cd8..a903d517f 100644 --- a/src/gui/piano_roll.cpp +++ b/src/gui/piano_roll.cpp @@ -1556,6 +1556,24 @@ void pianoRoll::mousePressEvent( QMouseEvent * _me ) +void pianoRoll::mouseDoubleClickEvent( QMouseEvent * _me ) +{ + if( validPattern() == false ) + { + return; + } + + // if they clicked in the note edit area, clear selection + if( _me->x() > noteEditLeft() && _me->x() < noteEditRight() + && _me->y() > noteEditTop() && _me->y() < noteEditBottom() ) + { + clearSelectedNotes(); + } +} + + + + void pianoRoll::testPlayNote( note * n ) { m_lastKey = n->key();