From 10d1ae052986455cb988543c9e744a39e2806257 Mon Sep 17 00:00:00 2001 From: ws Date: Tue, 24 Jul 2018 15:48:24 +0200 Subject: [PATCH] add method propertyDelegate() to Element --- libmscore/element.cpp | 6 +- libmscore/element.h | 1 + libmscore/fermata.cpp | 21 +- libmscore/glissando.cpp | 121 +------ libmscore/glissando.h | 7 +- libmscore/hairpin.cpp | 62 +--- libmscore/hairpin.h | 4 +- libmscore/line.cpp | 61 +--- libmscore/line.h | 5 +- libmscore/noteline.h | 23 -- libmscore/ottava.cpp | 65 +--- libmscore/ottava.h | 4 +- libmscore/scoreElement.cpp | 13 +- libmscore/slur.h | 2 +- libmscore/spanner.cpp | 66 ++-- libmscore/spanner.h | 2 + libmscore/staff.cpp | 8 +- libmscore/textlinebase.cpp | 46 +-- libmscore/textlinebase.h | 5 +- libmscore/trill.cpp | 50 +-- libmscore/trill.h | 6 +- libmscore/vibrato.cpp | 50 +-- libmscore/vibrato.h | 7 +- libmscore/volta.cpp | 62 +--- libmscore/volta.h | 4 +- mscore/editstyle.cpp | 22 +- mscore/editstyle.ui | 506 ++++++++++++++++++--------- mscore/inspector/inspectorBase.cpp | 3 + mscore/inspector/inspectorOttava.cpp | 33 +- mscore/inspector/inspectorVolta.cpp | 13 + 30 files changed, 521 insertions(+), 757 deletions(-) diff --git a/libmscore/element.cpp b/libmscore/element.cpp index cf124659a0..c9e2ef3dee 100644 --- a/libmscore/element.cpp +++ b/libmscore/element.cpp @@ -1050,9 +1050,9 @@ bool Element::setProperty(Pid propertyId, const QVariant& v) // propertyDefault //--------------------------------------------------------- -QVariant Element::propertyDefault(Pid id) const +QVariant Element::propertyDefault(Pid pid) const { - switch(id) { + switch (pid) { case Pid::GENERATED: return false; case Pid::VISIBLE: @@ -1070,7 +1070,7 @@ QVariant Element::propertyDefault(Pid id) const case Pid::Z: return int(type()) * 100; default: - return ScoreElement::propertyDefault(id); + return ScoreElement::propertyDefault(pid); } } diff --git a/libmscore/element.h b/libmscore/element.h index 2cd87324e1..e24b529bf1 100644 --- a/libmscore/element.h +++ b/libmscore/element.h @@ -407,6 +407,7 @@ class Element : public ScoreElement { virtual QVariant getProperty(Pid) const override; virtual bool setProperty(Pid, const QVariant&) override; virtual QVariant propertyDefault(Pid) const override; + virtual Element* propertyDelegate(Pid) { return 0; } // return Spanner for SpannerSegment for some properties bool custom(Pid) const; virtual bool isUserModified() const; diff --git a/libmscore/fermata.cpp b/libmscore/fermata.cpp index 9dcfc48a1c..b06bf0ba5e 100644 --- a/libmscore/fermata.cpp +++ b/libmscore/fermata.cpp @@ -186,9 +186,6 @@ Page* Fermata::page() const void Fermata::layout() { - QRectF b(symBbox(_symId)); - setbbox(b.translated(-0.5 * b.width(), 0.0)); - Segment* s = segment(); if (!s) { // for use in palette setPos(QPointF()); @@ -197,10 +194,10 @@ void Fermata::layout() qreal x = 0.0; Element* e = s->element(track()); - if (e && !e->isChord()) - x = e->x() + e->width() * staff()->mag(0) * .5; - else + if (e && e->isChord()) x = score()->noteHeadWidth() * staff()->mag(0) * .5; + else + x = e->x() + e->width() * staff()->mag(0) * .5; qreal y = placeAbove() ? styleP(Sid::fermataPosAbove) : styleP(Sid::fermataPosBelow) + staff()->height(); setPos(QPointF(x, y)); @@ -209,19 +206,15 @@ void Fermata::layout() QString name = Sym::id2name(_symId); if (placeAbove()) { - if (name.endsWith("Below")) { + if (name.endsWith("Below")) _symId = Sym::name2id(name.left(name.size() - 5) + "Above"); - QRectF b(symBbox(_symId)); - setbbox(b.translated(-0.5 * b.width(), 0.0)); - } } else { - if (name.endsWith("Above")) { + if (name.endsWith("Above")) _symId = Sym::name2id(name.left(name.size() - 5) + "Below"); - QRectF b(symBbox(_symId)); - setbbox(b.translated(-0.5 * b.width(), 0.0)); - } } + QRectF b(symBbox(_symId)); + setbbox(b.translated(-0.5 * b.width(), 0.0)); autoplaceSegmentElement(styleP(Sid::fermataMinDistance)); } diff --git a/libmscore/glissando.cpp b/libmscore/glissando.cpp index e12eb60f8a..9667111ce0 100644 --- a/libmscore/glissando.cpp +++ b/libmscore/glissando.cpp @@ -119,13 +119,12 @@ void GlissandoSegment::draw(QPainter* painter) const } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant GlissandoSegment::getProperty(Pid id) const +Element* GlissandoSegment::propertyDelegate(Pid pid) { - switch (id) { - // route properties of the whole Glissando element to it + switch (pid) { case Pid::GLISS_TYPE: case Pid::GLISS_TEXT: case Pid::GLISS_SHOW_TEXT: @@ -137,119 +136,9 @@ QVariant GlissandoSegment::getProperty(Pid id) const case Pid::FONT_ITALIC: case Pid::FONT_UNDERLINE: case Pid::LINE_WIDTH: - return glissando()->getProperty(id); + return glissando(); default: - return LineSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool GlissandoSegment::setProperty(Pid id, const QVariant& v) - { - switch (id) { - case Pid::GLISS_TYPE: - case Pid::GLISS_TEXT: - case Pid::GLISS_SHOW_TEXT: - case Pid::GLISSANDO_STYLE: - case Pid::PLAY: - case Pid::FONT_FACE: - case Pid::FONT_SIZE: - case Pid::FONT_BOLD: - case Pid::FONT_ITALIC: - case Pid::FONT_UNDERLINE: - case Pid::LINE_WIDTH: - return glissando()->setProperty(id, v); - default: - return LineSegment::setProperty(id, v); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant GlissandoSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::GLISS_TYPE: - case Pid::GLISS_TEXT: - case Pid::GLISS_SHOW_TEXT: - case Pid::GLISSANDO_STYLE: - case Pid::PLAY: - case Pid::FONT_FACE: - case Pid::FONT_SIZE: - case Pid::FONT_BOLD: - case Pid::FONT_ITALIC: - case Pid::FONT_UNDERLINE: - case Pid::LINE_WIDTH: - return glissando()->propertyDefault(id); - default: - return LineSegment::propertyDefault(id); - } - } - -//--------------------------------------------------------- -// propertyFlags -//--------------------------------------------------------- - -PropertyFlags GlissandoSegment::propertyFlags(Pid id) const - { - switch (id) { - case Pid::FONT_FACE: - case Pid::FONT_SIZE: - case Pid::FONT_BOLD: - case Pid::FONT_ITALIC: - case Pid::FONT_UNDERLINE: - case Pid::LINE_WIDTH: - return glissando()->propertyFlags(id); - - default: - return LineSegment::propertyFlags(id); - } - } - -//--------------------------------------------------------- -// setPropertyFlags -//--------------------------------------------------------- - -void GlissandoSegment::setPropertyFlags(Pid id, PropertyFlags f) - { - switch (id) { - case Pid::FONT_FACE: - case Pid::FONT_SIZE: - case Pid::FONT_BOLD: - case Pid::FONT_ITALIC: - case Pid::FONT_UNDERLINE: - case Pid::LINE_WIDTH: - glissando()->setPropertyFlags(id, f); - break; - - default: - LineSegment::setPropertyFlags(id, f); - break; - } - } - -//--------------------------------------------------------- -// getPropertyStyle -//--------------------------------------------------------- - -Sid GlissandoSegment::getPropertyStyle(Pid id) const - { - switch (id) { - case Pid::FONT_FACE: - case Pid::FONT_SIZE: - case Pid::FONT_BOLD: - case Pid::FONT_ITALIC: - case Pid::FONT_UNDERLINE: - case Pid::LINE_WIDTH: - return glissando()->getPropertyStyle(id); - - default: - return LineSegment::getPropertyStyle(id); + return LineSegment::propertyDelegate(pid); } } diff --git a/libmscore/glissando.h b/libmscore/glissando.h index 17307686c6..f2d060c800 100644 --- a/libmscore/glissando.h +++ b/libmscore/glissando.h @@ -39,12 +39,7 @@ class GlissandoSegment final : public LineSegment { virtual void draw(QPainter*) const override; virtual void layout() override; - virtual QVariant getProperty(Pid id) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid id) const override; - virtual PropertyFlags propertyFlags(Pid) const override; - virtual void setPropertyFlags(Pid id, PropertyFlags f) override; - virtual Sid getPropertyStyle(Pid) const override; + virtual Element* propertyDelegate(Pid) override; }; //--------------------------------------------------------- diff --git a/libmscore/hairpin.cpp b/libmscore/hairpin.cpp index 3b0353c390..cdbc2bdccb 100644 --- a/libmscore/hairpin.cpp +++ b/libmscore/hairpin.cpp @@ -374,66 +374,14 @@ void HairpinSegment::draw(QPainter* painter) const } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant HairpinSegment::getProperty(Pid id) const +Element* HairpinSegment::propertyDelegate(Pid pid) { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->getProperty(id); - } - switch (id) { - case Pid::VELO_CHANGE: - case Pid::HAIRPIN_TYPE: - case Pid::HAIRPIN_CIRCLEDTIP: - case Pid::DYNAMIC_RANGE: - return spanner()->getProperty(id); - default: - return TextLineBaseSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool HairpinSegment::setProperty(Pid id, const QVariant& v) - { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->setProperty(id, v); - } - switch (id) { - case Pid::VELO_CHANGE: - case Pid::HAIRPIN_TYPE: - case Pid::HAIRPIN_CIRCLEDTIP: - case Pid::DYNAMIC_RANGE: - return spanner()->setProperty(id, v); - default: - return TextLineBaseSegment::setProperty(id, v); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant HairpinSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::VELO_CHANGE: - case Pid::HAIRPIN_TYPE: - case Pid::HAIRPIN_CIRCLEDTIP: - case Pid::DYNAMIC_RANGE: - return spanner()->propertyDefault(id); - default: - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->propertyDefault(id); - } - return TextLineBaseSegment::propertyDefault(id); - } + if (pid == Pid::HAIRPIN_TYPE || pid == Pid::VELO_CHANGE || pid == Pid::HAIRPIN_CIRCLEDTIP || pid == Pid::DYNAMIC_RANGE) + return spanner(); + return TextLineBaseSegment::propertyDelegate(pid); } //--------------------------------------------------------- diff --git a/libmscore/hairpin.h b/libmscore/hairpin.h index 47beb501f6..8261abdb25 100644 --- a/libmscore/hairpin.h +++ b/libmscore/hairpin.h @@ -55,9 +55,7 @@ class HairpinSegment final : public TextLineBaseSegment { Hairpin* hairpin() const { return (Hairpin*)spanner(); } - virtual QVariant getProperty(Pid) const override; - virtual bool setProperty(Pid, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; + virtual Element* propertyDelegate(Pid) override; virtual void layout() override; virtual Shape shape() const override; diff --git a/libmscore/line.cpp b/libmscore/line.cpp index 127f137f3f..45f1c66970 100644 --- a/libmscore/line.cpp +++ b/libmscore/line.cpp @@ -406,60 +406,19 @@ void LineSegment::localSpatiumChanged(qreal ov, qreal nv) } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant LineSegment::getProperty(Pid id) const +Element* LineSegment::propertyDelegate(Pid pid) { - switch (id) { - case Pid::DIAGONAL: - case Pid::LINE_COLOR: - case Pid::LINE_WIDTH: - case Pid::LINE_STYLE: - case Pid::DASH_LINE_LEN: - case Pid::DASH_GAP_LEN: - return line()->getProperty(id); - default: - return SpannerSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool LineSegment::setProperty(Pid id, const QVariant& val) - { - switch (id) { - case Pid::DIAGONAL: - case Pid::LINE_COLOR: - case Pid::LINE_WIDTH: - case Pid::LINE_STYLE: - case Pid::DASH_LINE_LEN: - case Pid::DASH_GAP_LEN: - return line()->setProperty(id, val); - default: - return SpannerSegment::setProperty(id, val); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant LineSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::DIAGONAL: - case Pid::LINE_COLOR: - case Pid::LINE_WIDTH: - case Pid::LINE_STYLE: - case Pid::DASH_LINE_LEN: - case Pid::DASH_GAP_LEN: - return line()->propertyDefault(id); - default: - return SpannerSegment::propertyDefault(id); - } + if (pid == Pid::DIAGONAL + || pid == Pid::LINE_COLOR + || pid == Pid::LINE_WIDTH + || pid == Pid::LINE_STYLE + || pid == Pid::DASH_LINE_LEN + || pid == Pid::DASH_GAP_LEN) + return spanner(); + return SpannerSegment::propertyDelegate(pid); } //--------------------------------------------------------- diff --git a/libmscore/line.h b/libmscore/line.h index 3a43dd728c..1dc08ed9f1 100644 --- a/libmscore/line.h +++ b/libmscore/line.h @@ -52,9 +52,8 @@ class LineSegment : public SpannerSegment { virtual void read(XmlReader&) override; bool readProperties(XmlReader&); - virtual QVariant getProperty(Pid id) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid id) const override; + virtual Element* propertyDelegate(Pid) override; + virtual QLineF dragAnchor() const override; }; diff --git a/libmscore/noteline.h b/libmscore/noteline.h index 13d6e9a5c0..a1db0aae5d 100644 --- a/libmscore/noteline.h +++ b/libmscore/noteline.h @@ -19,29 +19,6 @@ namespace Ms { class Note; -#if 0 -//--------------------------------------------------------- -// @@ TextLineSegment -//--------------------------------------------------------- - -class TextLineSegment : public TextLineBaseSegment { - protected: - - public: - TextLineSegment(Score* s) : TextLineBaseSegment(s) { } - virtual ElementType type() const override { return ElementType::TEXTLINE_SEGMENT; } - virtual TextLineSegment* clone() const override { return new TextLineSegment(*this); } - TextLine* textLine() const { return (TextLine*)spanner(); } - virtual void layout() override; - virtual QVariant getProperty(Pid propertyId) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; - virtual PropertyStyle propertyStyle(Pid) const override; - virtual void resetProperty(Pid id) override; - virtual void styleChanged() override; - }; -#endif - //--------------------------------------------------------- // @@ NoteLine //--------------------------------------------------------- diff --git a/libmscore/ottava.cpp b/libmscore/ottava.cpp index 27ded9ba5d..3ccf6cb031 100644 --- a/libmscore/ottava.cpp +++ b/libmscore/ottava.cpp @@ -81,60 +81,14 @@ void OttavaSegment::layout() } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant OttavaSegment::getProperty(Pid id) const +Element* OttavaSegment::propertyDelegate(Pid pid) { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->getProperty(id); - } - switch (id) { - case Pid::OTTAVA_TYPE: - case Pid::NUMBERS_ONLY: - return spanner()->getProperty(id); - default: - return TextLineBaseSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool OttavaSegment::setProperty(Pid id, const QVariant& v) - { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->setProperty(id, v); - } - switch (id) { - case Pid::OTTAVA_TYPE: - case Pid::NUMBERS_ONLY: - return spanner()->setProperty(id, v); - default: - return TextLineBaseSegment::setProperty(id, v); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant OttavaSegment::propertyDefault(Pid id) const - { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->propertyDefault(id); - } - switch (id) { - case Pid::OTTAVA_TYPE: - case Pid::NUMBERS_ONLY: - return spanner()->propertyDefault(id); - default: - return TextLineBaseSegment::propertyDefault(id); - } + if (pid == Pid::OTTAVA_TYPE || pid == Pid::NUMBERS_ONLY) + return spanner(); + return TextLineBaseSegment::propertyDelegate(pid); } //--------------------------------------------------------- @@ -415,9 +369,9 @@ bool Ottava::setProperty(Pid propertyId, const QVariant& val) // propertyDefault //--------------------------------------------------------- -QVariant Ottava::propertyDefault(Pid propertyId) const +QVariant Ottava::propertyDefault(Pid pid) const { - switch (propertyId) { + switch (pid) { case Pid::OTTAVA_TYPE: return QVariant(); case Pid::END_HOOK_TYPE: @@ -425,11 +379,10 @@ QVariant Ottava::propertyDefault(Pid propertyId) const case Pid::LINE_VISIBLE: return true; default: - QVariant v = ScoreElement::styledPropertyDefault(propertyId); + QVariant v = ScoreElement::styledPropertyDefault(pid); if (v.isValid()) return v; - return getProperty(propertyId); - + return getProperty(pid); } } diff --git a/libmscore/ottava.h b/libmscore/ottava.h index dd9ba2440d..13363df22f 100644 --- a/libmscore/ottava.h +++ b/libmscore/ottava.h @@ -56,9 +56,7 @@ class OttavaSegment final : public TextLineBaseSegment { virtual OttavaSegment* clone() const override { return new OttavaSegment(*this); } Ottava* ottava() const { return (Ottava*)spanner(); } virtual void layout() override; - virtual QVariant getProperty(Pid propertyId) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; + virtual Element* propertyDelegate(Pid) override; }; //--------------------------------------------------------- diff --git a/libmscore/scoreElement.cpp b/libmscore/scoreElement.cpp index 89ebaacb52..032f7a46df 100644 --- a/libmscore/scoreElement.cpp +++ b/libmscore/scoreElement.cpp @@ -179,14 +179,14 @@ void ScoreElement::setSubStyleId(SubStyleId ssid) // propertyDefault //--------------------------------------------------------- -QVariant ScoreElement::propertyDefault(Pid id) const +QVariant ScoreElement::propertyDefault(Pid pid) const { - if (id == Pid::SUB_STYLE) + if (pid == Pid::SUB_STYLE) return int(SubStyleId::DEFAULT); // this is wrong, styled properties should be considered first: - QVariant v = styledPropertyDefault(id); + QVariant v = styledPropertyDefault(pid); if (!v.isValid()) { - qDebug("<%s>(%d) not found in <%s> style <%s>", propertyName(id), int(id), name(), subStyleName(subStyleId())); + qDebug("<%s>(%d) not found in <%s> style <%s>", propertyName(pid), int(pid), name(), subStyleName(subStyleId())); } return v; } @@ -271,11 +271,6 @@ bool ScoreElement::isStyled(Pid pid) const static void changeProperty(ScoreElement* e, Pid t, const QVariant& st, PropertyFlags ps) { - if (e->isSpannerSegment()) { - QVariant v = e->getProperty(t); - if (!v.isValid()) - e = toSpannerSegment(e)->spanner(); - } if (e->getProperty(t) != st || e->propertyFlags(t) != ps) { if (e->isBracketItem()) { BracketItem* bi = toBracketItem(e); diff --git a/libmscore/slur.h b/libmscore/slur.h index b993a2fde2..0b96818c2a 100644 --- a/libmscore/slur.h +++ b/libmscore/slur.h @@ -32,7 +32,7 @@ class SlurSegment final : public SlurTieSegment { SlurSegment(const SlurSegment& ss) : SlurTieSegment(ss) {} virtual SlurSegment* clone() const override { return new SlurSegment(*this); } - virtual ElementType type() const override { return ElementType::SLUR_SEGMENT; } + virtual ElementType type() const override { return ElementType::SLUR_SEGMENT; } virtual int subtype() const override { return static_cast(spanner()->type()); } virtual QString subtypeName() const override { return name(spanner()->type()); } virtual void draw(QPainter*) const override; diff --git a/libmscore/spanner.cpp b/libmscore/spanner.cpp index 7d11996ac7..3fd7f916c7 100644 --- a/libmscore/spanner.cpp +++ b/libmscore/spanner.cpp @@ -65,20 +65,30 @@ void SpannerSegment::setSystem(System* s) } } +//--------------------------------------------------------- +// propertyDelegate +//--------------------------------------------------------- + +Element* SpannerSegment::propertyDelegate(Pid pid) + { + if (pid == Pid::COLOR || pid == Pid::VISIBLE) + return spanner(); + return 0; + } + //--------------------------------------------------------- // getProperty //--------------------------------------------------------- -QVariant SpannerSegment::getProperty(Pid id) const +QVariant SpannerSegment::getProperty(Pid pid) const { - switch (id) { - case Pid::COLOR: - case Pid::VISIBLE: - return spanner()->getProperty(id); + if (Element* e = const_cast(this)->propertyDelegate(pid)) + return e->getProperty(pid); + switch (pid) { case Pid::USER_OFF2: return _userOff2; default: - return Element::getProperty(id); + return Element::getProperty(pid); } } @@ -86,18 +96,17 @@ QVariant SpannerSegment::getProperty(Pid id) const // setProperty //--------------------------------------------------------- -bool SpannerSegment::setProperty(Pid id, const QVariant& v) +bool SpannerSegment::setProperty(Pid pid, const QVariant& v) { - switch (id) { - case Pid::COLOR: - case Pid::VISIBLE: - return spanner()->setProperty(id, v); + if (Element* e = propertyDelegate(pid)) + return e->setProperty(pid, v); + switch (pid) { case Pid::USER_OFF2: _userOff2 = v.toPointF(); score()->setLayoutAll(); break; default: - return Element::setProperty(id, v); + return Element::setProperty(pid, v); } return true; } @@ -106,16 +115,15 @@ bool SpannerSegment::setProperty(Pid id, const QVariant& v) // propertyDefault //--------------------------------------------------------- -QVariant SpannerSegment::propertyDefault(Pid id) const +QVariant SpannerSegment::propertyDefault(Pid pid) const { - switch (id) { - case Pid::COLOR: - case Pid::VISIBLE: - return spanner()->propertyDefault(id); + if (Element* e = const_cast(this)->propertyDelegate(pid)) + return e->propertyDefault(pid); + switch (pid) { case Pid::USER_OFF2: return QVariant(); default: - return Element::propertyDefault(id); + return Element::propertyDefault(pid); } } @@ -123,31 +131,33 @@ QVariant SpannerSegment::propertyDefault(Pid id) const // getPropertyStyle //--------------------------------------------------------- -Sid SpannerSegment::getPropertyStyle(Pid id) const +Sid SpannerSegment::getPropertyStyle(Pid pid) const { - return spanner()->getPropertyStyle(id); + if (Element* e = const_cast(this)->propertyDelegate(pid)) + return e->getPropertyStyle(pid); + return Element::getPropertyStyle(pid); } //--------------------------------------------------------- // propertyFlags //--------------------------------------------------------- -PropertyFlags SpannerSegment::propertyFlags(Pid id) const +PropertyFlags SpannerSegment::propertyFlags(Pid pid) const { - return spanner()->propertyFlags(id); + if (Element* e = const_cast(this)->propertyDelegate(pid)) + return e->propertyFlags(pid); + return Element::propertyFlags(pid); } //--------------------------------------------------------- // resetProperty //--------------------------------------------------------- -void SpannerSegment::resetProperty(Pid id) +void SpannerSegment::resetProperty(Pid pid) { - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->resetProperty(id); - } - return Element::resetProperty(id); + if (Element* e = propertyDelegate(pid)) + return e->resetProperty(pid); + return Element::resetProperty(pid); } //--------------------------------------------------------- diff --git a/libmscore/spanner.h b/libmscore/spanner.h index edf6018630..70b4f4a22a 100644 --- a/libmscore/spanner.h +++ b/libmscore/spanner.h @@ -92,6 +92,8 @@ class SpannerSegment : public Element { virtual QVariant getProperty(Pid id) const override; virtual bool setProperty(Pid id, const QVariant& v) override; virtual QVariant propertyDefault(Pid id) const override; + virtual Element* propertyDelegate(Pid) override; + virtual Sid getPropertyStyle(Pid id) const override; virtual PropertyFlags propertyFlags(Pid id) const override; virtual void resetProperty(Pid id) override; diff --git a/libmscore/staff.cpp b/libmscore/staff.cpp index 9419ca6fe5..4d7b903622 100644 --- a/libmscore/staff.cpp +++ b/libmscore/staff.cpp @@ -1282,8 +1282,10 @@ QVariant Staff::getProperty(Pid id) const return barLineTo(); case Pid::STAFF_USERDIST: return userDist(); + case Pid::GENERATED: + return false; default: - qDebug("unhandled id %s", propertyName(id)); + qDebug("unhandled id <%s>", propertyName(id)); return QVariant(); } } @@ -1332,7 +1334,7 @@ bool Staff::setProperty(Pid id, const QVariant& v) setUserDist(v.toReal()); break; default: - qDebug("unhandled id %s", propertyName(id)); + qDebug("unhandled id <%s>", propertyName(id)); break; } score()->setLayoutAll(); @@ -1365,7 +1367,7 @@ QVariant Staff::propertyDefault(Pid id) const case Pid::STAFF_USERDIST: return qreal(0.0); default: - qDebug("unhandled id %s", propertyName(id)); + qDebug("unhandled id <%s>", propertyName(id)); return QVariant(); } } diff --git a/libmscore/textlinebase.cpp b/libmscore/textlinebase.cpp index 6021ad4684..2f7e61f82b 100644 --- a/libmscore/textlinebase.cpp +++ b/libmscore/textlinebase.cpp @@ -322,10 +322,6 @@ void TextLineBaseSegment::spatiumChanged(qreal ov, qreal nv) _endText->spatiumChanged(ov, nv); } -//--------------------------------------------------------- -// pids -//--------------------------------------------------------- - static constexpr std::array pids = { { Pid::LINE_WIDTH, Pid::LINE_VISIBLE, @@ -364,42 +360,16 @@ static constexpr std::array pids = { { } }; //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant TextLineBaseSegment::getProperty(Pid id) const +Element* TextLineBaseSegment::propertyDelegate(Pid pid) { - for (Pid pid : pids) { + for (Pid id : pids) { if (pid == id) - return textLineBase()->getProperty(id); + return spanner(); } - return LineSegment::getProperty(id); - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool TextLineBaseSegment::setProperty(Pid id, const QVariant& v) - { - for (Pid pid : pids) { - if (pid == id) - return textLineBase()->setProperty(id, v); - } - return LineSegment::setProperty(id, v); - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant TextLineBaseSegment::propertyDefault(Pid id) const - { - for (Pid pid : pids) { - if (pid == id) - return textLineBase()->propertyDefault(id); - } - return LineSegment::propertyDefault(id); + return LineSegment::propertyDelegate(pid); } //--------------------------------------------------------- @@ -671,11 +641,11 @@ bool TextLineBase::setProperty(Pid id, const QVariant& v) // propertyDefault //--------------------------------------------------------- -QVariant TextLineBase::propertyDefault(Pid id) const +QVariant TextLineBase::propertyDefault(Pid pid) const { - QVariant v = styledPropertyDefault(id); + QVariant v = styledPropertyDefault(pid); if (!v.isValid()) - v = SLine::propertyDefault(id); + v = SLine::propertyDefault(pid); return v; } diff --git a/libmscore/textlinebase.h b/libmscore/textlinebase.h index 720f849464..fca40f05e0 100644 --- a/libmscore/textlinebase.h +++ b/libmscore/textlinebase.h @@ -49,9 +49,8 @@ class TextLineBaseSegment : public LineSegment { virtual void spatiumChanged(qreal /*oldValue*/, qreal /*newValue*/) override; - virtual QVariant getProperty(Pid id) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid id) const override; + virtual Element* propertyDelegate(Pid) override; + virtual Shape shape() const override; }; diff --git a/libmscore/trill.cpp b/libmscore/trill.cpp index ab136fefa7..005322a5b7 100644 --- a/libmscore/trill.cpp +++ b/libmscore/trill.cpp @@ -218,54 +218,14 @@ Element* TrillSegment::drop(EditData& data) } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant TrillSegment::getProperty(Pid id) const +Element* TrillSegment::propertyDelegate(Pid pid) { - switch (id) { - case Pid::TRILL_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return trill()->getProperty(id); - default: - return LineSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool TrillSegment::setProperty(Pid id, const QVariant& v) - { - switch (id) { - case Pid::TRILL_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return trill()->setProperty(id, v); - default: - return LineSegment::setProperty(id, v); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant TrillSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::TRILL_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return trill()->propertyDefault(id); - default: - return LineSegment::propertyDefault(id); - } + if (pid == Pid::TRILL_TYPE || pid == Pid::ORNAMENT_STYLE || pid == Pid::PLACEMENT || pid == Pid::PLAY) + return spanner(); + return LineSegment::propertyDelegate(pid); } //--------------------------------------------------------- diff --git a/libmscore/trill.h b/libmscore/trill.h index dd87887257..1e9b293287 100644 --- a/libmscore/trill.h +++ b/libmscore/trill.h @@ -40,9 +40,9 @@ class TrillSegment final : public LineSegment { virtual bool acceptDrop(EditData&) const override; virtual Element* drop(EditData&) override; virtual void layout() override; - virtual QVariant getProperty(Pid propertyId) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; + + virtual Element* propertyDelegate(Pid) override; + virtual void add(Element*) override; virtual void remove(Element*) override; virtual void scanElements(void* data, void (*func)(void*, Element*), bool all) override; diff --git a/libmscore/vibrato.cpp b/libmscore/vibrato.cpp index 43e6b6bd5f..b6dfa1dfd5 100644 --- a/libmscore/vibrato.cpp +++ b/libmscore/vibrato.cpp @@ -151,54 +151,14 @@ Shape VibratoSegment::shape() const } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant VibratoSegment::getProperty(Pid id) const +Element* VibratoSegment::propertyDelegate(Pid pid) { - switch (id) { - case Pid::VIBRATO_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return vibrato()->getProperty(id); - default: - return LineSegment::getProperty(id); - } - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool VibratoSegment::setProperty(Pid id, const QVariant& v) - { - switch (id) { - case Pid::VIBRATO_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return vibrato()->setProperty(id, v); - default: - return LineSegment::setProperty(id, v); - } - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant VibratoSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::VIBRATO_TYPE: - case Pid::ORNAMENT_STYLE: - case Pid::PLACEMENT: - case Pid::PLAY: - return vibrato()->propertyDefault(id); - default: - return LineSegment::propertyDefault(id); - } + if (pid == Pid::VIBRATO_TYPE || pid == Pid::ORNAMENT_STYLE || pid == Pid::PLACEMENT || pid == Pid::PLAY) + return spanner(); + return LineSegment::propertyDelegate(pid); } //--------------------------------------------------------- diff --git a/libmscore/vibrato.h b/libmscore/vibrato.h index 6f827686bb..8e5abb8769 100644 --- a/libmscore/vibrato.h +++ b/libmscore/vibrato.h @@ -38,11 +38,10 @@ class VibratoSegment final : public LineSegment { virtual VibratoSegment* clone() const override { return new VibratoSegment(*this); } virtual void draw(QPainter*) const override; virtual void layout() override; - virtual QVariant getProperty(Pid propertyId) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; - Shape shape() const override; + virtual Element* propertyDelegate(Pid) override; + + Shape shape() const override; std::vector symbols() const { return _symbols; } void setSymbols(const std::vector& s) { _symbols = s; } }; diff --git a/libmscore/volta.cpp b/libmscore/volta.cpp index 04474d0632..6f693622ff 100644 --- a/libmscore/volta.cpp +++ b/libmscore/volta.cpp @@ -41,66 +41,14 @@ void VoltaSegment::layout() } //--------------------------------------------------------- -// getProperty +// propertyDelegate //--------------------------------------------------------- -QVariant VoltaSegment::getProperty(Pid id) const +Element* VoltaSegment::propertyDelegate(Pid pid) { - switch (id) { - case Pid::BEGIN_HOOK_TYPE: - case Pid::END_HOOK_TYPE: - case Pid::VOLTA_ENDING: - return spanner()->getProperty(id); - default: - break; - } - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->getProperty(id); - } - return TextLineBaseSegment::getProperty(id); - } - -//--------------------------------------------------------- -// setProperty -//--------------------------------------------------------- - -bool VoltaSegment::setProperty(Pid id, const QVariant& v) - { - switch (id) { - case Pid::BEGIN_HOOK_TYPE: - case Pid::END_HOOK_TYPE: - case Pid::VOLTA_ENDING: - return spanner()->setProperty(id, v); - default: - break; - } - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->setProperty(id, v); - } - return TextLineBaseSegment::setProperty(id, v); - } - -//--------------------------------------------------------- -// propertyDefault -//--------------------------------------------------------- - -QVariant VoltaSegment::propertyDefault(Pid id) const - { - switch (id) { - case Pid::BEGIN_HOOK_TYPE: - case Pid::END_HOOK_TYPE: - case Pid::VOLTA_ENDING: - return volta()->propertyDefault(id); - default: - break; - } - for (const StyledProperty* spp = spanner()->styledProperties(); spp->sid != Sid::NOSTYLE; ++spp) { - if (spp->pid == id) - return spanner()->propertyDefault(id); - } - return TextLineBaseSegment::propertyDefault(id); + if (pid == Pid::BEGIN_HOOK_TYPE || pid == Pid::END_HOOK_TYPE || pid == Pid::VOLTA_ENDING) + return spanner(); + return TextLineBaseSegment::propertyDelegate(pid); } //--------------------------------------------------------- diff --git a/libmscore/volta.h b/libmscore/volta.h index 6737aa5e19..7d75467d78 100644 --- a/libmscore/volta.h +++ b/libmscore/volta.h @@ -37,9 +37,7 @@ class VoltaSegment final : public TextLineBaseSegment { Volta* volta() const { return (Volta*)spanner(); } virtual void layout() override; - virtual QVariant getProperty(Pid propertyId) const override; - virtual bool setProperty(Pid propertyId, const QVariant&) override; - virtual QVariant propertyDefault(Pid) const override; + virtual Element* propertyDelegate(Pid) override; }; //--------------------------------------------------------- diff --git a/mscore/editstyle.cpp b/mscore/editstyle.cpp index b8452acf78..deb6fbb407 100644 --- a/mscore/editstyle.cpp +++ b/mscore/editstyle.cpp @@ -136,12 +136,12 @@ EditStyle::EditStyle(Score* s, QWidget* parent) { Sid::minMeasureWidth, false, minMeasureWidth_2, resetMinMeasureWidth }, { Sid::measureSpacing, false, measureSpacing, resetMeasureSpacing }, - { Sid::barWidth, false, barWidth, 0 }, - { Sid::endBarWidth, false, endBarWidth, 0 }, - { Sid::endBarDistance, false, endBarDistance, 0 }, - { Sid::doubleBarWidth, false, doubleBarWidth, 0 }, - { Sid::doubleBarDistance, false, doubleBarDistance, 0 }, - { Sid::repeatBarlineDotSeparation, false, repeatBarlineDotSeparation, 0 }, + { Sid::barWidth, false, barWidth, resetBarWidth }, + { Sid::endBarWidth, false, endBarWidth, resetEndBarWidth }, + { Sid::endBarDistance, false, endBarDistance, resetEndBarDistance }, + { Sid::doubleBarWidth, false, doubleBarWidth, resetDoubleBarWidth }, + { Sid::doubleBarDistance, false, doubleBarDistance, resetDoubleBarDistance }, + { Sid::repeatBarlineDotSeparation, false, repeatBarlineDotSeparation, resetRepeatBarlineDotSeparation }, { Sid::barGraceDistance, false, barGraceDistance, resetBarGraceDistance }, { Sid::useStandardNoteNames, false, useStandardNoteNames, 0 }, @@ -264,16 +264,16 @@ EditStyle::EditStyle(Score* s, QWidget* parent) { Sid::tupletNumberType, false, tupletNumberType, resetTupletNumberType }, { Sid::tupletBracketType, false, tupletBracketType, resetTupletBracketType }, { Sid::tupletMaxSlope, false, tupletMaxSlope, resetTupletMaxSlope }, - { Sid::tupletOufOfStaff, false, tupletOutOfStaff, 0 }, + { Sid::tupletOufOfStaff, false, tupletOutOfStaff, 0 }, { Sid::tupletFontFace, false, tupletFontFace, resetTupletFontFace }, { Sid::tupletFontSize, false, tupletFontSize, resetTupletFontSize }, { Sid::tupletFontBold, false, tupletFontBold, resetTupletFontBold }, { Sid::tupletFontItalic, false, tupletFontItalic, resetTupletFontItalic }, { Sid::tupletFontUnderline, false, tupletFontUnderline, resetTupletFontUnderline }, - { Sid::repeatBarTips, false, showRepeatBarTips, 0 }, - { Sid::startBarlineSingle, false, showStartBarlineSingle, 0 }, - { Sid::startBarlineMultiple, false, showStartBarlineMultiple, 0 }, + { Sid::repeatBarTips, false, showRepeatBarTips, resetShowRepeatBarTips }, + { Sid::startBarlineSingle, false, showStartBarlineSingle, resetShowStartBarlineSingle }, + { Sid::startBarlineMultiple, false, showStartBarlineMultiple, resetShowStartBarlineMultiple }, { Sid::dividerLeftSym, false, dividerLeftSym, 0 }, { Sid::dividerRightSym, false, dividerRightSym, 0 }, @@ -356,7 +356,7 @@ EditStyle::EditStyle(Score* s, QWidget* parent) { Sid::fretY, false, fretY, 0 }, { Sid::barreLineWidth, false, barreLineWidth, 0 }, { Sid::fretMag, false, fretMag, 0 }, - { Sid::scaleBarlines, false, scaleBarlines, 0 }, + { Sid::scaleBarlines, false, scaleBarlines, resetScaleBarlines}, { Sid::crossMeasureValues, false, crossMeasureValues, 0 }, { Sid::MusicalSymbolFont, false, musicalSymbolFont, 0 }, diff --git a/mscore/editstyle.ui b/mscore/editstyle.ui index 2117059e01..e9ba5eefa0 100644 --- a/mscore/editstyle.ui +++ b/mscore/editstyle.ui @@ -13,8 +13,8 @@ Edit General Style - - + + Qt::Horizontal @@ -23,6 +23,9 @@ true + + 2 + Score @@ -191,7 +194,7 @@ - 31 + 6 @@ -4265,39 +4268,122 @@ - - - - - Show repeat barline tips ("winged" repeats) - - - - - - - Barline at start of single staff - - - - - - - Barline at start of multiple staves - - - true - - - - - - - Scale barlines to staff size - - - - + + + + + + Barline at start of multiple staves + + + true + + + + + + + Scale barlines to staff size + + + + + + + Show repeat barline tips ("winged" repeats) + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Barline at start of single staff + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + @@ -4319,131 +4405,227 @@ - - - QFormLayout::ExpandingFieldsGrow - - - - - Thin barline thickness: - - - barWidth - - - - - - - sp - - - 0.010000000000000 - - - - - - - Thick barline thickness: - - - endBarWidth - - - - - - - sp - - - 0.010000000000000 - - - - - - - Thick barline distance: - - - endBarDistance - - - - - - - sp - - - 0.010000000000000 - - - - - - - Double barline thickness: - - - doubleBarWidth - - - - - - - sp - - - 0.010000000000000 - - - - - - - Double barline distance: - - - doubleBarDistance - - - - - - - sp - - - 0.010000000000000 - - - - - - - Repeat barline dots distance: - - - repeatBarlineDotSeparation - - - - - - - sp - - - 0.010000000000000 - - - - + + + + + + Thick barline distance: + + + + + + + Double barline thickness: + + + + + + + sp + + + 0.010000000000000 + + + + + + + Thick barline thickness: + + + + + + + Thin barline thickness: + + + + + + + sp + + + 0.010000000000000 + + + + + + + sp + + + 0.010000000000000 + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + sp + + + 0.010000000000000 + + + + + + + sp + + + 0.010000000000000 + + + + + + + Repeat barline dots distance: + + + + + + + sp + + + 0.010000000000000 + + + + + + + Double barline distance: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + + + Reset to default + + + Reset 'Always force dash' setting + + + + + + + :/data/icons/edit-reset.svg:/data/icons/edit-reset.svg + + + + + @@ -11838,7 +12020,7 @@ - + 6 diff --git a/mscore/inspector/inspectorBase.cpp b/mscore/inspector/inspectorBase.cpp index 2b915330a0..894a711f00 100644 --- a/mscore/inspector/inspectorBase.cpp +++ b/mscore/inspector/inspectorBase.cpp @@ -353,6 +353,9 @@ void InspectorBase::valueChanged(int idx, bool reset) for (int i = 0; i < ii.parent; ++i) e = e->parent(); + if (Element* ee = e->propertyDelegate(id)) + e = ee; + // reset sets property style UNSTYLED to STYLED PropertyFlags ps = e->propertyFlags(id); diff --git a/mscore/inspector/inspectorOttava.cpp b/mscore/inspector/inspectorOttava.cpp index 20322a972b..3bb818f09d 100644 --- a/mscore/inspector/inspectorOttava.cpp +++ b/mscore/inspector/inspectorOttava.cpp @@ -16,6 +16,7 @@ #include "musescore.h" #include "libmscore/ottava.h" #include "libmscore/score.h" +#include "icons.h" namespace Ms { @@ -32,13 +33,13 @@ InspectorOttava::InspectorOttava(QWidget* parent) o.setupUi(addWidget()); const std::vector il = { - { Pid::DIAGONAL, 0, l.diagonal, l.resetDiagonal }, - { Pid::LINE_VISIBLE, 0, l.lineVisible, l.resetLineVisible }, - { Pid::LINE_COLOR, 0, l.lineColor, l.resetLineColor }, - { Pid::LINE_WIDTH, 0, l.lineWidth, l.resetLineWidth }, - { Pid::LINE_STYLE, 0, l.lineStyle, l.resetLineStyle }, - { Pid::DASH_LINE_LEN, 0, l.dashLineLength, l.resetDashLineLength }, - { Pid::DASH_GAP_LEN, 0, l.dashGapLength, l.resetDashGapLength }, + { Pid::DIAGONAL, 0, l.diagonal, l.resetDiagonal }, + { Pid::LINE_VISIBLE, 0, l.lineVisible, l.resetLineVisible }, + { Pid::LINE_COLOR, 0, l.lineColor, l.resetLineColor }, + { Pid::LINE_WIDTH, 0, l.lineWidth, l.resetLineWidth }, + { Pid::LINE_STYLE, 0, l.lineStyle, l.resetLineStyle }, + { Pid::DASH_LINE_LEN, 0, l.dashLineLength, l.resetDashLineLength }, + { Pid::DASH_GAP_LEN, 0, l.dashGapLength, l.resetDashGapLength }, { Pid::BEGIN_TEXT, 0, tl.beginText, tl.resetBeginText }, { Pid::BEGIN_TEXT_PLACE, 0, tl.beginTextPlacement, tl.resetBeginTextPlacement }, @@ -71,9 +72,9 @@ InspectorOttava::InspectorOttava(QWidget* parent) { Pid::END_HOOK_TYPE, 0, tl.endHookType, tl.resetEndHookType }, { Pid::END_HOOK_HEIGHT, 0, tl.endHookHeight, tl.resetEndHookHeight }, - { Pid::OTTAVA_TYPE, 0, o.ottavaType, 0 }, - { Pid::PLACEMENT, 0, o.placement, o.resetPlacement }, - { Pid::NUMBERS_ONLY, 0, o.numbersOnly, o.resetNumbersOnly } + { Pid::OTTAVA_TYPE, 0, o.ottavaType, 0 }, + { Pid::PLACEMENT, 0, o.placement, o.resetPlacement }, + { Pid::NUMBERS_ONLY, 0, o.numbersOnly, o.resetNumbersOnly } }; const std::vector ppList = { { l.title, l.panel }, @@ -81,6 +82,18 @@ InspectorOttava::InspectorOttava(QWidget* parent) { o.title, o.panel } }; + tl.beginFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.beginFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.beginFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + + tl.continueFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.continueFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.continueFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + + tl.endFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.endFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.endFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + populateHookType(tl.beginHookType); populateHookType(tl.endHookType); populateTextPlace(tl.beginTextPlacement); diff --git a/mscore/inspector/inspectorVolta.cpp b/mscore/inspector/inspectorVolta.cpp index 90e60c1170..e75b0a836d 100644 --- a/mscore/inspector/inspectorVolta.cpp +++ b/mscore/inspector/inspectorVolta.cpp @@ -16,6 +16,7 @@ #include "musescore.h" #include "libmscore/volta.h" #include "libmscore/score.h" +#include "icons.h" namespace Ms { @@ -78,6 +79,18 @@ InspectorVolta::InspectorVolta(QWidget* parent) { tl.title, tl.panel }, { v.title, v.panel } }; + tl.beginFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.beginFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.beginFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + + tl.continueFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.continueFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.continueFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + + tl.endFontBold->setIcon(*icons[int(Icons::textBold_ICON)]); + tl.endFontUnderline->setIcon(*icons[int(Icons::textUnderline_ICON)]); + tl.endFontItalic->setIcon(*icons[int(Icons::textItalic_ICON)]); + populateHookType(tl.beginHookType); populateHookType(tl.endHookType); populateTextPlace(tl.beginTextPlacement);