From 0f64da6e5a36729218f3d3f5ba5b127be7defbf2 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Mon, 18 Apr 2011 16:16:42 +0000 Subject: score editor now listens to most (if not all) interesting signals and redraws changed pcanvas.cpp to emit a signal when changing a part's color changed app.cpp to not connect scoreedit's configChanged slot --- muse2/muse/arranger/pcanvas.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'muse2/muse/arranger/pcanvas.cpp') diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index e2c2b32d..6068c743 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -994,7 +994,8 @@ void PartCanvas::itemPopup(CItem* item, int n, const QPoint& pt) // If no items selected, use the one clicked on. if(!selfound) item->part()->setColorIndex(curColorIndex); - + + song->update(SC_PART_MODIFIED); redraw(); break; } -- cgit v1.2.3 From 928081edaa0752e14577c36b6b595ab38079224a Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Tue, 26 Apr 2011 18:33:00 +0000 Subject: added "new score window"-menu-entry for quickly opening a new score window with one staff per track added "score"-entries for the popup-menu in the arranger changed arranger's popup-menu: now the pianoroll etc. actions are the same as the "Edit"-Menu's actions --- muse2/muse/app.cpp | 13 +++++++++++-- muse2/muse/app.h | 11 +++++++---- muse2/muse/arranger/pcanvas.cpp | 24 +++++++----------------- muse2/muse/midiedit/scoreedit.cpp | 8 ++++---- muse2/muse/widgets/canvas.cpp | 2 +- 5 files changed, 30 insertions(+), 28 deletions(-) (limited to 'muse2/muse/arranger/pcanvas.cpp') diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp index 9bbe8736..80a7b7ef 100644 --- a/muse2/muse/app.cpp +++ b/muse2/muse/app.cpp @@ -999,9 +999,13 @@ MusE::MusE(int argc, char** argv) : QMainWindow() scoreAllInOneSubsubmenu = new QMenu(tr("all parts in one staff"), this); scoreOneStaffPerTrackSubsubmenu = new QMenu(tr("one staff per part"), this); + + scoreSubmenu->addMenu(scoreAllInOneSubsubmenu); + scoreSubmenu->addMenu(scoreOneStaffPerTrackSubsubmenu); updateScoreMenus(); + startScoreEditAction = new QAction(*scoreIconSet, tr("New score window"), this); startPianoEditAction = new QAction(*pianoIconSet, tr("Pianoroll"), this); startDrumEditAction = new QAction(QIcon(*edit_drummsIcon), tr("Drums"), this); startListEditAction = new QAction(QIcon(*edit_listIcon), tr("List"), this); @@ -1151,6 +1155,7 @@ MusE::MusE(int argc, char** argv) : QMainWindow() connect(editSignalMapper, SIGNAL(mapped(int)), this, SLOT(cmd(int))); connect(startPianoEditAction, SIGNAL(activated()), SLOT(startPianoroll())); + connect(startScoreEditAction, SIGNAL(activated()), SLOT(startScoreQuickly())); connect(startDrumEditAction, SIGNAL(activated()), SLOT(startDrumEditor())); connect(startListEditAction, SIGNAL(activated()), SLOT(startListEditor())); connect(startWaveEditAction, SIGNAL(activated()), SLOT(startWaveEditor())); @@ -1373,8 +1378,7 @@ MusE::MusE(int argc, char** argv) : QMainWindow() menuEdit->addAction(startPianoEditAction); menuEdit->addMenu(scoreSubmenu); - scoreSubmenu->addMenu(scoreAllInOneSubsubmenu); - scoreSubmenu->addMenu(scoreOneStaffPerTrackSubsubmenu); + menuEdit->addAction(startScoreEditAction); menuEdit->addAction(startDrumEditAction); menuEdit->addAction(startListEditAction); menuEdit->addAction(startWaveEditAction); @@ -3536,6 +3540,11 @@ void MusE::openInScoreEdit(ScoreEdit* destination, PartList* pl, bool allInOne) destination->add_parts(pl, allInOne); } +void MusE::startScoreQuickly() +{ + openInScoreEdit_oneStaffPerTrack(NULL); +} + //--------------------------------------------------------- // startPianoroll //--------------------------------------------------------- diff --git a/muse2/muse/app.h b/muse2/muse/app.h index 8a9fdac0..2fd83854 100644 --- a/muse2/muse/app.h +++ b/muse2/muse/app.h @@ -69,6 +69,8 @@ class ScoreEdit; #define MENU_ADD_SYNTH_ID_BASE 0x1000 + + //--------------------------------------------------------- // MusE //--------------------------------------------------------- @@ -110,12 +112,14 @@ class MusE : public QMainWindow QAction *editInvertSelectionAction, *editInsideLoopAction, *editOutsideLoopAction, *editAllPartsAction; QAction *trackMidiAction, *trackDrumAction, *trackWaveAction, *trackAOutputAction, *trackAGroupAction; QAction *trackAInputAction, *trackAAuxAction; - QAction *startPianoEditAction, *startDrumEditAction, *startListEditAction, *startWaveEditAction; QAction *masterGraphicAction, *masterListAction; QAction *midiTransposeAction; QAction *midiTransformerAction; QAction *editSongInfoAction; - + public: + QAction *startScoreEditAction, *startPianoEditAction, *startDrumEditAction, *startListEditAction, *startWaveEditAction; + QMenu *scoreSubmenu, *scoreOneStaffPerTrackSubsubmenu, *scoreAllInOneSubsubmenu; + private: // View Menu actions QAction *viewTransportAction, *viewBigtimeAction, *viewMixerAAction, *viewMixerBAction, *viewCliplistAction, *viewMarkerAction; @@ -159,7 +163,6 @@ class MusE : public QMainWindow QMenu* menu_audio, *menuAutomation; QMenu* menu_functions, *menuScriptPlugins; QMenu* select, *master, *midiEdit, *addTrack; - QMenu *scoreSubmenu, *scoreOneStaffPerTrackSubsubmenu, *scoreAllInOneSubsubmenu; // Special 'stay-open' menu for routes. PopupMenu* routingPopupMenu; @@ -273,7 +276,7 @@ class MusE : public QMainWindow void clearScoreMenuMappers(); void updateScoreMenus(); void scoreNamingChanged(); - + void startScoreQuickly(); void startPianoroll(); void startPianoroll(PartList* /*pl*/, bool /*showDefaultCtrls*/ = false); void startWaveEditor(); diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index 6068c743..c76e4421 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -783,19 +783,17 @@ QMenu* PartCanvas::genItemPopup(CItem* item) partPopup->addSeparator(); switch(trackType) { case Track::MIDI: { - QAction *act_pianoroll = partPopup->addAction(QIcon(*pianoIconSet), tr("pianoroll")); - act_pianoroll->setData(10); - QAction *act_mlist = partPopup->addAction(QIcon(*edit_listIcon), tr("list")); - act_mlist->setData(12); + partPopup->addAction(muse->startPianoEditAction); + partPopup->addMenu(muse->scoreSubmenu); + partPopup->addAction(muse->startScoreEditAction); + partPopup->addAction(muse->startListEditAction); QAction *act_mexport = partPopup->addAction(tr("save part to disk")); act_mexport->setData(16); } break; case Track::DRUM: { - QAction *act_dlist = partPopup->addAction(QIcon(*edit_listIcon), tr("list")); - act_dlist->setData(12); - QAction *act_drums = partPopup->addAction(QIcon(*edit_drummsIcon), tr("drums")); - act_drums->setData(13); + partPopup->addAction(muse->startDrumEditAction); + partPopup->addAction(muse->startListEditAction); QAction *act_dexport = partPopup->addAction(tr("save part to disk")); act_dexport->setData(16); } @@ -866,15 +864,7 @@ void PartCanvas::itemPopup(CItem* item, int n, const QPoint& pt) case 5: copy(pl); break; - case 10: // pianoroll edit - emit startEditor(pl, 0); - return; - case 12: // list edit - emit startEditor(pl, 1); - return; - case 13: // drum edit - emit startEditor(pl, 3); - return; + case 14: // wave edit { // Changed to allow multiple selected parts to be shown. By T356 diff --git a/muse2/muse/midiedit/scoreedit.cpp b/muse2/muse/midiedit/scoreedit.cpp index 98568325..de397c30 100644 --- a/muse2/muse/midiedit/scoreedit.cpp +++ b/muse2/muse/midiedit/scoreedit.cpp @@ -3469,10 +3469,6 @@ set staff_t::parts_at_tick(unsigned tick) * x nothing atm * * less important stuff - * o use the proper quantisation functions instead of - * flo_quantize() and flo_quantize_floor() - * o let the user set up SPLIT_NOTE - * o let the user decide about the initial clef (search for FINDME_INITCLEF) * o deal with expanding parts or clip (expanding is better) * o offer functions like in the pianoroll: quantize etc. * o support selections @@ -3488,6 +3484,10 @@ set staff_t::parts_at_tick(unsigned tick) * keeping its own pos_add variable (which is only an optimisation) * o draw a margin around notes which are in a bright color * o refuse to resize so that width gets smaller or equal than x_left + * o use the proper quantisation functions instead of + * flo_quantize() and flo_quantize_floor() + * o let the user set up SPLIT_NOTE + * o let the user decide about the initial clef (search for FINDME_INITCLEF) * * stuff for the other muse developers * o process accurate timesignatures from muse's list (has to be implemented first in muse) diff --git a/muse2/muse/widgets/canvas.cpp b/muse2/muse/widgets/canvas.cpp index 596e4067..14f414b7 100644 --- a/muse2/muse/widgets/canvas.cpp +++ b/muse2/muse/widgets/canvas.cpp @@ -557,7 +557,7 @@ void Canvas::viewMousePressEvent(QMouseEvent* event) itemPopupMenu = genItemPopup(curItem); if (itemPopupMenu) { QAction *act = itemPopupMenu->exec(QCursor::pos()); - if (act) + if (act && act->data().isValid()) itemPopup(curItem, act->data().toInt(), start); delete itemPopupMenu; } -- cgit v1.2.3