Replaced direct creation of staff texts to use factory
This commit is contained in:
parent
65f56d02ee
commit
a078e1243d
12 changed files with 30 additions and 17 deletions
|
@ -622,7 +622,7 @@ TextBase* Score::addText(TextStyleType type, bool addToAllScores)
|
|||
if (!chordRest) {
|
||||
break;
|
||||
}
|
||||
textBox = new StaffText(this->dummy()->segment(), TextStyleType::STAFF);
|
||||
textBox = Factory::createStaffText(this->dummy()->segment(), TextStyleType::STAFF);
|
||||
chordRest->undoAddAnnotation(textBox);
|
||||
break;
|
||||
}
|
||||
|
@ -640,7 +640,7 @@ TextBase* Score::addText(TextStyleType type, bool addToAllScores)
|
|||
if (!chordRest) {
|
||||
break;
|
||||
}
|
||||
textBox = new StaffText(this->dummy()->segment(), TextStyleType::EXPRESSION);
|
||||
textBox = Factory::createStaffText(this->dummy()->segment(), TextStyleType::EXPRESSION);
|
||||
textBox->setPlacement(PlacementV::BELOW);
|
||||
textBox->setPropertyFlags(Pid::PLACEMENT, PropertyFlags::UNSTYLED);
|
||||
chordRest->undoAddAnnotation(textBox);
|
||||
|
|
|
@ -627,6 +627,16 @@ CREATE_ITEM_IMPL(StaffState, ElementType::STAFF_STATE, EngravingItem, setupAcces
|
|||
CREATE_ITEM_IMPL(StaffTypeChange, ElementType::STAFFTYPE_CHANGE, MeasureBase, setupAccessible)
|
||||
MAKE_ITEM_IMPL(StaffTypeChange, MeasureBase)
|
||||
|
||||
StaffText* Factory::createStaffText(Segment * parent, Ms::TextStyleType textStyleType, bool setupAccessible)
|
||||
{
|
||||
StaffText* staffText = new StaffText(parent, textStyleType);
|
||||
if (setupAccessible) {
|
||||
staffText->setupAccessible();
|
||||
}
|
||||
|
||||
return staffText;
|
||||
}
|
||||
|
||||
CREATE_ITEM_IMPL(Stem, ElementType::STEM, Chord, setupAccessible)
|
||||
COPY_ITEM_IMPL(Stem)
|
||||
|
||||
|
|
|
@ -149,6 +149,9 @@ public:
|
|||
static Ms::StaffTypeChange* createStaffTypeChange(Ms::MeasureBase* parent, bool setupAccessible = true);
|
||||
static std::shared_ptr<Ms::StaffTypeChange> makeStaffTypeChange(Ms::MeasureBase* parent);
|
||||
|
||||
static Ms::StaffText* createStaffText(Ms::Segment* parent, Ms::TextStyleType textStyleType = TextStyleType::STAFF,
|
||||
bool setupAccessible = true);
|
||||
|
||||
static Ms::Stem* createStem(Ms::Chord* parent, bool setupAccessible = true);
|
||||
static Ms::Stem* copyStem(const Ms::Stem& src);
|
||||
|
||||
|
|
|
@ -1933,7 +1933,7 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e, ReadContext& ctx
|
|||
}
|
||||
} else if (tag == "Text") {
|
||||
segment = m->getSegment(SegmentType::ChordRest, e.tick());
|
||||
StaffText* t = new StaffText(segment);
|
||||
StaffText* t = Factory::createStaffText(segment);
|
||||
t->setTrack(e.track());
|
||||
readStaffText(t, e);
|
||||
if (t->empty()) {
|
||||
|
@ -1957,7 +1957,7 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e, ReadContext& ctx
|
|||
segment->add(t);
|
||||
} else if (tag == "StaffText") {
|
||||
segment = m->getSegment(SegmentType::ChordRest, e.tick());
|
||||
StaffText* t = new StaffText(segment);
|
||||
StaffText* t = Factory::createStaffText(segment);
|
||||
t->setTrack(e.track());
|
||||
readStaffText(t, e);
|
||||
segment->add(t);
|
||||
|
|
|
@ -2774,7 +2774,7 @@ static void readMeasure206(Measure* m, int staffIdx, XmlReader& e, ReadContext&
|
|||
|| styleName == "Volta") { // TODO: is it possible to get it from style?
|
||||
t = new SystemText(ctx.dummy()->segment());
|
||||
} else {
|
||||
t = new StaffText(ctx.dummy()->segment());
|
||||
t = Factory::createStaffText(ctx.dummy()->segment());
|
||||
}
|
||||
t->setTrack(e.track());
|
||||
readTextPropertyStyle206(tctx.tag(), e, t, t);
|
||||
|
|
|
@ -411,7 +411,7 @@ void MeasureRW::readVoice(Measure* measure, XmlReader& e, ReadContext& ctx, int
|
|||
}
|
||||
} else if (tag == "Text") {
|
||||
segment = measure->getSegment(SegmentType::ChordRest, e.tick());
|
||||
StaffText* t = new StaffText(segment);
|
||||
StaffText* t = Factory::createStaffText(segment);
|
||||
t->setTrack(e.track());
|
||||
t->read(e);
|
||||
if (t->empty()) {
|
||||
|
|
|
@ -287,7 +287,7 @@ static void processBasicDrawObj(QList<BasicDrawObj*> objects, Segment* s, int tr
|
|||
break;
|
||||
}
|
||||
}
|
||||
TextBase* text = new StaffText(s);
|
||||
TextBase* text = Factory::createStaffText(s);
|
||||
QFont f(st->font());
|
||||
text->setFamily(f.family());
|
||||
text->setItalic(f.italic());
|
||||
|
|
|
@ -772,7 +772,7 @@ bool GuitarPro4::read(QFile* fp)
|
|||
|
||||
if (capo > 0) {
|
||||
Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
st->setPlainText(QString("Capo. fret ") + QString::number(capo));
|
||||
st->setTrack(i * VOICES);
|
||||
s->add(st);
|
||||
|
|
|
@ -115,7 +115,7 @@ int GuitarPro5::readBeatEffects(int track, Segment* segment)
|
|||
readTremoloBar(track, segment); // readBend();
|
||||
}
|
||||
if (fxBits2 & 0x01) { // Rasgueado effect
|
||||
StaffText* st = new StaffText(score->dummy()->segment());
|
||||
StaffText* st = Factory::createStaffText(score->dummy()->segment());
|
||||
st->setXmlText("rasg.");
|
||||
st->setParent(segment);
|
||||
st->setTrack(track);
|
||||
|
@ -571,7 +571,7 @@ bool GuitarPro5::readTracks()
|
|||
|
||||
if (capo > 0) {
|
||||
Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
st->setPlainText(QString("Capo. fret ") + QString::number(capo));
|
||||
st->setTrack(i * VOICES);
|
||||
s->add(st);
|
||||
|
@ -927,7 +927,7 @@ bool GuitarPro5::read(QFile* fp)
|
|||
}
|
||||
} else {
|
||||
Segment* s = measure->getSegment(SegmentType::KeySig, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
static constexpr char text[][22] = {
|
||||
"fine", "Da Capo", "D.C. al Coda", "D.C. al Double Coda",
|
||||
"D.C. al Fine", "Da Segno", "D.S. al Coda", "D.S. al Double Coda",
|
||||
|
|
|
@ -1505,7 +1505,7 @@ Fraction GuitarPro6::readBeats(QString beats, GPPartInfo* partInfo, Measure* mea
|
|||
}
|
||||
}
|
||||
if (!t && !text.isEmpty()) {
|
||||
StaffText* s = new StaffText(segment);
|
||||
StaffText* s = Factory::createStaffText(segment);
|
||||
s->setPlainText(text);
|
||||
s->setTrack(track);
|
||||
segment->add(s);
|
||||
|
@ -2136,7 +2136,7 @@ void GuitarPro6::readMasterBars(GPPartInfo* partInfo)
|
|||
// no text for two consecutive freetime timesig
|
||||
if (!previousFreeTime) {
|
||||
s = m->getSegment(SegmentType::ChordRest, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
st->setXmlText("Free time");
|
||||
st->setParent(s);
|
||||
st->setTrack(stave);
|
||||
|
@ -2160,7 +2160,7 @@ void GuitarPro6::readMasterBars(GPPartInfo* partInfo)
|
|||
if (!bars[measureCounter].direction.compare("Fine")
|
||||
|| (bars[measureCounter].direction.compare("") && !bars[measureCounter].directionStyle.compare("Jump"))) {
|
||||
Segment* s = measure->getSegment(SegmentType::KeySig, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
if (!bars[measureCounter].direction.compare("Fine")) {
|
||||
st->setXmlText("fine");
|
||||
} else if (!bars[measureCounter].direction.compare("DaCapo")) {
|
||||
|
|
|
@ -1681,7 +1681,7 @@ bool GuitarPro2::read(QFile* fp)
|
|||
|
||||
if (capo > 0) {
|
||||
Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
// st->setTextStyleType(TextStyleType::STAFF);
|
||||
st->setPlainText(QString("Capo. fret ") + QString::number(capo));
|
||||
st->setTrack(i * VOICES);
|
||||
|
@ -2397,7 +2397,7 @@ bool GuitarPro3::read(QFile* fp)
|
|||
|
||||
if (capo > 0) {
|
||||
Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick());
|
||||
StaffText* st = new StaffText(s);
|
||||
StaffText* st = Factory::createStaffText(s);
|
||||
// st->setTextStyleType(TextStyleType::STAFF);
|
||||
st->setPlainText(QString("Capo. fret ") + QString::number(capo));
|
||||
st->setTrack(i * VOICES);
|
||||
|
|
|
@ -2587,7 +2587,7 @@ void MusicXMLParserDirection::direction(const QString& partId,
|
|||
}
|
||||
} else {
|
||||
if (_wordsText != "" || _metroText != "") {
|
||||
t = new StaffText(_score->dummy()->segment());
|
||||
t = Factory::createStaffText(_score->dummy()->segment());
|
||||
t->setXmlText(_wordsText + _metroText);
|
||||
} else {
|
||||
t = new RehearsalMark(_score->dummy()->segment());
|
||||
|
|
Loading…
Reference in a new issue