Skip to content

Commit e294ed8

Browse files
committed
Allow framed text to not demand width greater than height
At least not for multiline text
1 parent 1def3c6 commit e294ed8

File tree

9 files changed

+19
-19
lines changed

9 files changed

+19
-19
lines changed

src/engraving/dom/textbase.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2032,9 +2032,9 @@ void TextBase::layoutFrame(LayoutData* ldata) const
20322032
ldata->frame = ldata->bbox();
20332033
}
20342034

2035-
if (square()) {
2036-
// make sure width >= height
2037-
if (ldata->frame.height() > ldata->frame.width()) {
2035+
if (rectangle()) {
2036+
// make sure width >= height, if only one row (basically: make square for single characters)
2037+
if (ldata->frame.height() > ldata->frame.width() && ldata->rows() == 1) {
20382038
double w = ldata->frame.height() - ldata->frame.width();
20392039
ldata->frame.adjust(-w * .5, 0.0, w * .5, 0.0);
20402040
}

src/engraving/dom/textbase.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class TextBlock;
4242
//---------------------------------------------------------
4343

4444
enum class FrameType : char {
45-
NO_FRAME, SQUARE, CIRCLE
45+
NO_FRAME, RECTANGLE, CIRCLE
4646
};
4747

4848
//---------------------------------------------------------
@@ -419,7 +419,7 @@ class TextBase : public EngravingItem
419419
// helper functions
420420
bool hasFrame() const { return m_frameType != FrameType::NO_FRAME; }
421421
bool circle() const { return m_frameType == FrameType::CIRCLE; }
422-
bool square() const { return m_frameType == FrameType::SQUARE; }
422+
bool rectangle() const { return m_frameType == FrameType::RECTANGLE; }
423423

424424
TextStyleType textStyleType() const { return m_textStyleType; }
425425
void setTextStyleType(TextStyleType id) { m_textStyleType = id; }

src/engraving/rw/read114/read114.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ static bool readTextProperties(XmlReader& e, ReadContext& ctx, TextBase* t, Engr
272272
} else if (tag == "foregroundColor") { // same as "color" ?
273273
e.skipCurrentElement();
274274
} else if (tag == "frame") {
275-
t->setFrameType(e.readBool() ? FrameType::SQUARE : FrameType::NO_FRAME);
275+
t->setFrameType(e.readBool() ? FrameType::RECTANGLE : FrameType::NO_FRAME);
276276
t->setPropertyFlags(Pid::FRAME_TYPE, PropertyFlags::UNSTYLED);
277277
} else if (tag == "halign") {
278278
Align align = t->align();
@@ -503,10 +503,10 @@ static void readFingering114(XmlReader& e, Fingering* fing)
503503
} else if (tag == "frame") {
504504
auto frame = e.readInt();
505505
if (frame) {
506-
if (isStringNumber) { //default value is circle for stringnumber, square is set in tag circle
506+
if (isStringNumber) { //default value is circle for stringnumber, rectangle is set in tag circle
507507
fing->setFrameType(FrameType::CIRCLE);
508508
} else { //default value is square for stringnumber, circle is set in tag circle
509-
fing->setFrameType(FrameType::SQUARE);
509+
fing->setFrameType(FrameType::RECTANGLE);
510510
}
511511
} else {
512512
fing->setFrameType(FrameType::NO_FRAME);
@@ -516,7 +516,7 @@ static void readFingering114(XmlReader& e, Fingering* fing)
516516
if (circle) {
517517
fing->setFrameType(FrameType::CIRCLE);
518518
} else {
519-
fing->setFrameType(FrameType::SQUARE);
519+
fing->setFrameType(FrameType::RECTANGLE);
520520
}
521521
} else {
522522
e.skipCurrentElement();

src/engraving/rw/read206/read206.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,13 @@ void Read206::readTextStyle206(MStyle* style, XmlReader& e, ReadContext& ctx, st
217217
} else if (tag == "sizeIsSpatiumDependent" || tag == "spatiumSizeDependent") {
218218
sizeIsSpatiumDependent = e.readInt();
219219
} else if (tag == "frameWidth") { // obsolete
220-
frameType = FrameType::SQUARE;
220+
frameType = FrameType::RECTANGLE;
221221
/*frameWidthMM =*/ e.readDouble();
222222
} else if (tag == "frameWidthS") {
223-
frameType = FrameType::SQUARE;
223+
frameType = FrameType::RECTANGLE;
224224
frameWidth = Spatium(e.readDouble());
225225
} else if (tag == "frame") {
226-
frameType = e.readInt() ? FrameType::SQUARE : FrameType::NO_FRAME;
226+
frameType = e.readInt() ? FrameType::RECTANGLE : FrameType::NO_FRAME;
227227
} else if (tag == "paddingWidth") { // obsolete
228228
/*paddingWidthMM =*/
229229
e.readDouble();
@@ -1242,7 +1242,7 @@ static bool readTextProperties206(XmlReader& e, ReadContext& ctx, TextBase* t)
12421242
} else if (tag == "foregroundColor") { // same as "color" ?
12431243
e.skipCurrentElement();
12441244
} else if (tag == "frame") {
1245-
t->setFrameType(e.readBool() ? FrameType::SQUARE : FrameType::NO_FRAME);
1245+
t->setFrameType(e.readBool() ? FrameType::RECTANGLE : FrameType::NO_FRAME);
12461246
t->setPropertyFlags(Pid::FRAME_TYPE, PropertyFlags::UNSTYLED);
12471247
} else if (tag == "frameRound") {
12481248
read400::TRead::readProperty(t, e, ctx, Pid::FRAME_ROUND);
@@ -1251,7 +1251,7 @@ static bool readTextProperties206(XmlReader& e, ReadContext& ctx, TextBase* t)
12511251
t->setFrameType(FrameType::CIRCLE);
12521252
} else {
12531253
if (t->circle()) {
1254-
t->setFrameType(FrameType::SQUARE);
1254+
t->setFrameType(FrameType::RECTANGLE);
12551255
}
12561256
}
12571257
t->setPropertyFlags(Pid::FRAME_TYPE, PropertyFlags::UNSTYLED);

src/engraving/style/styledef.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1314,7 +1314,7 @@ const std::array<StyleDef::StyleValue, size_t(Sid::STYLES)> StyleDef::styleValue
13141314
styleDef(rehearsalMarkFontStyle, int(FontStyle::Bold)),
13151315
styleDef(rehearsalMarkColor, PropertyValue::fromValue(Color::BLACK)),
13161316
styleDef(rehearsalMarkAlign, Align(AlignH::HCENTER, AlignV::BASELINE)),
1317-
styleDef(rehearsalMarkFrameType, int(FrameType::SQUARE)),
1317+
styleDef(rehearsalMarkFrameType, int(FrameType::RECTANGLE)),
13181318
styleDef(rehearsalMarkFramePadding, 0.5),
13191319
styleDef(rehearsalMarkFrameWidth, 0.16),
13201320
styleDef(rehearsalMarkFrameRound, 0),

src/importexport/guitarpro/internal/importptb.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ void PowerTab::addToScore(ptSection& sec)
844844
lastPart = sec.partMarker;
845845
auto seg = measure->getSegment(SegmentType::ChordRest, measure->tick());
846846
RehearsalMark* t = new RehearsalMark(seg);
847-
t->setFrameType(FrameType::SQUARE);
847+
t->setFrameType(FrameType::RECTANGLE);
848848
t->setPlainText(String(Char::fromAscii(sec.partMarker)));
849849
t->setTrack(0);
850850
seg->add(t);

src/importexport/musicxml/internal/musicxml/export/exportmusicxml.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@ static String frame2xml(const TextBase* el)
745745
switch (el->frameType()) {
746746
case FrameType::CIRCLE:
747747
return u" enclosure=\"circle\"";
748-
case FrameType::SQUARE:
748+
case FrameType::RECTANGLE:
749749
return u" enclosure=\"rectangle\"";
750750
default:
751751
return String();

src/importexport/musicxml/internal/musicxml/import/importmusicxmlpass2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3545,7 +3545,7 @@ void MusicXmlParserDirection::direction(const String& partId,
35453545
} else if (m_enclosure == "none") {
35463546
t->setFrameType(FrameType::NO_FRAME);
35473547
} else if (m_enclosure == "rectangle") {
3548-
t->setFrameType(FrameType::SQUARE);
3548+
t->setFrameType(FrameType::RECTANGLE);
35493549
t->setFrameRound(0);
35503550
}
35513551

src/notation/view/widgets/editstyle.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1142,7 +1142,7 @@ EditStyle::EditStyle(QWidget* parent)
11421142

11431143
textStyleFrameType->clear();
11441144
textStyleFrameType->addItem(muse::qtrc("notation/editstyle", "None", "no frame for text"), int(FrameType::NO_FRAME));
1145-
textStyleFrameType->addItem(muse::qtrc("notation/editstyle", "Rectangle"), int(FrameType::SQUARE));
1145+
textStyleFrameType->addItem(muse::qtrc("notation/editstyle", "Rectangle"), int(FrameType::RECTANGLE));
11461146
textStyleFrameType->addItem(muse::qtrc("notation/editstyle", "Circle"), int(FrameType::CIRCLE));
11471147

11481148
connect(dynamicsAndHairpinPos, &QComboBox::currentIndexChanged, dynamicsAndHairpinPosDescription, [=]() {

0 commit comments

Comments
 (0)