Skip to content
Snippets Groups Projects
Commit ec2614ee authored by SeeLook's avatar SeeLook :musical_note:
Browse files

Optimize scordature item and fix staff space when it exists

parent a7f845b9
No related branches found
No related tags found
No related merge requests found
Pipeline #2870 skipped
/***************************************************************************
* Copyright (C) 2017-2019 by Tomasz Bojczuk *
* Copyright (C) 2017-2021 by Tomasz Bojczuk *
* seelook@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
......@@ -45,7 +45,7 @@ TstaffItem::~TstaffItem() {
}
void TstaffItem::setScordSpace(int hasScord) {
void TstaffItem::setScordSpace(qreal hasScord) {
if (m_scordSpace != hasScord) {
m_scordSpace = hasScord;
checkNotesRange();
......
/***************************************************************************
* Copyright (C) 2017-2018 by Tomasz Bojczuk *
* Copyright (C) 2017-2021 by Tomasz Bojczuk *
* seelook@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
......@@ -46,7 +46,7 @@ class NOOTKACORE_EXPORT TstaffItem : public QQuickItem
Q_PROPERTY(qreal notesIndent READ notesIndent WRITE setNotesIndent)
Q_PROPERTY(int firstMeasureNr READ firstMeasureNr NOTIFY firstMeasureNrChanged)
Q_PROPERTY(int number READ number WRITE setNumber NOTIFY numberChanged)
Q_PROPERTY(int scordSpace READ scordSpace WRITE setScordSpace)
Q_PROPERTY(qreal scordSpace READ scordSpace WRITE setScordSpace)
friend class TscoreObject;
friend class TnotePair;
......@@ -63,8 +63,8 @@ public:
* @p 0 - means no scordature (standard tuning)
* positive value determines additional space below first staff for scordature marks
*/
int scordSpace() const { return m_scordSpace; }
void setScordSpace(int hasScord);
qreal scordSpace() const { return m_scordSpace; }
void setScordSpace(qreal hasScord);
TscoreObject* score() { return m_scoreObj; }
void setScore(TscoreObject* s);
......@@ -187,7 +187,7 @@ private:
qreal m_allNotesWidth = 0.0;
qreal m_gapsSum = 0.0;
QQuickItem *m_extraTie = nullptr; /**< Tie at the staff beginning */
int m_scordSpace = 0;
qreal m_scordSpace = 0.0;
};
#endif // TSTAFFITEM_H
......@@ -130,7 +130,7 @@ Score {
scordature.destroy()
if (GLOB.tuning.scordature && GLOB.instrument.isGuitar && GLOB.instrument.type !== Tinstrument.BassGuitar) {
scordature = Qt.createComponent("qrc:/score/Scordature.qml").createObject(firstStaff)
firstStaff.scordSpace = scordature.height * scordature.scale * (clef === Tclef.PianoStaffClefs ? 1 : 1.2)
firstStaff.scordSpace = scordature.realHeight
} else
firstStaff.scordSpace = 0
}
......
......@@ -9,6 +9,9 @@ import Score 1.0
Grid {
property real realHeight: Math.floor(scordModel.count / columns) * 12 * scale
y: upperLine + 14 + (score.clef === Tclef.PianoStaffClefs ? 18 : 0)
x: 0.5
spacing: 0.5
......@@ -16,36 +19,37 @@ Grid {
transformOrigin: Item.TopLeft
columns: GLOB.tuning.changedStrings() > 3 ? 2 : 1
visible: score.clef !== Tclef.NoClef
Repeater {
model: ListModel { id: scordModel }
delegate: Row {
Row {
height: 12
Text {
text: scordModel.count ? scordModel.get(index).strNr : ""
text: strNr
font { pixelSize: 12; family: "Nootka" }
anchors.verticalCenter: parent.verticalCenter
}
Text {
topPadding: 3.5
text: "=" + (scordModel.count ? scordModel.get(index).name : "")
text: "=" + name
font { pixelSize: 8; family: "Scorek" }
anchors.verticalCenter: parent.verticalCenter
}
}
}
Component.onCompleted: updateScordature()
Connections {
target: GLOB
onNoteNameStyleChanged: updateScordature()
}
function updateScordature() {
scordModel.clear()
Component.onCompleted: {
for (var s = 0; s < 6; ++s) {
if (GLOB.tuning.otherThanStd(s + 1))
scordModel.append({ "strNr": s + 1, "name": GLOB.tuning.stringName(s + 1) })
}
}
Connections {
target: GLOB
onNoteNameStyleChanged: {
for (var s = 0; s < scordModel.count; ++s)
scordModel.get(s).name = GLOB.tuning.stringName(scordModel.get(s).strNr)
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment