Exemplo n.º 1
0
void TestText::testDropUnicodeAfterSMUFLwhenCursorSetToSymbol()
      {
      Text* text = new Text(score);
      text->initSubStyle(SubStyle::DYNAMICS);
      text->setPlainText(QString(""));
      text->layout();
      text->startEdit(editData);

      Symbol* symbolSMUFL = new Symbol(score); // create a new element, as Measure::drop() will eventually delete it
      symbolSMUFL->setSym(SymId::noteheadWhole);

      EditData dropSMUFL;
      dropSMUFL.dropElement = symbolSMUFL;
      text->drop(dropSMUFL);

      // the bug happened when cursor is in symbol mode
      CharFormat* cf = text->cursor()->format();
      cf->setType(CharFormatType::SYMBOL);

      EditData dropFSymbol;
      FSymbol* fsymbol = new FSymbol(score);
      fsymbol->setCode(0x0001D10E); // unicode hex code for '𝄎'
      dropFSymbol.dropElement = fsymbol;
      text->drop(dropFSymbol);

      text->endEdit(editData);
      QCOMPARE(text->xmlText(), QString("<sym>noteheadWhole</sym>𝄎"));
      }