summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-10-03 14:02:55 +0000
committerFlorian Jung <flo@windfisch.org>2011-10-03 14:02:55 +0000
commit890ee8999eaca679fa1874adf3f572f365138e29 (patch)
tree0e441d2a3f0ff9d50eb1e1137953d73caf40527a
parentd2427fa3b72eeb897ab214b38572009e6e4f4987 (diff)
drum map changes are now handled properly
-rw-r--r--muse2/muse/midiedit/dcanvas.cpp4
-rw-r--r--muse2/muse/midiedit/dlist.cpp9
-rw-r--r--muse2/muse/midiedit/drumedit.cpp6
3 files changed, 14 insertions, 5 deletions
diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp
index 8e2f284d..35236e87 100644
--- a/muse2/muse/midiedit/dcanvas.cpp
+++ b/muse2/muse/midiedit/dcanvas.cpp
@@ -977,7 +977,9 @@ void DrumCanvas::mapChanged(int spitch, int dpitch)
}
- song->update(SC_DRUMMAP);
+ song->update(SC_DRUMMAP); // this causes a complete rebuild of ourDrumMap
+ // which also handles the changed order in all
+ // other drum editors
}
}
diff --git a/muse2/muse/midiedit/dlist.cpp b/muse2/muse/midiedit/dlist.cpp
index c35f2a21..85382c4a 100644
--- a/muse2/muse/midiedit/dlist.cpp
+++ b/muse2/muse/midiedit/dlist.cpp
@@ -413,7 +413,8 @@ void DList::viewMousePressEvent(QMouseEvent* ev)
if (!old_style_drummap_mode && dm_old != *dm) //something changed and we're in new style mode?
dcanvas->propagate_drummap_change(dm-ourDrumMap);
- redraw();
+ song->update(SC_DRUMMAP);
+ //redraw(); //this is done by the songChanged slot
}
//---------------------------------------------------------
@@ -686,7 +687,8 @@ void DList::returnPressed()
editor->hide();
editEntry = 0;
setFocus();
- redraw();
+ song->update(SC_DRUMMAP);
+ //redraw(); //this is done by the songChanged slot
}
//---------------------------------------------------------
@@ -751,7 +753,8 @@ void DList::pitchEdited()
pitch_editor->hide();
editEntry = 0;
setFocus();
- redraw();
+ song->update(SC_DRUMMAP);
+ //redraw(); //this is done by the songChanged slot
}
//---------------------------------------------------------
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index ce261425..92cc765a 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -587,8 +587,12 @@ void DrumEdit::songChanged1(int bits)
toolbar->setSolo(canvas->track()->solo());
return;
}
+ if ( !old_style_drummap_mode() &&
+ ( bits & (SC_DRUMMAP | SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_TRACK_MODIFIED |
+ SC_PART_INSERTED | SC_PART_REMOVED | SC_PART_MODIFIED) ) )
+ ((DrumCanvas*)(canvas))->rebuildOurDrumMap();
+
songChanged(bits);
-
}
//---------------------------------------------------------