From f3358f0b4507edd52cb729c39dda352ff19f439f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matev=C5=BE=20Jekovec?= Date: Tue, 27 Dec 2022 13:09:45 +0100 Subject: [PATCH] layout: Render placeholder if text/bookmark empty --- src/layout/drawablemark.cpp | 16 ++++++++++++++-- src/ui/mainwin.cpp | 21 ++++++++------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/layout/drawablemark.cpp b/src/layout/drawablemark.cpp index c46c78db..3fbabf91 100644 --- a/src/layout/drawablemark.cpp +++ b/src/layout/drawablemark.cpp @@ -219,7 +219,13 @@ void CADrawableMark::draw(QPainter* p, CADrawSettings s) font.setPixelSize(qRound(DEFAULT_TEXT_SIZE * s.z)); p->setFont(font); - p->drawText(s.x, s.y + qRound(height() * s.z), static_cast(mark())->text()); + QString text = static_cast(mark())->text(); + if (text.isEmpty()) { + text = CADrawableMusElement::EMPTY_PLACEHOLDER; + } + + p->drawText(s.x, s.y + qRound(height() * s.z), text); + break; } case CAMark::BookMark: { @@ -227,8 +233,14 @@ void CADrawableMark::draw(QPainter* p, CADrawSettings s) font.setPixelSize(qRound(DEFAULT_TEXT_SIZE * s.z)); p->setFont(font); + QString text = static_cast(mark())->text(); + if (text.isEmpty()) { + text = CADrawableMusElement::EMPTY_PLACEHOLDER; + } + p->drawPixmap(s.x, s.y, _pixmap->scaled(qRound(DEFAULT_PIXMAP_SIZE * s.z), qRound(DEFAULT_PIXMAP_SIZE * s.z))); - p->drawText(s.x + qRound((DEFAULT_PIXMAP_SIZE + 1) * s.z), s.y + qRound(height() * s.z), static_cast(mark())->text()); + p->drawText(s.x + qRound((DEFAULT_PIXMAP_SIZE + 1) * s.z), s.y + qRound(height() * s.z), text); + break; } case CAMark::RehersalMark: { diff --git a/src/ui/mainwin.cpp b/src/ui/mainwin.cpp index 71c7f59b..ed91eca3 100644 --- a/src/ui/mainwin.cpp +++ b/src/ui/mainwin.cpp @@ -3872,20 +3872,15 @@ void CAMainWin::confirmTextEdit(CAScoreView* v, CATextEdit* textEdit, CAMusEleme } case CAMusElement::Mark: { CAMark* mark = static_cast(elt); - if (!textEdit->text().isEmpty() || mark->markType() == CAMark::BookMark) { - CACanorus::undo()->createUndoCommand(document(), tr("text edit", "undo")); - if (mark->markType() == CAMark::Text) { - static_cast(mark)->setText(textEdit->text()); - } else if (mark->markType() == CAMark::BookMark) { - static_cast(mark)->setText(textEdit->text()); - } - v->removeTextEdit(); - } else { - // remove text sign with empty content, if it's not a bookmark - CACanorus::undo()->createUndoCommand(document(), tr("text edit", "delete")); - v->removeTextEdit(); - delete mark; + CACanorus::undo()->createUndoCommand(document(), tr("text edit", "undo")); + + if (mark->markType() == CAMark::Text) { + static_cast(mark)->setText(textEdit->text()); + } else if (mark->markType() == CAMark::BookMark) { + static_cast(mark)->setText(textEdit->text()); } + + v->removeTextEdit(); break; } case CAMusElement::ChordName: {