diff --git a/mscore/musescore.cpp b/mscore/musescore.cpp index a862a3d07e2b9..49d51bf6a4640 100644 --- a/mscore/musescore.cpp +++ b/mscore/musescore.cpp @@ -5934,10 +5934,9 @@ void MuseScore::transpose() } //--------------------------------------------------------- -// cmdRealizeChordSymbols +// realizeChordSymbols /// Realize selected chord symbols into notes on the staff. -/// Currently just pops up a dialog to list TPCs, -/// Intervals, and pitches. +/// Display dialog to offer overrides to default behavior //--------------------------------------------------------- void MuseScore::realizeChordSymbols() diff --git a/mscore/propertymenu.cpp b/mscore/propertymenu.cpp index 9ed3514a8b0ee..04cb860c19242 100644 --- a/mscore/propertymenu.cpp +++ b/mscore/propertymenu.cpp @@ -198,7 +198,9 @@ void ScoreView::createElementPropertyMenu(Element* e, QMenu* popup) } else if (e->isHarmony()) { genPropertyMenu1(e, popup); - popup->addAction(getAction("realize-chord-symbols")); + QAction* a = getAction("realize-chord-symbols"); + if (a) + popup->addAction(a->text() + "…")->setData("realize-chord-symbols-dialog"); } else if (e->isTempoText()) genPropertyMenu1(e, popup); diff --git a/mscore/scoreview.cpp b/mscore/scoreview.cpp index a856d0ce2627a..a655419093725 100644 --- a/mscore/scoreview.cpp +++ b/mscore/scoreview.cpp @@ -372,10 +372,15 @@ void ScoreView::objectPopup(const QPoint& pos, Element* obj) mscore->selectSimilarInRange(obj); else if (cmd == "select-dialog") mscore->selectElementDialog(obj); - else if (cmd == "realize-chord-symbols") { + else if (cmd == "realize-chord-symbols-dialog") { if (obj->isEditable()) { - if (obj->score()) - obj->score()->select(obj, SelectType::ADD); + // try to construct a reasonable selection + if (obj->score()) { + Score* score = obj->score(); + if (score->selection().isRange()) + mscore->selectSimilarInRange(obj); + score->select(obj, SelectType::ADD); + } mscore->realizeChordSymbols(); } }