summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-04-26 18:33:00 +0000
committerFlorian Jung <flo@windfisch.org>2011-04-26 18:33:00 +0000
commit928081edaa0752e14577c36b6b595ab38079224a (patch)
treef84f7a919d7bfe95929e63e0c12c13acfc6a66c7
parentcea0fdb5f411c7af11f588191bccf4b643536594 (diff)
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
-rw-r--r--muse2/muse/app.cpp13
-rw-r--r--muse2/muse/app.h11
-rw-r--r--muse2/muse/arranger/pcanvas.cpp24
-rw-r--r--muse2/muse/midiedit/scoreedit.cpp8
-rw-r--r--muse2/muse/widgets/canvas.cpp2
5 files changed, 30 insertions, 28 deletions
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<Part*> 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<Part*> 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;
}