Merge pull request #2081 from MarcSabatella/65861-paste-single-harmony

fix #65861: paste of single chord symbol does not transpose
This commit is contained in:
Nicolas Froment 2015-06-22 20:33:01 +02:00
commit 7cbadc9b4a
2 changed files with 15 additions and 2 deletions

View file

@ -41,6 +41,7 @@
#include "harmony.h"
#include "figuredbass.h"
#include "icon.h"
#include "utils.h"
namespace Ms {
@ -882,7 +883,19 @@ Element* ChordRest::drop(const DropData& data)
break;
case Element::Type::HARMONY:
static_cast<Harmony*>(e)->render();
{
// transpose
Harmony* harmony = static_cast<Harmony*>(e);
Interval interval = staff()->part()->instrument()->transpose();
if (!score()->styleB(StyleIdx::concertPitch) && !interval.isZero()) {
interval.flip();
int rootTpc = transposeTpc(harmony->rootTpc(), interval, true);
int baseTpc = transposeTpc(harmony->baseTpc(), interval, true);
score()->undoTransposeHarmony(harmony, rootTpc, baseTpc);
}
// render
harmony->render();
}
// fall through
case Element::Type::TEXT:
case Element::Type::STAFF_TEXT:

View file

@ -796,7 +796,7 @@ PasteStatus Score::cmdPaste(const QMimeData* ms, MuseScoreView* view)
qDebug("no application mime data");
return PasteStatus::NO_MIME;
}
if ((_selection.isSingle()|| _selection.isList()) && ms->hasFormat(mimeSymbolFormat)) {
if ((_selection.isSingle() || _selection.isList()) && ms->hasFormat(mimeSymbolFormat)) {
QByteArray data(ms->data(mimeSymbolFormat));
XmlReader e(data);
QPointF dragOffset;