Skip to content

Commit ab5e9c3

Browse files
committed
Add new clef, key and time signature style settings page
1 parent d3a6f81 commit ab5e9c3

File tree

3 files changed

+610
-518
lines changed

3 files changed

+610
-518
lines changed

src/notation/view/widgets/editstyle.cpp

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ static const QStringList ALL_PAGE_CODES {
6262
"header-and-footer",
6363
"measure-number",
6464
"system",
65-
"clefs",
65+
"clefs-key-and-time-signatures",
6666
"accidentals",
6767
"measure",
6868
"barlines",
@@ -269,6 +269,14 @@ EditStyle::EditStyle(QWidget* parent)
269269
updateParenthesisIndicatingTiesGroupState();
270270
});
271271

272+
QButtonGroup* clefVisibility = new QButtonGroup(this);
273+
clefVisibility->addButton(radioShowAllClefs, true);
274+
clefVisibility->addButton(radioHideClefs, false);
275+
276+
QButtonGroup* keysigVisibility = new QButtonGroup(this);
277+
keysigVisibility->addButton(radioShowAllKeys, true);
278+
keysigVisibility->addButton(radioHideKeys, false);
279+
272280
// ====================================================
273281
// Style widgets
274282
// ====================================================
@@ -517,8 +525,9 @@ EditStyle::EditStyle(QWidget* parent)
517525
{ StyleId::smallNoteMag, true, smallNoteSize, resetSmallNoteSize },
518526
{ StyleId::smallClefMag, true, smallClefSize, resetSmallClefSize },
519527
{ StyleId::lastSystemFillLimit, true, lastSystemFillThreshold, resetLastSystemFillThreshold },
520-
{ StyleId::genClef, false, genClef, 0 },
521-
{ StyleId::genKeysig, false, genKeysig, 0 },
528+
{ StyleId::hideTabClefAfterFirst, false, hideTabClefs, 0 },
529+
{ StyleId::genClef, false, clefVisibility, 0 },
530+
{ StyleId::genKeysig, false, keysigVisibility, 0 },
522531
{ StyleId::genCourtesyTimesig, false, genCourtesyTimesig, 0 },
523532
{ StyleId::genCourtesyKeysig, false, genCourtesyKeysig, 0 },
524533
{ StyleId::genCourtesyClef, false, genCourtesyClef, 0 },
@@ -899,6 +908,9 @@ EditStyle::EditStyle(QWidget* parent)
899908
connect(minSystemDistance, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditStyle::systemMinDistanceValueChanged);
900909
connect(maxSystemDistance, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditStyle::systemMaxDistanceValueChanged);
901910

911+
connect(radioShowAllClefs, &QRadioButton::toggled, this, &EditStyle::clefVisibilityChanged);
912+
connect(radioHideClefs, &QRadioButton::toggled, this, &EditStyle::clefVisibilityChanged);
913+
902914
accidentalsGroup->setVisible(false); // disable, not yet implemented
903915

904916
// ====================================================
@@ -1373,9 +1385,10 @@ QString EditStyle::pageCodeForElement(const EngravingItem* element)
13731385
return "system";
13741386

13751387
case ElementType::CLEF:
1376-
return "clefs";
1377-
13781388
case ElementType::KEYSIG:
1389+
case ElementType::TIMESIG:
1390+
return "clefs-key-and-time-signatures";
1391+
13791392
case ElementType::ACCIDENTAL:
13801393
return "accidentals";
13811394

@@ -1684,7 +1697,7 @@ PropertyValue EditStyle::getValue(StyleId idx)
16841697
if (sw.idx == StyleId::harmonyVoiceLiteral) { // special case for bool represented by a two-item combobox
16851698
QComboBox* cb = qobject_cast<QComboBox*>(sw.widget);
16861699
v = cb->currentIndex();
1687-
} else if (sw.idx == StyleId::articulationKeepTogether) { // special case for bool represented by a two-item buttonGroup
1700+
} else if (sw.idx == StyleId::articulationKeepTogether || sw.idx == StyleId::genClef || sw.idx == StyleId::genKeysig) { // special case for bool represented by a two-item buttonGroup
16881701
QButtonGroup* bg = qobject_cast<QButtonGroup*>(sw.widget);
16891702
v = bool(bg->checkedId());
16901703
} else {
@@ -1796,7 +1809,7 @@ void EditStyle::setValues()
17961809
bool value = val.toBool();
17971810
if (sw.idx == StyleId::harmonyVoiceLiteral) { // special case for bool represented by a two-item combobox
17981811
voicingSelectWidget->interpretBox->setCurrentIndex(value);
1799-
} else if (sw.idx == StyleId::articulationKeepTogether) { // special case for bool represented by a two-item buttonGroup
1812+
} else if (sw.idx == StyleId::articulationKeepTogether || sw.idx == StyleId::genClef || sw.idx == StyleId::genKeysig) { // special case for bool represented by a two-item buttonGroup
18001813
qobject_cast<QButtonGroup*>(sw.widget)->button(1)->setChecked(value);
18011814
qobject_cast<QButtonGroup*>(sw.widget)->button(0)->setChecked(!value);
18021815
} else {
@@ -2462,3 +2475,16 @@ void EditStyle::updateParenthesisIndicatingTiesGroupState()
24622475
{
24632476
groupBox_2->setEnabled(tabShowTies->isChecked() || tabShowNone->isChecked());
24642477
}
2478+
2479+
void EditStyle::clefVisibilityChanged(bool checked)
2480+
{
2481+
if (!checked) {
2482+
return;
2483+
}
2484+
if (radioHideClefs->isChecked()) {
2485+
hideTabClefs->setChecked(true);
2486+
hideTabClefs->setEnabled(false);
2487+
} else {
2488+
hideTabClefs->setEnabled(true);
2489+
}
2490+
}

src/notation/view/widgets/editstyle.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ private slots:
140140
void endEditUserStyleName();
141141
void resetUserStyleName();
142142
void updateParenthesisIndicatingTiesGroupState();
143+
void clefVisibilityChanged(bool);
143144

144145
private:
145146
QString m_currentPageCode;

0 commit comments

Comments
 (0)