@@ -60,6 +60,9 @@ static const std::unordered_set<ActionIconType> BENDS_ACTION_TYPES = {
6060 ActionIconType::PRE_BEND,
6161 ActionIconType::GRACE_NOTE_BEND,
6262 ActionIconType::SLIGHT_BEND,
63+ };
64+
65+ static const std::unordered_set<ActionIconType> DIVES_ACTION_TYPES = {
6366 ActionIconType::DIVE,
6467 ActionIconType::PRE_DIVE,
6568 ActionIconType::DIP,
@@ -239,6 +242,7 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
239242 bool containsFFrame = false ;
240243 bool containsTapping = false ;
241244 bool containsHammerOnPullOff = false ;
245+ bool containsGuitarDives = false ;
242246
243247 for (const PaletteCellPtr& cell : guitarPalette.cells ()) {
244248 const ElementPtr element = cell->element ;
@@ -255,6 +259,9 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
255259 if (muse::contains (BENDS_ACTION_TYPES, icon->actionType ())) {
256260 containsGuitarBends = true ;
257261 }
262+ if (muse::contains (DIVES_ACTION_TYPES, icon->actionType ())) {
263+ containsGuitarDives = true ;
264+ }
258265 if (icon->actionType () == ActionIconType::FFRAME) {
259266 containsFFrame = true ;
260267 }
@@ -287,6 +294,10 @@ void PaletteCompat::addNewGuitarItems(Palette& guitarPalette, Score* paletteScor
287294 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::PRE_BEND, " pre-bend" , 1.25 );
288295 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::GRACE_NOTE_BEND, " grace-note-bend" , 1.25 );
289296 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::SLIGHT_BEND, " slight-bend" , 1.25 );
297+ }
298+
299+ if (!containsGuitarDives) {
300+ int defaultPosition = std::min (12 , guitarPalette.cellsCount ());
290301 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::DIVE, " dive" , 1.25 );
291302 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::PRE_DIVE, " pre-dive" , 1.25 );
292303 guitarPalette.insertActionIcon (defaultPosition, ActionIconType::DIP, " dip" , 1.25 );
0 commit comments