diff --git a/src/libs/core/tnootkaqml.cpp b/src/libs/core/tnootkaqml.cpp index 7819bbfde54571c171bb66767573f4703febf87c..d366e97cb13c30ee55604d455543ece82672e933 100755 --- a/src/libs/core/tnootkaqml.cpp +++ b/src/libs/core/tnootkaqml.cpp @@ -199,7 +199,7 @@ QString TnootkaQML::minorKeyName(int key) { QString TnootkaQML::majAndMinKeyName(int key) { - return TkeySignature(static_cast<char>(key)).getMajorName() + QLatin1String("<br>") + TkeySignature(static_cast<char>(key)).getMinorName(); + return majorKeyName(key) + QLatin1String("<br>") + minorKeyName(key); } diff --git a/src/main/tmainscoreobject.cpp b/src/main/tmainscoreobject.cpp index f176e0442b55ed4256abff4e915dfdb9640b0827..33f4392f65501d76a5c4cc9f48637e1587dbcd1f 100644 --- a/src/main/tmainscoreobject.cpp +++ b/src/main/tmainscoreobject.cpp @@ -101,6 +101,15 @@ void TmainScoreObject::setScoreObject(TscoreObject* scoreObj) { connect(m_scoreObj, &TscoreObject::singleNoteChanged, this, &TmainScoreObject::singleModeSlot); connect(GLOB, &Tglobals::showEnharmNotesChanged, this, &TmainScoreObject::checkSingleNoteVisibility); connect(GLOB, &Tglobals::enableDoubleAccidsChanged, this, &TmainScoreObject::checkSingleNoteVisibility); + connect(m_scoreObj, &TscoreObject::keySignatureChanged, [=]{ + if (GLOB->keySignatureEnabled() && GLOB->showKeyName() && !GLOB->isExam()) + emit keyNameTextChanged(); + }); +} + + +QString TmainScoreObject::keyNameText() const { + return m_scoreObj ? NOO->majAndMinKeyName(m_scoreObj->keySignature()) : QString(); } diff --git a/src/main/tmainscoreobject.h b/src/main/tmainscoreobject.h index 167e10a7234febfde7fa9e8f64132394462f70b1..f8a05d394fc64882ac588c43d13018ddbebfbcaf 100644 --- a/src/main/tmainscoreobject.h +++ b/src/main/tmainscoreobject.h @@ -59,6 +59,7 @@ class TmainScoreObject : public QObject Q_PROPERTY(Taction* zoomOutAct READ zoomOutAct) Q_PROPERTY(Taction* zoomInAct READ zoomInAct) Q_PROPERTY(QList<QObject*> scoreActions READ scoreActions NOTIFY scoreActionsChanged) + Q_PROPERTY(QString keyNameText READ keyNameText NOTIFY keyNameTextChanged) public: explicit TmainScoreObject(QObject* parent = nullptr); @@ -82,6 +83,8 @@ public: QList<QObject*> scoreActions() { return m_scoreActions; } + QString keyNameText() const; + // redirected from TscoreObject void setReadOnly(bool ro); void clearScore(); @@ -102,6 +105,7 @@ public: signals: void scoreActionsChanged(); + void keyNameTextChanged(); // redirected from TscoreObject void clicked(); diff --git a/src/qml/MainScore.qml b/src/qml/MainScore.qml index 3218a2b13b2a6c95d8f4db0b924fcd499546be7c..f7cbcc093b10d71123c8aac01fb8d2cccf4dcce6 100644 --- a/src/qml/MainScore.qml +++ b/src/qml/MainScore.qml @@ -88,10 +88,7 @@ Score { y: clef === Tclef.PianoStaffClefs ? 3.7 : 6.2 color: activPal.text font { family: "Sans"; pixelSize: 2 } - text: getKeyNameText() - function getKeyNameText() { - return enableKeySign && firstStaff.keySignature ? Noo.majAndMinKeyName(firstStaff.keySignature.key) : "" - } + text: GLOB.showKeyName && enableKeySign ? mainObj.keyNameText : "" } // private @@ -108,7 +105,6 @@ Score { } Connections { target: GLOB - onKeyNameChanged: keyName.text = Qt.binding(keyName.getKeyNameText) onClefTypeChanged: score.clef = GLOB.clefType } Connections {