Skip to content

Commit 3a1d66f

Browse files
authored
Merge pull request #28486 from Eism/fret_diagrams_box_various_fixes
Fret diagrams box various fixes
2 parents 308e645 + 8aad0ea commit 3a1d66f

File tree

9 files changed

+44
-12
lines changed

9 files changed

+44
-12
lines changed

src/engraving/dom/box.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,21 @@ PropertyValue FBox::propertyDefault(Pid propertyId) const
817817
}
818818
}
819819

820+
int FBox::gripsCount() const
821+
{
822+
return 0;
823+
}
824+
825+
Grip FBox::initialEditModeGrip() const
826+
{
827+
return Grip::NO_GRIP;
828+
}
829+
830+
Grip FBox::defaultGrip() const
831+
{
832+
return Grip::NO_GRIP;
833+
}
834+
820835
std::vector<PointF> FBox::gripsPositions(const EditData&) const
821836
{
822837
return {};

src/engraving/dom/box.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ class FBox : public VBox
204204
bool setProperty(Pid propertyId, const PropertyValue& val) override;
205205
PropertyValue propertyDefault(Pid propertyId) const override;
206206

207+
int gripsCount() const override;
208+
Grip initialEditModeGrip() const override;
209+
Grip defaultGrip() const override;
207210
std::vector<PointF> gripsPositions(const EditData&) const override;
208211

209212
void undoReorderElements(const std::vector<EID>& newOrderElementsIds);

src/engraving/dom/undo.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3628,16 +3628,16 @@ void ReorderFBox::flip(EditData*)
36283628
return;
36293629
}
36303630

