summaryrefslogtreecommitdiff
path: root/muse2/muse/midiedit/drumedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/midiedit/drumedit.cpp')
-rw-r--r--muse2/muse/midiedit/drumedit.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index 84d4bf5b..617d3d1f 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -234,14 +234,23 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
fixedAction = menuFunctions->addAction(tr("Set Fixed Length"));
veloAction = menuFunctions->addAction(tr("Modify Velocity"));
quantizeAction = menuFunctions->addAction(tr("Quantize"));
+ QAction* eraseEventAction = menuFunctions->addAction(tr("Erase Event"));
+ QAction* noteShiftAction = menuFunctions->addAction(tr("Note Shift"));
+ QAction* delOverlapsAction = menuFunctions->addAction(tr("Delete Overlaps"));
connect(fixedAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
connect(veloAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
connect(quantizeAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(eraseEventAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(noteShiftAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(delOverlapsAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
signalMapper->setMapping(fixedAction, DrumCanvas::CMD_FIXED_LEN);
signalMapper->setMapping(veloAction, DrumCanvas::CMD_MODIFY_VELOCITY);
signalMapper->setMapping(quantizeAction, DrumCanvas::CMD_QUANTIZE);
+ signalMapper->setMapping(eraseEventAction, DrumCanvas::CMD_ERASE_EVENT);
+ signalMapper->setMapping(noteShiftAction, DrumCanvas::CMD_NOTE_SHIFT);
+ signalMapper->setMapping(delOverlapsAction, DrumCanvas::CMD_DELETE_OVERLAPS);
QMenu* menuScriptPlugins = menuBar()->addMenu(tr("&Plugins"));
song->populateScriptMenu(menuScriptPlugins, this);
@@ -877,21 +886,18 @@ void DrumEdit::reset()
void DrumEdit::cmd(int cmd)
{
switch(cmd) {
- case DrumCanvas::CMD_LOAD:
- load();
- break;
- case DrumCanvas::CMD_SAVE:
- save();
- break;
- case DrumCanvas::CMD_RESET:
- reset();
- break;
- case DrumCanvas::CMD_MODIFY_VELOCITY:
- modify_velocity(partlist_to_set(parts()));
- break;
- default:
- ((DrumCanvas*)(canvas))->cmd(cmd);
- break;
+ case DrumCanvas::CMD_LOAD: load(); break;
+ case DrumCanvas::CMD_SAVE: save(); break;
+ case DrumCanvas::CMD_RESET: reset(); break;
+ case DrumCanvas::CMD_MODIFY_VELOCITY: modify_velocity(partlist_to_set(parts())); break;
+ case DrumCanvas::CMD_ERASE_EVENT: erase_notes(partlist_to_set(parts())); break;
+ case DrumCanvas::CMD_DEL: erase_notes(partlist_to_set(parts()),1); break; //delete selected events
+ case DrumCanvas::CMD_DELETE_OVERLAPS: delete_overlaps(partlist_to_set(parts())); break;
+ case DrumCanvas::CMD_NOTE_SHIFT: move_notes(partlist_to_set(parts())); break;
+ //case DrumCanvas::CMD_FIXED_LEN: // this must be handled by the drum canvas, due to its
+ // special nature (each drum has its own length)
+
+ default: ((DrumCanvas*)(canvas))->cmd(cmd);
}
}