summaryrefslogtreecommitdiff
path: root/muse2
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-08-27 15:33:32 +0000
committerFlorian Jung <flo@windfisch.org>2011-08-27 15:33:32 +0000
commit543dbb22e201208aee602a1c56ab92d8b9adb53f (patch)
tree61ed8cf3d0103c9dea69f9e6c38de73e0e6ad3b0 /muse2
parent7cd849e0402ab587958d45b295a3a385a7ab3c0e (diff)
deselecting a part now also deselects the track
Diffstat (limited to 'muse2')
-rw-r--r--muse2/muse/arranger/pcanvas.cpp24
-rw-r--r--muse2/muse/arranger/tlist.cpp32
-rw-r--r--muse2/muse/midiedit/scoreedit.cpp15
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