3631-
std::map<std::string, int> eidToIndex;
3632-
for (int i = 0; i < n; ++i) {
3631+
std::map<std::string, size_t> eidToIndex;
3632+
for (size_t i = 0; i < n; ++i) {
36333633
eidToIndex[elements[i]->eid().toStdString()] = i;
36343634
}
36353635

3636-
for (int i = 0; i < n; ++i) {
3636+
for (size_t i = 0; i < n; ++i) {
36373637
const EID& desiredEid = m_orderElementsIds[i];
36383638

3639-
int correctIndex = muse::value(eidToIndex, desiredEid.toStdString(), -1);
3640-
if (correctIndex == -1) {
3639+
size_t correctIndex = muse::value(eidToIndex, desiredEid.toStdString(), muse::nidx);
3640+
if (correctIndex == muse::nidx) {
36413641
continue;
36423642
}
36433643

src/engraving/rendering/score/scorehorizontalviewlayout.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ void ScoreHorizontalViewLayout::collectLinearSystem(LayoutContext& ctx)
294294
std::set<Measure*> measuresToLayout;
295295

296296
while (ctx.state().curMeasure()) {
297-
if (ctx.state().curMeasure()->isVBox() || ctx.state().curMeasure()->isTBox()) {
297+
if (ctx.state().curMeasure()->isVBox() || ctx.state().curMeasure()->isTBox() || ctx.state().curMeasure()->isFBox()) {
298298
ctx.mutState().curMeasure()->resetExplicitParent();
299299
MeasureLayout::getNextMeasure(ctx);
300300
continue;

src/notation/internal/notationinteraction.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ void NotationInteraction::onViewModeChanged()
291291
// VBoxes are not included in horizontal layouts - deselect them (and their contents) when switching to horizontal mode...
292292
const std::vector<EngravingItem*> sel = selection()->elements();
293293
for (EngravingItem* item : sel) {
294-
if (!item->findAncestor(ElementType::VBOX)) {
294+
if (!item->findAncestor(ElementType::VBOX) || !item->findAncestor(ElementType::FBOX)) {
295295
continue;
296296
}
297297
score()->deselect(item);

src/notation/internal/notationuiactions.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -751,25 +751,29 @@ const UiActionList NotationUiActions::m_actions = {
751751
mu::context::UiCtxProjectOpened,
752752
mu::context::CTX_NOTATION_OPENED,
753753
TranslatableString("action", "&Horizontal frame"),
754-
TranslatableString("action", "Append horizontal frame")
754+
TranslatableString("action", "Append horizontal frame"),
755+
IconCode::Code::HORIZONTAL_FRAME
755756
),
756757
UiAction("append-vbox",
757758
mu::context::UiCtxProjectOpened,
758759
mu::context::CTX_NOTATION_OPENED,
759760
TranslatableString("action", "&Vertical frame"),
760-
TranslatableString("action", "Append vertical frame")
761+
TranslatableString("action", "Append vertical frame"),
762+
IconCode::Code::VERTICAL_FRAME
761763
),
762764
UiAction("append-textframe",
763765
mu::context::UiCtxProjectOpened,
764766
mu::context::CTX_NOTATION_OPENED,
765767
TranslatableString("action", "&Text frame"),
766-
TranslatableString("action", "Append text frame")
768+
TranslatableString("action", "Append text frame"),
769+
IconCode::Code::TEXT_FRAME
767770
),
768771
UiAction("append-fretframe",
769772
mu::context::UiCtxProjectOpened,
770773
mu::context::CTX_NOTATION_OPENED,
771774
TranslatableString("action", "&Fretboard diagram legend"),
772-
TranslatableString("action", "Append fretboard diagram legend")
775+
TranslatableString("action", "Append fretboard diagram legend"),
776+
IconCode::Code::FRET_FRAME
773777
),
774778
UiAction("acciaccatura",
775779
mu::context::UiCtxProjectOpened,

src/notation/view/notationcontextmenumodel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ MenuItemList NotationContextMenuModel::makeHarmonyItems()
196196
MenuItemList NotationContextMenuModel::makeFretboardDiagramItems()
197197
{
198198
MenuItemList items = makeElementItems();
199-
items << makeSeparator();
200199

201200
const engraving::FretDiagram* fretDiagram = engraving::toFretDiagram(hitElementContext().element);
202201
if (!fretDiagram->harmony()) {
202+
items << makeSeparator();
203203
items << makeMenuItem("chord-text", TranslatableString("notation", "Add c&hord symbol"));
204204
}
205205

src/palette/internal/palettecompat.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
134134
bool containsCapo = false;
135135
bool containsStringTunings = false;
136136
bool containsGuitarBends = false;
137+
bool containsFFrame = false;
137138

138139
for (const PaletteCellPtr& cell : guitarPalette.cells()) {
139140
const ElementPtr element = cell->element;
@@ -150,6 +151,9 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
150151
if (muse::contains(BENDS_ACTION_TYPES, icon->actionType())) {
151152
containsGuitarBends = true;
152153
}
154+
if (icon->actionType() == ActionIconType::FFRAME) {
155+
containsFFrame = true;
156+
}
153157
}
154158
}
155159

@@ -176,6 +180,10 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
176180
guitarPalette.insertActionIcon(defaultPosition, ActionIconType::GRACE_NOTE_BEND, "grace-note-bend", 1.25);
177181
guitarPalette.insertActionIcon(defaultPosition, ActionIconType::SLIGHT_BEND, "slight-bend", 1.25);
178182
}
183+
184+
if (!containsFFrame) {
185+
guitarPalette.appendActionIcon(ActionIconType::FFRAME, "insert-fretframe");
186+
}
179187
}
180188

181189
void PaletteCompat::addNewLineItems(Palette& linesPalette)

src/palette/internal/palettecreator.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,6 +1877,8 @@ PalettePtr PaletteCreator::newGuitarPalette(bool defaultPalette)
18771877
sp->appendElement(pta, TConv::userName(playTechAnnotation.playTechType), 0.8)->setElementTranslated(true);
18781878
}
18791879

1880+
sp->appendActionIcon(ActionIconType::FFRAME, "insert-fretframe");
1881+
18801882
return sp;
18811883
}
18821884

0 commit comments

Comments
 (0)