Mercurial > hg > svgui
changeset 658:050404ae7799 tonioni
toggle button for boundary constraints and note recalculation
author | gyorgyf |
---|---|
date | Thu, 20 Jun 2013 10:58:40 +0100 |
parents | ac26de7b727a |
children | 8663a831838f |
files | layer/FlexiNoteLayer.cpp layer/FlexiNoteLayer.h |
diffstat | 2 files changed, 17 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/layer/FlexiNoteLayer.cpp Wed Jun 19 22:56:17 2013 +0100 +++ b/layer/FlexiNoteLayer.cpp Thu Jun 20 10:58:40 2013 +0100 @@ -61,7 +61,8 @@ m_editingCommand(0), m_verticalScale(AutoAlignScale), m_scaleMinimum(34), - m_scaleMaximum(77) + m_scaleMaximum(77), + m_intelligentActions(true) { } @@ -1019,10 +1020,10 @@ switch (m_editMode) { case LeftBoundary : { - // left - if (dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; + // left + if (m_intelligentActions && dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; // right - if (dragFrame >= m_originalPoint.frame + m_originalPoint.duration) { + if (m_intelligentActions && dragFrame >= m_originalPoint.frame + m_originalPoint.duration) { dragFrame = m_originalPoint.frame + m_originalPoint.duration - 1; } m_editingPoint.frame = dragFrame; @@ -1031,16 +1032,16 @@ } case RightBoundary : { // left - if (dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; - if (dragFrame >= m_smallestRightNeighbourFrame) dragFrame = m_smallestRightNeighbourFrame - 1; + if (m_intelligentActions && dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; + if (m_intelligentActions && dragFrame >= m_smallestRightNeighbourFrame) dragFrame = m_smallestRightNeighbourFrame - 1; m_editingPoint.duration = dragFrame - m_originalPoint.frame + 1; break; } case DragNote : { // left - if (dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; + if (m_intelligentActions && dragFrame <= m_greatestLeftNeighbourFrame) dragFrame = m_greatestLeftNeighbourFrame + 1; // right - if (dragFrame + m_originalPoint.duration >= m_smallestRightNeighbourFrame) { + if (m_intelligentActions && dragFrame + m_originalPoint.duration >= m_smallestRightNeighbourFrame) { dragFrame = m_smallestRightNeighbourFrame - m_originalPoint.duration; } m_editingPoint.frame = dragFrame; @@ -1137,9 +1138,11 @@ FlexiNote newNote2(frame, note.value, note.duration - newNote1.duration, note.level, note.label); - - updateNoteValue(v,newNote1); - updateNoteValue(v,newNote2); + + if (m_intelligentActions) { + updateNoteValue(v,newNote1); + updateNoteValue(v,newNote2); + } FlexiNoteModel::EditCommand *command = new FlexiNoteModel::EditCommand (m_model, tr("Edit Point"));
--- a/layer/FlexiNoteLayer.h Wed Jun 19 22:56:17 2013 +0100 +++ b/layer/FlexiNoteLayer.h Thu Jun 20 10:58:40 2013 +0100 @@ -96,6 +96,8 @@ SplitNote, LeftBoundary }; + + void setIntelligentActions(bool on) { m_intelligentActions=on; } void setVerticalScale(VerticalScale scale); VerticalScale getVerticalScale() const { return m_verticalScale; } @@ -161,6 +163,7 @@ FlexiNoteModel *m_model; bool m_editing; + bool m_intelligentActions; int m_dragPointX; int m_dragPointY; int m_dragStartX;