27class Lyrics final :
public TextBase {
43 static constexpr int TEMP_MELISMA_TICKS = 1;
52 LyricsLine* _separator;
54 bool isMelisma()
const;
55 virtual void undoChangeProperty(Pid
id,
const QVariant&, PropertyFlags ps)
override;
65 virtual Lyrics* clone()
const override {
return new Lyrics(*
this); }
67 virtual void scanElements(
void* data,
void (*func)(
void*, Element*),
bool all=
true)
override;
68 virtual bool acceptDrop(EditData&)
const override;
69 virtual Element* drop(EditData&)
override;
71 Segment* segment()
const {
return toSegment(parent()->parent()); }
72 Measure* measure()
const {
return toMeasure(parent()->parent()->parent()); }
73 ChordRest* chordRest()
const {
return toChordRest(parent()); }
75 virtual void layout()
override;
78 virtual void write(XmlWriter& xml)
const override;
79 virtual void read(XmlReader&)
override;
80 virtual bool readProperties(XmlReader&);
81 virtual int subtype()
const override {
return _no; }
82 virtual QString subtypeName()
const override {
return QObject::tr(
"Verse %1").arg(
_no + 1); }
83 void setNo(
int n) {
_no = n; }
84 int no()
const {
return _no; }
85 bool isEven()
const {
return _no % 1; }
86 void setSyllabic(
Syllabic s) { _syllabic = s; }
87 Syllabic syllabic()
const {
return _syllabic; }
88 virtual void add(Element*)
override;
89 virtual void remove(Element*)
override;
90 virtual void endEdit(EditData&)
override;
92 Fraction ticks()
const {
return _ticks; }
93 void setTicks(
const Fraction& tick) { _ticks = tick; }
94 Fraction endTick()
const;
95 void removeFromScore();
97 using ScoreElement::undoChangeProperty;
98 using TextBase::paste;
99 virtual void paste(EditData&)
override;
101 virtual QVariant getProperty(Pid propertyId)
const override;
102 virtual bool setProperty(Pid propertyId,
const QVariant&)
override;
103 virtual QVariant propertyDefault(Pid
id)
const override;
104 virtual Sid getPropertyStyle(Pid)
const override;