Exemple #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>𝄎"));
      }
void TextPalette::populateUnicode()
      {
      int row = lwu->currentItem()->data(Qt::UserRole).toInt();
      QPoint p = rangeInfo[row];
      pUnicode->clear();
      for (int code = p.x(); code <= p.y(); ++code) {
            FSymbol* fs = new FSymbol(gscore);
            fs->setCode(code);
            fs->setFont(_font);
            pUnicode->append(fs, QString("0x%1").arg(code, 5, 16, QLatin1Char('0')));
            }
      }
Exemple #3
0
void TextPalette::populateCommon()
      {
      pCommon->clear();

      Symbol* s = new Symbol(gscore);
      s->setSym(SymId::gClef, gscore->scoreFont());
      pCommon->append(s, Sym::id2userName(SymId::gClef));

      FSymbol* fs = new FSymbol(gscore);
      fs->setCode(int('A'));
      fs->setFont(_font);
      pCommon->append(fs, "A");
      }
Exemple #4
0
void TestText::testDropSupplementaryUnicodeWhenNotInEditMode()
      {
      Text* text = new Text(score);
      text->initSubStyle(SubStyle::DYNAMICS);
      text->setPlainText(QString(""));
      text->layout();

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

      QCOMPARE(text->xmlText(), QString("𝄎"));
      }
void TextPalette::populateCommon()
      {
      pCommon->clear();

      for (auto id : commonScoreSymbols) {
            Symbol* s = new Symbol(gscore);
            s->setSym(id, gscore->scoreFont());
            pCommon->append(s, Sym::id2userName(id));
            }

      for (auto id : commonTextSymbols) {
            FSymbol* fs = new FSymbol(gscore);
            fs->setCode(id);
            fs->setFont(_font);
            pCommon->append(fs, QString(id));
            }
      }
Exemple #6
0
void TextPalette::populateAll()
      {
      int page = codePage->value();
      codePage->setMaximum(255);

      QFontMetrics fm(_font);

      pAll->clear();
      for (int row = 0; row < 16; ++row) {
            for (int col = 0; col < 16; ++col) {
                  int code = row * 16 + col + page * 256;
                  FSymbol* fs = new FSymbol(gscore);
                  fs->setCode(code);
                  fs->setFont(_font);
                  pAll->append(fs, QString("0x%1").arg(code, 5, 16, QLatin1Char('0')));
                  }
            }
      }
Exemple #7
0
void ChordStyleEditor::setChordList(ChordList* cl)
      {
      harmonyList->clear();
      foreach (const ChordDescription& d, *cl) {
            QTreeWidgetItem* item = new QTreeWidgetItem;
            item->setData(0, Qt::UserRole, QVariant::fromValue<void*>((void*)&d));
            item->setText(0, QString("%1").arg(d.id));
            if (!d.names.isEmpty())
                  item->setText(1, QString("%1").arg(d.names.front()));
            harmonyList->addTopLevelItem(item);
            }
      delete chordList;
      chordList = new ChordList(*cl);
      canvas->setChordDescription(0, 0);

      paletteTab->clear();
      foreach(const ChordFont& f, chordList->fonts) {
            // create symbol palette
            Palette* p = new Palette();
            PaletteScrollArea* accPalette = new PaletteScrollArea(p);
            QSizePolicy policy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
            accPalette->setSizePolicy(policy1);
            accPalette->setRestrictHeight(false);
            p->setGrid(50, 50);
            paletteTab->addTab(accPalette, f.family);
            QFont qf(f.family);
            qf.setStyleStrategy(QFont::NoFontMerging);
            int size = lrint(20.0 * DPI / PPI);
            qf.setPixelSize(size);

            QFontMetricsF fi(qf);
            for (int i = 0; i < 255; ++i) {
                  if (fi.inFont(QChar(i))) {
                        FSymbol* s = new FSymbol(gscore);
                        s->setFont(qf);
                        s->setCode(i);
                        p->append(s, "??");
                        }
                  }
            }
      raise();
      }