void MsScWriter::endMeasure(const Bww::MeasureEndFlags mef) { qDebug() << "MsScWriter::endMeasure()"; if (mef.repeatEnd) currentMeasure->setRepeatFlags(RepeatEnd); if (mef.endingEnd) { if (lastVolta) { qDebug("adding volta\n"); if (ending == 1) lastVolta->setSubtype(VOLTA_CLOSED); else lastVolta->setSubtype(VOLTA_OPEN); lastVolta->setEndElement(currentMeasure); currentMeasure->addSpannerBack(lastVolta); lastVolta = 0; } else { qDebug("lastVolta == 0 on stop\n"); } } if (mef.lastOfSystem) { LayoutBreak* lb = new LayoutBreak(score); lb->setTrack(0); lb->setSubtype(LAYOUT_BREAK_LINE); currentMeasure->add(lb); } if (mef.lastOfPart && !mef.repeatEnd) { currentMeasure->setEndBarLineType(END_BAR, false, true); } else if (mef.doubleBarLine) { currentMeasure->setEndBarLineType(DOUBLE_BAR, false, true); } // BarLine* barLine = new BarLine(score); // bool visible = true; // barLine->setSubtype(NORMAL_BAR); // barLine->setTrack(0); // currentMeasure->setEndBarLineType(barLine->subtype(), false, visible); }
Palette* MuseScore::newLinesPalette() { Palette* sp = new Palette; sp->setName(QT_TRANSLATE_NOOP("Palette", "Lines")); sp->setMag(.8); sp->setGrid(82, 35); sp->setDrawGrid(true); qreal w = gscore->spatium() * 8; Slur* slur = new Slur(gscore); slur->setId(0); sp->append(slur, qApp->translate("lines", "Slur")); Hairpin* gabel0 = new Hairpin(gscore); gabel0->setHairpinType(Hairpin::Type::CRESCENDO); gabel0->setLen(w); sp->append(gabel0, qApp->translate("lines", "Crescendo")); Hairpin* gabel1 = new Hairpin(gscore); gabel1->setHairpinType(Hairpin::Type::DECRESCENDO); gabel1->setLen(w); sp->append(gabel1, QT_TRANSLATE_NOOP("Palette", "Diminuendo")); Volta* volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("1."); QList<int> il; il.append(1); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Prima volta")); volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Seconda volta")); volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("3."); il.clear(); il.append(3); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Terza volta")); volta = new Volta(gscore); volta->setVoltaType(Volta::Type::OPEN); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Seconda volta 2")); Ottava* ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_8VA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "8va")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_8VB); ottava->setLen(w); ottava->setPlacement(Element::Placement::BELOW); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "8vb")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_15MA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "15ma")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_15MB); ottava->setLen(w); ottava->setPlacement(Element::Placement::BELOW); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "15mb")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_22MA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "22ma")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_22MB); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "22mb")); Pedal* pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginText("<sym>keyboardPedalPed</sym>"); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal->setEndHook(true); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setEndHook(true); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setEndHook(true); pedal->setEndHookType(HookType::HOOK_45); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setBeginHookType(HookType::HOOK_45); pedal->setEndHook(true); pedal->setEndHookType(HookType::HOOK_45); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setBeginHookType(HookType::HOOK_45); pedal->setEndHook(true); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); Trill* trill = new Trill(gscore); trill->setLen(w); sp->append(trill, QT_TRANSLATE_NOOP("Palette", "Trill line")); trill = new Trill(gscore); trill->setTrillType("upprall"); trill->setLen(w); sp->append(trill, QT_TRANSLATE_NOOP("Palette", "Upprall line")); trill = new Trill(gscore); trill->setTrillType("downprall"); trill->setLen(w); sp->append(trill, QT_TRANSLATE_NOOP("Palette", "Downprall line")); trill = new Trill(gscore); trill->setTrillType("prallprall"); trill->setLen(w); sp->append(trill, QT_TRANSLATE_NOOP("Palette", "Prallprall line")); trill = new Trill(gscore); trill->setTrillType("pure"); trill->setLen(w); sp->append(trill, QT_TRANSLATE_NOOP("Palette", "Wavy line")); TextLine* textLine = new TextLine(gscore); textLine->setLen(w); textLine->setBeginText("VII"); textLine->setEndHook(true); sp->append(textLine, QT_TRANSLATE_NOOP("Palette", "Text line")); TextLine* line = new TextLine(gscore); line->setLen(w); line->setDiagonal(true); sp->append(line, QT_TRANSLATE_NOOP("Palette", "Line")); Ambitus* a = new Ambitus(gscore); sp->append(a, QT_TRANSLATE_NOOP("Palette", "Ambitus")); return sp; }
Palette* MuseScore::newLinesPalette(bool basic) { Palette* sp = new Palette; sp->setName(QT_TRANSLATE_NOOP("Palette", "Lines")); sp->setMag(.8); sp->setGrid(82, 35); sp->setDrawGrid(true); qreal w = gscore->spatium() * 8; Slur* slur = new Slur(gscore); sp->append(slur, qApp->translate("lines", "Slur")); Hairpin* gabel0 = new Hairpin(gscore); gabel0->setHairpinType(Hairpin::Type::CRESCENDO); gabel0->setLen(w); sp->append(gabel0, qApp->translate("lines", "Crescendo")); Hairpin* gabel1 = new Hairpin(gscore); gabel1->setHairpinType(Hairpin::Type::DECRESCENDO); gabel1->setLen(w); sp->append(gabel1, QT_TRANSLATE_NOOP("Palette", "Diminuendo")); Volta* volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("1."); QList<int> il; il.append(1); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Prima volta")); volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Seconda volta")); if (!basic) { volta = new Volta(gscore); volta->setVoltaType(Volta::Type::CLOSED); volta->setLen(w); volta->setText("3."); il.clear(); il.append(3); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Terza volta")); } volta = new Volta(gscore); volta->setVoltaType(Volta::Type::OPEN); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, QT_TRANSLATE_NOOP("Palette", "Seconda volta 2")); Ottava* ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_8VA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "8va")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_8VB); ottava->setLen(w); ottava->setPlacement(Element::Placement::BELOW); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "8vb")); if (!basic) { ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_15MA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "15ma")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_15MB); ottava->setLen(w); ottava->setPlacement(Element::Placement::BELOW); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "15mb")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_22MA); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "22ma")); ottava = new Ottava(gscore); ottava->setOttavaType(Ottava::Type::OTTAVA_22MB); ottava->setLen(w); sp->append(ottava, QT_TRANSLATE_NOOP("Palette", "22mb")); } Pedal* pedal; if (!basic) { pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginText("<sym>keyboardPedalPed</sym>"); pedal->setContinueText("(<sym>keyboardPedalPed</sym>)"); pedal->setEndHook(true); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginText("<sym>keyboardPedalPed</sym>"); pedal->setContinueText("(<sym>keyboardPedalPed</sym>)"); pedal->setEndText("<sym>keyboardPedalUp</sym>"); Align align = pedal->endTextElement()->textStyle().align(); align = (align & AlignmentFlags::VMASK) | AlignmentFlags::HCENTER; pedal->endTextElement()->textStyle().setAlign(align); pedal->setLineVisible(false); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); } pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setEndHook(true); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setEndHook(true); pedal->setEndHookType(HookType::HOOK_45); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setBeginHookType(HookType::HOOK_45); pedal->setEndHook(true); pedal->setEndHookType(HookType::HOOK_45); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginHook(true); pedal->setBeginHookType(HookType::HOOK_45); pedal->setEndHook(true); sp->append(pedal, QT_TRANSLATE_NOOP("Palette", "Pedal")); if (!basic) { for (int i = 0; i < trillTableSize(); i++) { Trill* trill = new Trill(gscore); trill->setTrillType(trillTable[i].type); trill->setLen(w); sp->append(trill, qApp->translate("trillType", trillTable[i].userName.toUtf8().constData())); } TextLine* textLine = new TextLine(gscore); textLine->setLen(w); textLine->setBeginText("VII"); textLine->setEndHook(true); sp->append(textLine, QT_TRANSLATE_NOOP("Palette", "Text line")); TextLine* line = new TextLine(gscore); line->setLen(w); line->setDiagonal(true); sp->append(line, QT_TRANSLATE_NOOP("Palette", "Line")); Ambitus* a = new Ambitus(gscore); sp->append(a, QT_TRANSLATE_NOOP("Palette", "Ambitus")); } return sp; }
Score::FileError Score::read114(XmlReader& e) { if (parentScore()) setMscVersion(parentScore()->mscVersion()); for (unsigned int i = 0; i < sizeof(style114)/sizeof(*style114); ++i) style()->set(style114[i].idx, style114[i].val); // old text style defaults TextStyle ts = style()->textStyle("Chord Symbol"); ts.setYoff(-4.0); style()->setTextStyle(ts); TempoMap tm; while (e.readNextStartElement()) { e.setTrack(-1); const QStringRef& tag(e.name()); if (tag == "Staff") readStaff(e); else if (tag == "KeySig") { // not supported KeySig* ks = new KeySig(this); ks->read(e); // customKeysigs.append(ks); delete ks; } else if (tag == "siglist") _sigmap->read(e, _fileDivision); else if (tag == "programVersion") { _mscoreVersion = e.readElementText(); parseVersion(_mscoreVersion); } else if (tag == "programRevision") _mscoreRevision = e.readInt(); else if (tag == "Mag" || tag == "MagIdx" || tag == "xoff" || tag == "Symbols" || tag == "cursorTrack" || tag == "yoff") e.skipCurrentElement(); // obsolete else if (tag == "tempolist") { // store the tempo list to create invisible tempo text later qreal tempo = e.attribute("fix","2.0").toDouble(); tm.setRelTempo(tempo); while (e.readNextStartElement()) { if (e.name() == "tempo") { int tick = e.attribute("tick").toInt(); double tmp = e.readElementText().toDouble(); tick = (tick * MScore::division + _fileDivision/2) / _fileDivision; auto pos = tm.find(tick); if (pos != tm.end()) tm.erase(pos); tm.setTempo(tick, tmp); } else if (e.name() == "relTempo") e.readElementText(); else e.unknown(); } } else if (tag == "playMode") _playMode = PlayMode(e.readInt()); else if (tag == "SyntiSettings") _synthesizerState.read(e); else if (tag == "Spatium") _style.setSpatium (e.readDouble() * MScore::DPMM); else if (tag == "Division") _fileDivision = e.readInt(); else if (tag == "showInvisible") _showInvisible = e.readInt(); else if (tag == "showFrames") _showFrames = e.readInt(); else if (tag == "showMargins") _showPageborders = e.readInt(); else if (tag == "Style") { qreal sp = _style.spatium(); _style.load(e); // adjust this now so chords render properly on read // other style adjustments can wait until reading is finished if (style(StyleIdx::useGermanNoteNames).toBool()) style()->set(StyleIdx::useStandardNoteNames, false); if (_layoutMode == LayoutMode::FLOAT) { // style should not change spatium in // float mode _style.setSpatium(sp); } } else if (tag == "TextStyle") { TextStyle s; s.read(e); qreal spMM = _style.spatium() / MScore::DPMM; if (s.frameWidthMM() != 0.0) s.setFrameWidth(Spatium(s.frameWidthMM() / spMM)); if (s.paddingWidthMM() != 0.0) s.setPaddingWidth(Spatium(s.paddingWidthMM() / spMM)); \ // convert 1.2 text styles s.setName(convertOldTextStyleNames(s.name())); if (s.name() == "Lyrics Odd Lines" || s.name() == "Lyrics Even Lines") s.setAlign((s.align() & ~ Align(AlignmentFlags::VMASK)) | AlignmentFlags::BASELINE); _style.setTextStyle(s); } else if (tag == "page-layout") { if (_layoutMode != LayoutMode::FLOAT && _layoutMode != LayoutMode::SYSTEM) { PageFormat pf; pf.copy(*pageFormat()); pf.read(e, this); setPageFormat(pf); } else e.skipCurrentElement(); } else if (tag == "copyright" || tag == "rights") { Text* text = new Text(this); text->read(e); text->layout(); setMetaTag("copyright", text->plainText()); delete text; } else if (tag == "movement-number") setMetaTag("movementNumber", e.readElementText()); else if (tag == "movement-title") setMetaTag("movementTitle", e.readElementText()); else if (tag == "work-number") setMetaTag("workNumber", e.readElementText()); else if (tag == "work-title") setMetaTag("workTitle", e.readElementText()); else if (tag == "source") setMetaTag("source", e.readElementText()); else if (tag == "metaTag") { QString name = e.attribute("name"); setMetaTag(name, e.readElementText()); } else if (tag == "Part") { Part* part = new Part(this); part->read114(e); _parts.push_back(part); } else if (tag == "Slur") { Slur* slur = new Slur(this); slur->read(e); addSpanner(slur); } else if ((tag == "HairPin") || (tag == "Ottava") || (tag == "TextLine") || (tag == "Volta") || (tag == "Trill") || (tag == "Pedal")) { Spanner* s = static_cast<Spanner*>(Element::name2Element(tag, this)); s->read(e); if (s->track() == -1) s->setTrack(e.track()); else e.setTrack(s->track()); // update current track if (s->tick() == -1) s->setTick(e.tick()); else e.initTick(s->tick()); // update current tick if (s->track2() == -1) s->setTrack2(s->track()); if (s->ticks() == 0) { delete s; qDebug("zero spanner %s ticks: %d", s->name(), s->ticks()); } else { addSpanner(s); } } else if (tag == "Excerpt") { if (MScore::noExcerpts) e.skipCurrentElement(); else { Excerpt* ex = new Excerpt(this); ex->read(e); _excerpts.append(ex); } } else if (tag == "Beam") { Beam* beam = new Beam(this); beam->read(e); beam->setParent(0); // _beams.append(beam); } else if (tag == "name") setName(e.readElementText()); else e.unknown(); } if (e.error() != XmlStreamReader::NoError) return FileError::FILE_BAD_FORMAT; int n = nstaves(); for (int idx = 0; idx < n; ++idx) { Staff* s = _staves[idx]; int track = idx * VOICES; // check barLineSpan if (s->barLineSpan() > (n - idx)) { qDebug("read114: invalid bar line span %d (max %d)", s->barLineSpan(), n - idx); s->setBarLineSpan(n - idx); } for (auto i : e.clefs(idx)) { int tick = i.first; ClefType clefId = i.second; Measure* m = tick2measure(tick); if (!m) continue; if ((tick == m->tick()) && m->prevMeasure()) m = m->prevMeasure(); Segment* seg = m->getSegment(Segment::Type::Clef, tick); if (seg->element(track)) static_cast<Clef*>(seg->element(track))->setGenerated(false); else { Clef* clef = new Clef(this); clef->setClefType(clefId); clef->setTrack(track); clef->setParent(seg); clef->setGenerated(false); seg->add(clef); } } // create missing KeySig KeyList* km = s->keyList(); for (auto i = km->begin(); i != km->end(); ++i) { int tick = i->first; if (tick < 0) { qDebug("read114: Key tick %d", tick); continue; } if (tick == 0 && i->second.key() == Key::C) continue; Measure* m = tick2measure(tick); if (!m) //empty score break; Segment* seg = m->getSegment(Segment::Type::KeySig, tick); if (seg->element(track)) static_cast<KeySig*>(seg->element(track))->setGenerated(false); else { KeySigEvent ke = i->second; KeySig* ks = new KeySig(this); ks->setKeySigEvent(ke); ks->setParent(seg); ks->setTrack(track); ks->setGenerated(false); seg->add(ks); } } } for (std::pair<int,Spanner*> p : spanner()) { Spanner* s = p.second; if (s->type() != Element::Type::SLUR) { if (s->type() == Element::Type::VOLTA) { Volta* volta = static_cast<Volta*>(s); volta->setAnchor(Spanner::Anchor::MEASURE); } } if (s->type() == Element::Type::OTTAVA || s->type() == Element::Type::PEDAL || s->type() == Element::Type::TRILL || s->type() == Element::Type::TEXTLINE) { qreal yo = 0; if (s->type() == Element::Type::OTTAVA) { // fix ottava position yo = styleS(StyleIdx::ottavaY).val() * spatium(); if (s->placement() == Element::Placement::BELOW) yo = -yo + s->staff()->height(); } else if (s->type() == Element::Type::PEDAL) { yo = styleS(StyleIdx::pedalY).val() * spatium(); } else if (s->type() == Element::Type::TRILL) { yo = styleS(StyleIdx::trillY).val() * spatium(); } else if (s->type() == Element::Type::TEXTLINE) { yo = -5.0 * spatium(); } if (!s->spannerSegments().isEmpty()) { for (SpannerSegment* seg : s->spannerSegments()) { if (!seg->userOff().isNull()) seg->setUserYoffset(seg->userOff().y() - yo); } } else { s->setUserYoffset(-yo); } } } connectTies(); // // remove "middle beam" flags from first ChordRest in // measure // for (Measure* m = firstMeasure(); m; m = m->nextMeasure()) { int tracks = nstaves() * VOICES; bool first = true; for (int track = 0; track < tracks; ++track) { for (Segment* s = m->first(); s; s = s->next()) { if (s->segmentType() != Segment::Type::ChordRest) continue; ChordRest* cr = static_cast<ChordRest*>(s->element(track)); if (cr) { if(cr->type() == Element::Type::REST) { Rest* r = static_cast<Rest*>(cr); if (!r->userOff().isNull()) { int lineOffset = r->computeLineOffset(); qreal lineDist = r->staff() ? r->staff()->staffType()->lineDistance().val() : 1.0; r->rUserYoffset() -= (lineOffset * .5 * lineDist * r->spatium()); } } if(!first) { switch(cr->beamMode()) { case Beam::Mode::AUTO: case Beam::Mode::BEGIN: case Beam::Mode::END: case Beam::Mode::NONE: break; case Beam::Mode::MID: case Beam::Mode::BEGIN32: case Beam::Mode::BEGIN64: cr->setBeamMode(Beam::Mode::BEGIN); break; case Beam::Mode::INVALID: if (cr->type() == Element::Type::CHORD) cr->setBeamMode(Beam::Mode::AUTO); else cr->setBeamMode(Beam::Mode::NONE); break; } first = false; } } } } } for (MeasureBase* mb = _measures.first(); mb; mb = mb->next()) { if (mb->type() == Element::Type::VBOX) { Box* b = static_cast<Box*>(mb); qreal y = point(styleS(StyleIdx::staffUpperBorder)); b->setBottomGap(y); } } _fileDivision = MScore::division; // // sanity check for barLineSpan and update ottavas // foreach(Staff* staff, _staves) { int barLineSpan = staff->barLineSpan(); int idx = staffIdx(staff); int n = nstaves(); if (idx + barLineSpan > n) { qDebug("bad span: idx %d span %d staves %d", idx, barLineSpan, n); staff->setBarLineSpan(n - idx); } staff->updateOttava(); }
Palette* MuseScore::newLinesPalette() { Palette* sp = new Palette; sp->setName(qApp->translate("lines", "Lines")); sp->setMag(.8); sp->setGrid(82, 23); sp->setDrawGrid(true); qreal w = gscore->spatium() * 7; Slur* slur = new Slur(gscore); slur->setId(0); sp->append(slur, qApp->translate("lines", "Slur")); Hairpin* gabel0 = new Hairpin(gscore); gabel0->setSubtype(Hairpin::CRESCENDO); gabel0->setLen(w); sp->append(gabel0, qApp->translate("lines", "Crescendo")); Hairpin* gabel1 = new Hairpin(gscore); gabel1->setSubtype(Hairpin::DECRESCENDO); gabel1->setLen(w); sp->append(gabel1, qApp->translate("lines", "Diminuendo")); Volta* volta = new Volta(gscore); volta->setSubtype(Volta::VOLTA_CLOSED); volta->setLen(w); volta->setText("1."); QList<int> il; il.append(1); volta->setEndings(il); sp->append(volta, qApp->translate("lines", "Prima volta")); volta = new Volta(gscore); volta->setSubtype(Volta::VOLTA_CLOSED); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, qApp->translate("lines", "Seconda volta")); volta = new Volta(gscore); volta->setSubtype(Volta::VOLTA_CLOSED); volta->setLen(w); volta->setText("3."); il.clear(); il.append(3); volta->setEndings(il); sp->append(volta, qApp->translate("lines", "Terza volta")); volta = new Volta(gscore); volta->setSubtype(Volta::VOLTA_OPEN); volta->setLen(w); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, qApp->translate("lines", "Seconda volta 2")); Ottava* ottava = new Ottava(gscore); ottava->setSubtype(Ottava::OTTAVA_8VA); ottava->setLen(w); sp->append(ottava, qApp->translate("lines", "8va")); ottava = new Ottava(gscore); ottava->setSubtype(Ottava::OTTAVA_15MA); ottava->setLen(w); sp->append(ottava, qApp->translate("lines", "15ma")); ottava = new Ottava(gscore); ottava->setSubtype(Ottava::OTTAVA_8VB); ottava->setLen(w); sp->append(ottava, qApp->translate("lines", "8vb")); ottava = new Ottava(gscore); ottava->setSubtype(Ottava::OTTAVA_15MB); ottava->setLen(w); sp->append(ottava, qApp->translate("lines", "15mb")); Pedal* pedal = new Pedal(gscore); pedal->setLen(w); sp->append(pedal, qApp->translate("lines", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setEndHookType(HOOK_45); sp->append(pedal, qApp->translate("lines", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginSymbol(noSym); pedal->setBeginHook(true); pedal->setBeginHookType(HOOK_45); pedal->setEndHookType(HOOK_45); sp->append(pedal, qApp->translate("lines", "Pedal")); pedal = new Pedal(gscore); pedal->setLen(w); pedal->setBeginSymbol(noSym); pedal->setBeginHook(true); pedal->setBeginHookType(HOOK_45); sp->append(pedal, qApp->translate("lines", "Pedal")); Trill* trill = new Trill(gscore); trill->setLen(w); sp->append(trill, qApp->translate("lines", "Trill line")); trill = new Trill(gscore); trill->setSubtype("upprall"); trill->setLen(w); sp->append(trill, qApp->translate("lines", "Upprall line")); trill = new Trill(gscore); trill->setSubtype("downprall"); trill->setLen(w); sp->append(trill, qApp->translate("lines", "Downprall line")); trill = new Trill(gscore); trill->setSubtype("prallprall"); trill->setLen(w); sp->append(trill, qApp->translate("lines", "Prallprall line")); trill = new Trill(gscore); trill->setSubtype("pure"); trill->setLen(w); sp->append(trill, qApp->translate("lines", "Wavy line")); TextLine* textLine = new TextLine(gscore); textLine->setLen(w); textLine->setBeginText("VII", gscore->textStyle(TEXT_STYLE_TEXTLINE)); textLine->setEndHook(true); sp->append(textLine, qApp->translate("lines", "Text line")); TextLine* line = new TextLine(gscore); line->setLen(w); line->setDiagonal(true); sp->append(line, qApp->translate("lines", "Line")); return sp; }
void MsScWriter::beginMeasure(const Bww::MeasureBeginFlags mbf) { qDebug() << "MsScWriter::beginMeasure()"; ++measureNumber; // create a new measure currentMeasure = new Measure(score); currentMeasure->setTick(tick); currentMeasure->setTimesig(Fraction(beats, beat)); currentMeasure->setNo(measureNumber); score->measures()->add(currentMeasure); if (mbf.repeatBegin) currentMeasure->setRepeatFlags(RepeatStart); if (mbf.irregular) currentMeasure->setIrregular(true); if (mbf.endingFirst || mbf.endingSecond) { Volta* volta = new Volta(score); volta->setTrack(0); volta->endings().clear(); if (mbf.endingFirst) { volta->setText("1"); volta->endings().append(1); ending = 1; } else { volta->setText("2"); volta->endings().append(2); ending = 2; } volta->setStartElement(currentMeasure); currentMeasure->add(volta); lastVolta = volta; } // set clef, key and time signature in the first measure if (measureNumber == 1) { // clef Clef* clef = new Clef(score); clef->setClefType(CLEF_G); clef->setTrack(0); Segment* s = currentMeasure->getSegment(clef, tick); s->add(clef); // keysig KeySigEvent key; key.setAccidentalType(2); KeySig* keysig = new KeySig(score); keysig->setKeySigEvent(key); keysig->setTrack(0); s = currentMeasure->getSegment(keysig, tick); s->add(keysig); // timesig TimeSig* timesig = new TimeSig(score); timesig->setSig(Fraction(beats, beat)); timesig->setTrack(0); s = currentMeasure->getSegment(timesig, tick); s->add(timesig); } }
void MuseScore::lineMenu() { if (linePalette == 0) { Palette* sp = new Palette(); sp->resize(400, 300); linePalette = new PaletteScrollArea(sp); linePalette->setRestrictHeight(false); linePalette->setWindowTitle(tr("MuseScore: Lines")); sp->setGrid(100, 30); double l = gscore->spatium() * 8; Slur* slur = new Slur(gscore); slur->setId(0); sp->append(slur, tr("Slur")); Hairpin* gabel0 = new Hairpin(gscore); gabel0->setSubtype(0); gabel0->setLen(l); sp->append(gabel0, tr("Crescendo")); Hairpin* gabel1 = new Hairpin(gscore); gabel1->setSubtype(1); gabel1->setLen(l); sp->append(gabel1, tr("Diminuendo")); Volta* volta = new Volta(gscore); volta->setLen(l); volta->setText("1."); QList<int> il; il.clear(); il.append(1); volta->setEndings(il); volta->setSubtype(VOLTA_CLOSED); sp->append(volta, tr("Prima volta")); volta = new Volta(gscore); volta->setLen(l); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); volta->setSubtype(VOLTA_CLOSED); sp->append(volta, tr("Seconda volta")); volta = new Volta(gscore); volta->setLen(l); volta->setText("3."); il.clear(); il.append(3); volta->setEndings(il); volta->setSubtype(VOLTA_CLOSED); sp->append(volta, tr("Terza volta")); volta = new Volta(gscore); volta->setLen(l); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); volta->setSubtype(VOLTA_OPEN); sp->append(volta, tr("Seconda volta")); //-------- Ottava* ottava = new Ottava(gscore); ottava->setSubtype(0); ottava->setLen(l); sp->append(ottava, tr("8va")); ottava = new Ottava(gscore); ottava->setSubtype(1); ottava->setLen(l); sp->append(ottava, tr("15ma")); ottava = new Ottava(gscore); ottava->setSubtype(2); ottava->setLen(l); sp->append(ottava, tr("8vb")); ottava = new Ottava(gscore); ottava->setSubtype(3); ottava->setLen(l); sp->append(ottava, tr("15mb")); //------- Pedal* pedal = new Pedal(gscore); pedal->setLen(l); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); pedal->setLen(l); pedal->setEndHookType(HOOK_45); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); pedal->setLen(l); pedal->setBeginSymbol(-1); pedal->setBeginHook(true); pedal->setBeginHookHeight(Spatium(-1.5)); pedal->setBeginHookType(HOOK_45); pedal->setEndHookType(HOOK_45); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); pedal->setLen(l); pedal->setBeginSymbol(-1); pedal->setBeginHook(true); pedal->setBeginHookHeight(Spatium(-1.5)); pedal->setBeginHookType(HOOK_45); sp->append(pedal, tr("Pedal")); //------- Trill* trill = new Trill(gscore); trill->setLen(l); sp->append(trill, tr("Trill line")); TextLine* textLine = new TextLine(gscore); textLine->setBeginText("VII"); sp->append(textLine, tr("Text line")); textLine->setEndHook(true); textLine->setEndHookHeight(Spatium(1.5)); TextLine* line = new TextLine(gscore); line->setDiagonal(true); sp->append(line, tr("Line")); } linePalette->show(); linePalette->raise(); }
void MuseScore::populatePalette() { //----------------------------------- // notes //----------------------------------- Palette* notePalette = new Palette; notePalette->setName(tr("Grace Notes")); notePalette->setGrid(32, 40); notePalette->setDrawGrid(true); static const IconAction gna[] = { { ICON_ACCIACCATURA, "acciaccatura" }, { ICON_APPOGGIATURA, "appoggiatura" }, { ICON_GRACE4, "grace4" }, { ICON_GRACE16, "grace16" }, { ICON_GRACE32, "grace32" }, { -1, "" } }; populateIconPalette(notePalette, gna); paletteBox->addPalette(notePalette); //----------------------------------- // clefs //----------------------------------- Palette* sp = new Palette; sp->setName(tr("Clefs")); sp->setMag(0.8); sp->setGrid(33, 60); sp->setYOffset(1.0); static const ClefType clefs[21] = { CLEF_G, CLEF_G1, CLEF_G2, CLEF_G3, CLEF_G4, CLEF_C1, CLEF_C2, CLEF_C3, CLEF_C4, CLEF_C5, CLEF_F, CLEF_F_8VA, CLEF_F_15MA, CLEF_F8, CLEF_F15, CLEF_F_B, CLEF_F_C, CLEF_PERC, CLEF_TAB, CLEF_TAB2, CLEF_PERC2 }; for (int i = 0; i < 20; ++i) { ClefType j = clefs[i]; Clef* k = new ::Clef(gscore); k->setClefType(ClefTypeList(j, j)); sp->append(k, qApp->translate("clefTable", clefTable[j].name)); } paletteBox->addPalette(sp); //----------------------------------- // key signatures //----------------------------------- sp = newKeySigPalette(); paletteBox->addPalette(sp); //----------------------------------- // Time //----------------------------------- sp = new Palette; sp->setName(tr("Time Signatures")); sp->setMag(.8); sp->setGrid(42, 38); TimeSig* ts; ts = new TimeSig(gscore); ts->setSig(2, 2); sp->append(ts, "2/2"); sp->append(new TimeSig(gscore, 2, 4), "2/4"); sp->append(new TimeSig(gscore, 3, 4), "3/4"); sp->append(new TimeSig(gscore, 4, 4), "4/4"); sp->append(new TimeSig(gscore, 5, 4), "5/4"); sp->append(new TimeSig(gscore, 6, 4), "6/4"); sp->append(new TimeSig(gscore, 3, 8), "3/8"); sp->append(new TimeSig(gscore, 6, 8), "6/8"); sp->append(new TimeSig(gscore, 9, 8), "9/8"); sp->append(new TimeSig(gscore, 12, 8), "12/8"); sp->append(new TimeSig(gscore, TSIG_FOUR_FOUR), tr("4/4 common time")); sp->append(new TimeSig(gscore, TSIG_ALLA_BREVE), tr("2/2 alla breve")); paletteBox->addPalette(sp); //----------------------------------- // Bar Lines //----------------------------------- sp = new Palette; sp->setName(tr("Barlines")); sp->setMag(0.8); sp->setGrid(42, 38); struct { BarLineType type; const char* name; } t[] = { { NORMAL_BAR, QT_TR_NOOP("Normal") }, { BROKEN_BAR, QT_TR_NOOP("Dashed") }, { END_BAR, QT_TR_NOOP("End Bar") }, { DOUBLE_BAR, QT_TR_NOOP("Double Bar") }, { START_REPEAT, QT_TR_NOOP("Start Repeat") }, { END_REPEAT, QT_TR_NOOP("End Repeat") }, { END_START_REPEAT, QT_TR_NOOP("End-Start Repeat") }, }; for (unsigned i = 0; i < sizeof(t)/sizeof(*t); ++i) { BarLine* b = new BarLine(gscore); b->setSubtype(t[i].type); sp->append(b, tr(t[i].name)); } paletteBox->addPalette(sp); //----------------------------------- // Lines //----------------------------------- sp = new Palette; sp->setName(tr("Lines")); sp->setMag(.8); sp->setGrid(82, 23); Slur* slur = new Slur(gscore); slur->setId(0); sp->append(slur, tr("Slur")); Hairpin* gabel0 = new Hairpin(gscore); gabel0->setSubtype(0); sp->append(gabel0, tr("Crescendo")); Hairpin* gabel1 = new Hairpin(gscore); gabel1->setSubtype(1); sp->append(gabel1, tr("Diminuendo")); Volta* volta = new Volta(gscore); volta->setSubtype(VOLTA_CLOSED); volta->setText("1."); QList<int> il; il.append(1); volta->setEndings(il); sp->append(volta, tr("Prima volta")); volta = new Volta(gscore); volta->setSubtype(VOLTA_CLOSED); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, tr("Seconda volta")); volta = new Volta(gscore); volta->setSubtype(VOLTA_CLOSED); volta->setText("3."); il.clear(); il.append(3); volta->setEndings(il); sp->append(volta, tr("Terza volta")); volta = new Volta(gscore); volta->setSubtype(VOLTA_OPEN); volta->setText("2."); il.clear(); il.append(2); volta->setEndings(il); sp->append(volta, tr("Seconda volta 2")); Ottava* ottava = new Ottava(gscore); ottava->setSubtype(0); sp->append(ottava, tr("8va")); ottava = new Ottava(gscore); ottava->setSubtype(1); sp->append(ottava, tr("15ma")); ottava = new Ottava(gscore); ottava->setSubtype(2); sp->append(ottava, tr("8vb")); ottava = new Ottava(gscore); ottava->setSubtype(3); sp->append(ottava, tr("15mb")); Pedal* pedal = new Pedal(gscore); //pedal->setLen(l); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); //pedal->setLen(l); pedal->setEndHookType(HOOK_45); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); //pedal->setLen(l); pedal->setBeginSymbol(-1); pedal->setBeginHook(true); pedal->setBeginHookType(HOOK_45); pedal->setEndHookType(HOOK_45); sp->append(pedal, tr("Pedal")); pedal = new Pedal(gscore); //pedal->setLen(l); pedal->setBeginSymbol(-1); pedal->setBeginHook(true); pedal->setBeginHookType(HOOK_45); sp->append(pedal, tr("Pedal")); Trill* trill = new Trill(gscore); sp->append(trill, tr("Trill line")); trill = new Trill(gscore); trill->setSubtype("upprall"); sp->append(trill, tr("Upprall line")); trill = new Trill(gscore); trill->setSubtype("downprall"); sp->append(trill, tr("Downprall line")); trill = new Trill(gscore); trill->setSubtype("prallprall"); sp->append(trill, tr("Prallprall line")); TextLine* textLine = new TextLine(gscore); textLine->setBeginText("VII"); textLine->setEndHook(true); sp->append(textLine, tr("Text line")); TextLine* line = new TextLine(gscore); line->setDiagonal(true); sp->append(line, tr("Line")); paletteBox->addPalette(sp); //----------------------------------- // Arpeggio && Glissando //----------------------------------- sp = new Palette(); sp->setName(tr("Arpeggio && Glissando")); sp->setGrid(27, 60); for (int i = 0; i < 4; ++i) { Arpeggio* a = new Arpeggio(gscore); a->setSubtype(ArpeggioType(i)); sp->append(a, tr("Arpeggio")); } for (int i = 0; i < 2; ++i) { Glissando* a = new Glissando(gscore); a->setSubtype(i); sp->append(a, tr("Glissando")); } paletteBox->addPalette(sp); //----------------------------------- // Symbols: Breath //----------------------------------- sp = new Palette(); sp->setName(tr("Breath && Pauses")); sp->setGrid(42, 40); for (int i = 0; i < 4; ++i) { Breath* a = new Breath(gscore); a->setSubtype(i); if (i < 2) sp->append(a, tr("Breath")); else sp->append(a, tr("Caesura")); } paletteBox->addPalette(sp); //----------------------------------- // Brackets //----------------------------------- sp = new Palette; sp->setName(tr("Brackets")); sp->setMag(0.7); sp->setGrid(42, 60); Bracket* b1 = new Bracket(gscore); b1->setSubtype(BRACKET_NORMAL); Bracket* b2 = new Bracket(gscore); b2->setSubtype(BRACKET_AKKOLADE); // b1->setHeight(_spatium * 7); // b2->setHeight(_spatium * 7); sp->append(b1, tr("Square bracket")); sp->append(b2, tr("Curly bracket")); paletteBox->addPalette(sp); //----------------------------------- // Attributes, Ornaments //----------------------------------- sp = new Palette; sp->setName(tr("Articulations && Ornaments")); sp->setGrid(42, 25); for (int i = 0; i < ARTICULATIONS; ++i) { Articulation* s = new Articulation(gscore); s->setSubtype(ArticulationType(i)); sp->append(s, qApp->translate("articulation", qPrintable(s->subtypeUserName()))); } Bend* bend = new Bend(gscore); bend->points().append(PitchValue(0, 0, false)); bend->points().append(PitchValue(15, 100, false)); bend->points().append(PitchValue(60, 100, false)); sp->append(bend, qApp->translate("articulation", "Bend")); TremoloBar* tb = new TremoloBar(gscore); tb->points().append(PitchValue(0, 0, false)); // "Dip" tb->points().append(PitchValue(30, -100, false)); tb->points().append(PitchValue(60, 0, false)); sp->append(tb, qApp->translate("articulation", "Tremolo Bar")); paletteBox->addPalette(sp); //----------------------------------- // Accidentals //----------------------------------- sp = newAccidentalsPalette(); paletteBox->addPalette(sp); //----------------------------------- // Dynamics //----------------------------------- sp = new Palette; sp->setName(tr("Dynamics")); sp->setMag(.8); sp->setGrid(42, 28); static const char* dynS[] = { "ppp", "pp", "p", "mp", "mf", "f", "ff", "fff" }; for (unsigned i = 0; i < sizeof(dynS)/sizeof(*dynS); ++i) { Dynamic* dynamic = new Dynamic(gscore); dynamic->setSubtype(dynS[i]); sp->append(dynamic, dynamic->subtypeName()); } paletteBox->addPalette(sp); //----------------------------------- // Fingering //----------------------------------- sp = new Palette; sp->setName(tr("Fingering")); sp->setMag(1.5); sp->setGrid(28, 30); sp->setDrawGrid(true); const char finger[] = "012345pimac"; for (unsigned i = 0; i < strlen(finger); ++i) { Fingering* f = new Fingering(gscore); f->setText(QString(finger[i])); sp->append(f, tr("Fingering %1").arg(finger[i])); } const char stringnumber[] = "0123456"; for (unsigned i = 0; i < strlen(stringnumber); ++i) { Fingering* f = new Fingering(gscore); f->setTextStyle(TEXT_STYLE_STRING_NUMBER); f->setText(QString(stringnumber[i])); sp->append(f, tr("String number %1").arg(stringnumber[i])); } Symbol* symbol = new Symbol(gscore, thumbSym); sp->append(symbol, tr("Thumb")); paletteBox->addPalette(sp); //----------------------------------- // Noteheads //----------------------------------- sp = new Palette; sp->setName(tr("Note Heads")); sp->setMag(1.3); sp->setGrid(33, 36); sp->setDrawGrid(true); for (int i = 0; i < HEAD_GROUPS; ++i) { int sym = noteHeads[0][i][1]; if (i == HEAD_BREVIS_ALT) sym = noteHeads[0][i][3]; NoteHead* nh = new NoteHead(gscore); nh->setSym(sym); sp->append(nh, qApp->translate("symbol", symbols[0][sym].name())); } paletteBox->addPalette(sp); //----------------------------------- // Tremolo //----------------------------------- sp = new Palette; sp->setName(tr("Tremolo")); sp->setGrid(27, 40); sp->setDrawGrid(true); const char* tremoloName[] = { QT_TR_NOOP("1/8 through stem"), QT_TR_NOOP("1/16 through stem"), QT_TR_NOOP("1/32 through stem"), QT_TR_NOOP("1/64 through stem"), QT_TR_NOOP("1/8 between notes"), QT_TR_NOOP("1/16 between notes"), QT_TR_NOOP("1/32 between notes"), QT_TR_NOOP("1/64 between notes") }; for (int i = TREMOLO_R8; i <= TREMOLO_C64; ++i) { Tremolo* tremolo = new Tremolo(gscore); tremolo->setSubtype(TremoloType(i)); sp->append(tremolo, tr(tremoloName[i - TREMOLO_R8])); } paletteBox->addPalette(sp); //----------------------------------- // Fall, Doit //----------------------------------- sp = new Palette; sp->setName(tr("Fall/Doit")); sp->setGrid(27, 40); sp->setDrawGrid(true); const char* scorelineNames[] = { QT_TR_NOOP("fall"), QT_TR_NOOP("doit"), }; ChordLine* cl = new ChordLine(gscore); cl->setSubtype(1); sp->append(cl, tr(scorelineNames[0])); cl = new ChordLine(gscore); cl->setSubtype(2); sp->append(cl, tr(scorelineNames[1])); paletteBox->addPalette(sp); //----------------------------------- // Repeats //----------------------------------- sp = new Palette; sp->setName(tr("Repeats")); sp->setMag(0.65); sp->setGrid(84, 28); sp->setDrawGrid(true); RepeatMeasure* rm = new RepeatMeasure(gscore); sp->append(rm, tr("Repeat measure sign")); Marker* mk = new Marker(gscore); mk->setMarkerType(MARKER_SEGNO); sp->append(mk, tr("Segno")); mk = new Marker(gscore); mk->setMarkerType(MARKER_VARSEGNO); sp->append(mk, tr("Segno Variation")); mk = new Marker(gscore); mk->setMarkerType(MARKER_CODA); sp->append(mk, tr("Coda")); mk = new Marker(gscore); mk->setMarkerType(MARKER_VARCODA); sp->append(mk, tr("Varied coda")); mk = new Marker(gscore); mk->setMarkerType(MARKER_CODETTA); sp->append(mk, tr("Codetta")); mk = new Marker(gscore); mk->setMarkerType(MARKER_FINE); sp->append(mk, tr("Fine")); Jump* jp = new Jump(gscore); jp->setJumpType(JUMP_DC); sp->append(jp, tr("Da Capo")); jp = new Jump(gscore); jp->setJumpType(JUMP_DC_AL_FINE); sp->append(jp, tr("Da Capo al Fine")); jp = new Jump(gscore); jp->setJumpType(JUMP_DC_AL_CODA); sp->append(jp, tr("Da Capo al Coda")); jp = new Jump(gscore); jp->setJumpType(JUMP_DS_AL_CODA); sp->append(jp, tr("D.S al Coda")); jp = new Jump(gscore); jp->setJumpType(JUMP_DS_AL_FINE); sp->append(jp, tr("D.S al Fine")); jp = new Jump(gscore); jp->setJumpType(JUMP_DS); sp->append(jp, tr("D.S")); mk = new Marker(gscore); mk->setMarkerType(MARKER_TOCODA); sp->append(mk, tr("To Coda")); paletteBox->addPalette(sp); //----------------------------------- // Text //----------------------------------- sp = new Palette; sp->setName(tr("Text")); sp->setMag(0.65); sp->setGrid(84, 28); sp->setDrawGrid(true); StaffText* st = new StaffText(gscore); st->setSystemFlag(false); st->setTextStyle(TEXT_STYLE_STAFF); //TODO st->setSubtype(TEXT_STAFF); st->setText(tr("staff-text")); sp->append(st, tr("Staff Text")); st = new StaffText(gscore); st->setSystemFlag(true); st->setTextStyle(TEXT_STYLE_SYSTEM); // st->setSubtype(TEXT_SYSTEM); st->setText(tr("system-text")); sp->append(st, tr("System Text")); RehearsalMark* rhm = new RehearsalMark(gscore); rhm->setTrack(0); rhm->setText("B1"); sp->append(rhm, tr("RRehearsal Mark")); InstrumentChange* is = new InstrumentChange(gscore); is->setText(tr("Instrument")); sp->append(is, tr("Instrument Change")); Text* text = new Text(gscore); text->setTrack(0); text->setTextStyle(TEXT_STYLE_LYRICS_VERSE_NUMBER); text->setText(tr("1.")); text->setSystemFlag(true); sp->append(text, tr("Lyrics Verse Number")); static const TempoPattern tp[] = { TempoPattern(QString("%1%2 = 80"). arg(QChar(0xd834)).arg(QChar(0xdd5f)), 80.0/60.0), // 1/4 TempoPattern(QString("%1%2 = 80"). arg(QChar(0xd834)).arg(QChar(0xdd5e)), 80.0/30.0), // 1/2 TempoPattern(QString("%1%2 = 80"). arg(QChar(0xd834)).arg(QChar(0xdd60)), 80.0/120.0), // 1/8 TempoPattern(QString("%1%2%3%4 = 80").arg(QChar(0xd834)).arg(QChar(0xdd5f)).arg(QChar(0xd834)).arg(QChar(0xdd6d)), 120.0/60.0), // dotted 1/4 TempoPattern(QString("%1%2%3%4 = 80").arg(QChar(0xd834)).arg(QChar(0xdd5e)).arg(QChar(0xd834)).arg(QChar(0xdd6d)), 120/30.0), // dotted 1/2 TempoPattern(QString("%1%2%3%4 = 80").arg(QChar(0xd834)).arg(QChar(0xdd60)).arg(QChar(0xd834)).arg(QChar(0xdd6d)), 120/120.0) // dotted 1/8 }; for (unsigned i = 0; i < sizeof(tp)/sizeof(*tp); ++i) { TempoText* tt = new TempoText(gscore); tt->setFollowText(true); tt->setTrack(0); tt->setTempo(tp[i].f); tt->setText(tp[i].pattern); sp->append(tt, tr("Tempo Text"), QString(), 1.5); } Harmony* harmony = new Harmony(gscore); harmony->setText("c7"); sp->append(harmony, tr("Chord Name")); paletteBox->addPalette(sp); //----------------------------------- // breaks //----------------------------------- qreal _spatium = gscore->spatium(); sp = new Palette; sp->setName(tr("Breaks && Spacer")); sp->setMag(.7); sp->setGrid(42, 36); sp->setDrawGrid(true); LayoutBreak* lb = new LayoutBreak(gscore); lb->setSubtype(LAYOUT_BREAK_LINE); sp->append(lb, tr("Line break")); lb = new LayoutBreak(gscore); lb->setSubtype(LAYOUT_BREAK_PAGE); sp->append(lb, tr("Page break")); lb = new LayoutBreak(gscore); lb->setSubtype(LAYOUT_BREAK_SECTION); sp->append(lb, tr("Section break")); Spacer* spacer = new Spacer(gscore); spacer->setGap(3 * _spatium); spacer->setSubtype(SPACER_DOWN); sp->append(spacer, tr("Staff spacer down")); spacer = new Spacer(gscore); spacer->setGap(3 * _spatium); spacer->setSubtype(SPACER_UP); sp->append(spacer, tr("Staff spacer up")); paletteBox->addPalette(sp); //----------------------------------- // staff state changes //----------------------------------- #if 0 sp = new Palette; sp->setName(tr("Staff Changes")); sp->setMag(.7); sp->setGrid(42, 36); sp->setDrawGrid(true); StaffState* st = new StaffState(gscore); st->setSubtype(STAFF_STATE_VISIBLE); sp->append(st, tr("set visible")); st = new StaffState(gscore); st->setSubtype(STAFF_STATE_INVISIBLE); sp->append(st, tr("set invisible")); st = new StaffState(gscore); st->setSubtype(STAFF_STATE_TYPE); sp->append(st, tr("change staff type")); st = new StaffState(gscore); st->setSubtype(STAFF_STATE_INSTRUMENT); sp->append(st, tr("change instrument")); paletteBox->addPalette(sp); #endif //----------------------------------- // beam properties //----------------------------------- sp = new Palette; sp->setName(tr("Beam Properties")); sp->setGrid(27, 40); sp->setDrawGrid(true); static const IconAction bpa[] = { { ICON_SBEAM, "beam-start" }, { ICON_MBEAM, "beam-mid" }, { ICON_NBEAM, "no-beam" }, { ICON_BEAM32, "beam32" }, { ICON_BEAM64, "beam64" }, { ICON_AUTOBEAM, "auto-beam" }, { ICON_FBEAM1, "fbeam1" }, { ICON_FBEAM2, "fbeam2" }, { -1, ""} }; populateIconPalette(sp, bpa); paletteBox->addPalette(sp); //----------------------------------- // Symbols //----------------------------------- sp = new Palette; sp->setName(tr("Symbols")); sp->setGrid(42, 45); sp->setDrawGrid(true); sp->append(accDiscantSym); sp->append(accDotSym); sp->append(accFreebaseSym); sp->append(accStdbaseSym); sp->append(accBayanbaseSym); sp->append(accOldEESym); sp->append(accpushSym); sp->append(accpullSym); FretDiagram* fret = new FretDiagram(gscore); fret->setDot(5, 1); fret->setDot(2, 2); fret->setDot(1, 3); fret->setMarker(0, 'X'); fret->setMarker(3, 'O'); fret->setMarker(4, 'O'); sp->append(fret, tr("Fret Diagram")); paletteBox->addPalette(sp); }