From 543dbb22e201208aee602a1c56ab92d8b9adb53f Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sat, 27 Aug 2011 15:33:32 +0000 Subject: deselecting a part now also deselects the track --- muse2/muse/arranger/pcanvas.cpp | 24 ++++++++++++++---------- muse2/muse/arranger/tlist.cpp | 32 ++++++++++++++++---------------- muse2/muse/midiedit/scoreedit.cpp | 15 +++++++++++---- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index cf376042..56d68ceb 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -828,25 +828,29 @@ void PartCanvas::mousePress(QMouseEvent* event) } QPoint pt = event->pos(); CItem* item = items.find(pt); - if (item == 0 && _tool!=AutomationTool) - return; + switch (_tool) { default: - emit trackChanged(item->part()->track()); + if (item) + emit trackChanged(item->part()->track()); + else + emit trackChanged(NULL); break; case CutTool: - splitItem(item, pt); + if (item) splitItem(item, pt); break; case GlueTool: - glueItem(item); + if (item) glueItem(item); break; case MuteTool: { - NPart* np = (NPart*) item; - Part* p = np->part(); - p->setMute(!p->mute()); - redraw(); - break; + if (item) { + NPart* np = (NPart*) item; + Part* p = np->part(); + p->setMute(!p->mute()); + redraw(); + break; + } } case AutomationTool: if (automation.controllerState != doNothing) diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp index 6fe2f31d..903c78ba 100644 --- a/muse2/muse/arranger/tlist.cpp +++ b/muse2/muse/arranger/tlist.cpp @@ -1384,24 +1384,24 @@ void TList::mousePressEvent(QMouseEvent* ev) // selectTrack //--------------------------------------------------------- void TList::selectTrack(Track* tr) - { - song->deselectTracks(); - tr->setSelected(true); - +{ + song->deselectTracks(); - // rec enable track if expected - TrackList recd = getRecEnabledTracks(); - if (recd.size() == 1 && config.moveArmedCheckBox) { // one rec enabled track, move rec enabled with selection - song->setRecordFlag((Track*)recd.front(),false); - song->setRecordFlag(tr,true); - } + if (tr) { + tr->setSelected(true); - // By T356. Force a redraw for wave tracks, since it does not seem to happen. - //if(!tr->isMidiTrack()) - redraw(); - ///emit selectionChanged(); - emit selectionChanged(tr); - } + + // rec enable track if expected + TrackList recd = getRecEnabledTracks(); + if (recd.size() == 1 && config.moveArmedCheckBox) { // one rec enabled track, move rec enabled with selection + song->setRecordFlag((Track*)recd.front(),false); + song->setRecordFlag(tr,true); + } + } + + redraw(); + emit selectionChanged(tr); +} //--------------------------------------------------------- // selectTrackAbove diff --git a/muse2/muse/midiedit/scoreedit.cpp b/muse2/muse/midiedit/scoreedit.cpp index 6a0f2d87..6bc60205 100644 --- a/muse2/muse/midiedit/scoreedit.cpp +++ b/muse2/muse/midiedit/scoreedit.cpp @@ -4455,6 +4455,17 @@ void staff_t::update_part_indices() * journey to the menu bar. try to find a way which does not involve duplicate code! * o implement borland-style maximize: free windows do not cover the main menu, even when maximized * + * o window menu -> "arrange" -> "all in rows" / "all in columns" + * o add everything of the function-menus of the midieditors to + * the arranger; except "move notes": call it "move parts" and + * actually move parts not notes + * o replace "insert empty measure" by a "global insert"-like operation + * o replace "insert" and "paste" by a paste-dialog ("move other notes" or "overwrite notes" or "mix with notes") + * skip dialog when there is nothing to erase, move or merge with (i.e., at the end of the song) + * o remove movePartsTotheRight function + * o ctrl+v uses default settings, ctrl+shift+v shows a dialog (with a "this is default" button) + * o ctrl+b and ctrl+shift+b do the same, only that they paste as clones + * * IMPORTANT TODO * ! o fix sigedit boxes * @@ -4464,11 +4475,7 @@ void staff_t::update_part_indices() * or even "set marker and select between immediately" * o support partially selected parts. when moving, automatically split * - * o maybe remove "insert empty measure"? - * o add "move other notes" or "overwrite notes" or "mix with notes" to paste * o shrink a part from its beginning as well! watch out for clones! - * o insert empty measure should also work inside parts, that is, - * move notes _within_ parts * * o canvas editor: create clone via "alt+drag" moves window instead * o investigate with valgrind -- cgit v1.2.3