Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/engraving/dom/box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -817,6 +817,21 @@ PropertyValue FBox::propertyDefault(Pid propertyId) const
}
}

int FBox::gripsCount() const
{
return 0;
}

Grip FBox::initialEditModeGrip() const
{
return Grip::NO_GRIP;
}

Grip FBox::defaultGrip() const
{
return Grip::NO_GRIP;
}

std::vector<PointF> FBox::gripsPositions(const EditData&) const
{
return {};
Expand Down
3 changes: 3 additions & 0 deletions src/engraving/dom/box.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,9 @@ class FBox : public VBox
bool setProperty(Pid propertyId, const PropertyValue& val) override;
PropertyValue propertyDefault(Pid propertyId) const override;

int gripsCount() const override;
Grip initialEditModeGrip() const override;
Grip defaultGrip() const override;
std::vector<PointF> gripsPositions(const EditData&) const override;

void undoReorderElements(const std::vector<EID>& newOrderElementsIds);
Expand Down
10 changes: 5 additions & 5 deletions src/engraving/dom/undo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3628,16 +3628,16 @@ void ReorderFBox::flip(EditData*)
return;
}

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

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

int correctIndex = muse::value(eidToIndex, desiredEid.toStdString(), -1);
if (correctIndex == -1) {
size_t correctIndex = muse::value(eidToIndex, desiredEid.toStdString(), muse::nidx);
if (correctIndex == muse::nidx) {
continue;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ void ScoreHorizontalViewLayout::collectLinearSystem(LayoutContext& ctx)
std::set<Measure*> measuresToLayout;

while (ctx.state().curMeasure()) {
if (ctx.state().curMeasure()->isVBox() || ctx.state().curMeasure()->isTBox()) {
if (ctx.state().curMeasure()->isVBox() || ctx.state().curMeasure()->isTBox() || ctx.state().curMeasure()->isFBox()) {
ctx.mutState().curMeasure()->resetExplicitParent();
MeasureLayout::getNextMeasure(ctx);
continue;
Expand Down
2 changes: 1 addition & 1 deletion src/notation/internal/notationinteraction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ void NotationInteraction::onViewModeChanged()
// VBoxes are not included in horizontal layouts - deselect them (and their contents) when switching to horizontal mode...
const std::vector<EngravingItem*> sel = selection()->elements();
for (EngravingItem* item : sel) {
if (!item->findAncestor(ElementType::VBOX)) {
if (!item->findAncestor(ElementType::VBOX) || !item->findAncestor(ElementType::FBOX)) {
continue;
}
score()->deselect(item);
Expand Down
12 changes: 8 additions & 4 deletions src/notation/internal/notationuiactions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -751,25 +751,29 @@ const UiActionList NotationUiActions::m_actions = {
mu::context::UiCtxProjectOpened,
mu::context::CTX_NOTATION_OPENED,
TranslatableString("action", "&Horizontal frame"),
TranslatableString("action", "Append horizontal frame")
TranslatableString("action", "Append horizontal frame"),
IconCode::Code::HORIZONTAL_FRAME
),
UiAction("append-vbox",
mu::context::UiCtxProjectOpened,
mu::context::CTX_NOTATION_OPENED,
TranslatableString("action", "&Vertical frame"),
TranslatableString("action", "Append vertical frame")
TranslatableString("action", "Append vertical frame"),
IconCode::Code::VERTICAL_FRAME
),
UiAction("append-textframe",
mu::context::UiCtxProjectOpened,
mu::context::CTX_NOTATION_OPENED,
TranslatableString("action", "&Text frame"),
TranslatableString("action", "Append text frame")
TranslatableString("action", "Append text frame"),
IconCode::Code::TEXT_FRAME
),
UiAction("append-fretframe",
mu::context::UiCtxProjectOpened,
mu::context::CTX_NOTATION_OPENED,
TranslatableString("action", "&Fretboard diagram legend"),
TranslatableString("action", "Append fretboard diagram legend")
TranslatableString("action", "Append fretboard diagram legend"),
IconCode::Code::FRET_FRAME
),
UiAction("acciaccatura",
mu::context::UiCtxProjectOpened,
Expand Down
2 changes: 1 addition & 1 deletion src/notation/view/notationcontextmenumodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,10 @@ MenuItemList NotationContextMenuModel::makeHarmonyItems()
MenuItemList NotationContextMenuModel::makeFretboardDiagramItems()
{
MenuItemList items = makeElementItems();
items << makeSeparator();

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

Expand Down
8 changes: 8 additions & 0 deletions src/palette/internal/palettecompat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
bool containsCapo = false;
bool containsStringTunings = false;
bool containsGuitarBends = false;
bool containsFFrame = false;

for (const PaletteCellPtr& cell : guitarPalette.cells()) {
const ElementPtr element = cell->element;
Expand All @@ -150,6 +151,9 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
if (muse::contains(BENDS_ACTION_TYPES, icon->actionType())) {
containsGuitarBends = true;
}
if (icon->actionType() == ActionIconType::FFRAME) {
containsFFrame = true;
}
}
}

Expand All @@ -176,6 +180,10 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
guitarPalette.insertActionIcon(defaultPosition, ActionIconType::GRACE_NOTE_BEND, "grace-note-bend", 1.25);
guitarPalette.insertActionIcon(defaultPosition, ActionIconType::SLIGHT_BEND, "slight-bend", 1.25);
}

if (!containsFFrame) {
guitarPalette.appendActionIcon(ActionIconType::FFRAME, "insert-fretframe");
}
}

void PaletteCompat::addNewLineItems(Palette& linesPalette)
Expand Down
2 changes: 2 additions & 0 deletions src/palette/internal/palettecreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1869,6 +1869,8 @@ PalettePtr PaletteCreator::newGuitarPalette(bool defaultPalette)
sp->appendElement(pta, TConv::userName(playTechAnnotation.playTechType), 0.8)->setElementTranslated(true);
}

sp->appendActionIcon(ActionIconType::FFRAME, "insert-fretframe");

return sp;
}

Expand Down
Loading