@@ -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+ }
0 commit comments