Skip to content

Commit a985f0a

Browse files
committed
Add new clef, key and time signature style settings page
1 parent 86b3192 commit a985f0a

File tree

3 files changed

+612
-520
lines changed

3 files changed

+612
-520
lines changed

src/notation/view/widgets/editstyle.cpp

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static const QStringList ALL_PAGE_CODES {
6161
"header-and-footer",
6262
"measure-number",
6363
"system",
64-
"clefs",
64+
"clefs-key-and-time-signatures",
6565
"accidentals",
6666
"measure",
6767
"barlines",
@@ -253,6 +253,14 @@ EditStyle::EditStyle(QWidget* parent)
253253
articulationKeepTogether->addButton(radioArticKeepTogether, 1);
254254
articulationKeepTogether->addButton(radioArticAllowSeparate, 0);
255255

256+
QButtonGroup* clefVisibility = new QButtonGroup(this);
257+
clefVisibility->addButton(radioShowAllClefs, true);
258+
clefVisibility->addButton(radioHideClefs, false);
259+
260+
QButtonGroup* keysigVisibility = new QButtonGroup(this);
261+
keysigVisibility->addButton(radioShowAllKeys, true);
262+
keysigVisibility->addButton(radioHideKeys, false);
263+
256264
// ====================================================
257265
// Style widgets
258266
// ====================================================
@@ -501,8 +509,9 @@ EditStyle::EditStyle(QWidget* parent)
501509
{ StyleId::smallNoteMag, true, smallNoteSize, resetSmallNoteSize },
502510
{ StyleId::smallClefMag, true, smallClefSize, resetSmallClefSize },
503511
{ StyleId::lastSystemFillLimit, true, lastSystemFillThreshold, resetLastSystemFillThreshold },
504-
{ StyleId::genClef, false, genClef, 0 },
505-
{ StyleId::genKeysig, false, genKeysig, 0 },
512+
{ StyleId::hideTabClefAfterFirst, false, hideTabClefs, 0 },
513+
{ StyleId::genClef, false, clefVisibility, 0 },
514+
{ StyleId::genKeysig, false, keysigVisibility, 0 },
506515
{ StyleId::genCourtesyTimesig, false, genCourtesyTimesig, 0 },
507516
{ StyleId::genCourtesyKeysig, false, genCourtesyKeysig, 0 },
508517
{ StyleId::genCourtesyClef, false, genCourtesyClef, 0 },
@@ -879,6 +888,9 @@ EditStyle::EditStyle(QWidget* parent)
879888
connect(minSystemDistance, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditStyle::systemMinDistanceValueChanged);
880889
connect(maxSystemDistance, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditStyle::systemMaxDistanceValueChanged);
881890

891+
connect(radioShowAllClefs, &QRadioButton::toggled, this, &EditStyle::clefVisibilityChanged);
892+
connect(radioHideClefs, &QRadioButton::toggled, this, &EditStyle::clefVisibilityChanged);
893+
882894
accidentalsGroup->setVisible(false); // disable, not yet implemented
883895

884896
// ====================================================
@@ -1356,9 +1368,10 @@ QString EditStyle::pageCodeForElement(const EngravingItem* element)
13561368
return "system";
13571369

13581370
case ElementType::CLEF:
1359-
return "clefs";
1360-
13611371
case ElementType::KEYSIG:
1372+
case ElementType::TIMESIG:
1373+
return "clefs-key-and-time-signatures";
1374+
13621375
case ElementType::ACCIDENTAL:
13631376
return "accidentals";
13641377

@@ -1667,7 +1680,7 @@ PropertyValue EditStyle::getValue(StyleId idx)
16671680
if (sw.idx == StyleId::harmonyVoiceLiteral) { // special case for bool represented by a two-item combobox
16681681
QComboBox* cb = qobject_cast<QComboBox*>(sw.widget);
16691682
v = cb->currentIndex();
1670-
} else if (sw.idx == StyleId::articulationKeepTogether) { // special case for bool represented by a two-item buttonGroup
1683+
} else if (sw.idx == StyleId::articulationKeepTogether || sw.idx == StyleId::genClef || sw.idx == StyleId::genKeysig) { // special case for bool represented by a two-item buttonGroup
16711684
QButtonGroup* bg = qobject_cast<QButtonGroup*>(sw.widget);
16721685
v = bool(bg->checkedId());
16731686
} else {
@@ -1779,7 +1792,7 @@ void EditStyle::setValues()
17791792
bool value = val.toBool();
17801793
if (sw.idx == StyleId::harmonyVoiceLiteral) { // special case for bool represented by a two-item combobox
17811794
voicingSelectWidget->interpretBox->setCurrentIndex(value);
1782-
} else if (sw.idx == StyleId::articulationKeepTogether) { // special case for bool represented by a two-item buttonGroup
1795+
} else if (sw.idx == StyleId::articulationKeepTogether || sw.idx == StyleId::genClef || sw.idx == StyleId::genKeysig) { // special case for bool represented by a two-item buttonGroup
17831796
qobject_cast<QButtonGroup*>(sw.widget)->button(1)->setChecked(value);
17841797
qobject_cast<QButtonGroup*>(sw.widget)->button(0)->setChecked(!value);
17851798
} else {
@@ -2438,3 +2451,16 @@ void EditStyle::resetUserStyleName()
24382451
styleName->clear();
24392452
endEditUserStyleName();
24402453
}
2454+
2455+
void EditStyle::clefVisibilityChanged(bool checked)
2456+
{
2457+
if (!checked) {
2458+
return;
2459+
}
2460+
if (radioHideClefs->isChecked()) {
2461+
hideTabClefs->setChecked(true);
2462+
hideTabClefs->setEnabled(false);
2463+
} else {
2464+
hideTabClefs->setEnabled(true);
2465+
}
2466+
}

src/notation/view/widgets/editstyle.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ private slots:
139139
void editUserStyleName();
140140
void endEditUserStyleName();
141141
void resetUserStyleName();
142+
void clefVisibilityChanged(bool);
142143

143144
private:
144145
QString m_currentPageCode;

0 commit comments

Comments
 (0)