From: Jan Nieuwenhuizen Date: Mon, 14 Jun 2010 19:16:35 +0000 (+0200) Subject: Metronome-mark: with multi measure rest: align at bar. X-Git-Tag: release/2.13.32-1~26^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=89192bb6e7e71cc438817d42f189142d4e44cc2b;p=lilypond.git Metronome-mark: with multi measure rest: align at bar. --- diff --git a/lily/default-bar-line-engraver.cc b/lily/default-bar-line-engraver.cc index c5680c3089..aee53570f3 100644 --- a/lily/default-bar-line-engraver.cc +++ b/lily/default-bar-line-engraver.cc @@ -19,7 +19,6 @@ #include "engraver.hh" #include "context.hh" -#include "multi-measure-rest.hh" #include "grob.hh" #include "warn.hh" diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc index d71452e286..e6a61f175f 100644 --- a/lily/metronome-engraver.cc +++ b/lily/metronome-engraver.cc @@ -39,6 +39,7 @@ public: protected: Item *text_; Grob *support_; + Grob *bar_; SCM last_duration_; SCM last_count_; @@ -57,6 +58,7 @@ Metronome_mark_engraver::Metronome_mark_engraver () { text_ = 0; support_ = 0; + bar_ = 0; last_duration_ = SCM_EOL; last_count_ = SCM_EOL; last_text_ = SCM_EOL; @@ -76,10 +78,14 @@ Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info) Grob *g = info.grob (); if (text_ - && !support_ - && scm_member (g->get_property_data ("break-align-symbol"), - text_->get_property_data ("break-align-symbols")) - != SCM_BOOL_F) + && g->get_property_data ("break-align-symbol") + == ly_symbol2scm ("staff-bar")) + bar_ = g; + else if (text_ + && !support_ + && scm_member (g->get_property_data ("break-align-symbol"), + text_->get_property_data ("break-align-symbols")) + != SCM_BOOL_F) { support_ = g; text_->set_parent (g, X_AXIS); @@ -99,13 +105,10 @@ Metronome_mark_engraver::acknowledge_grob (Grob_info info) Grob *g = info.grob (); if (text_ - && !support_ && scm_member (grob_name_scm (g), text_->get_property_data ("non-break-align-symbols")) != SCM_BOOL_F) - { text_->set_parent (g, X_AXIS); - } } void @@ -113,7 +116,11 @@ Metronome_mark_engraver::stop_translation_timestep () { if (text_) { - if (!support_) + if (text_->get_parent (X_AXIS) + && text_->get_parent (X_AXIS)->internal_has_interface (ly_symbol2scm ("multi-measure-rest-interface")) + && bar_) + text_->set_parent (bar_, X_AXIS); + else if (!support_) { /* Gardner Read "Music Notation", p.278 @@ -131,6 +138,7 @@ Metronome_mark_engraver::stop_translation_timestep () grob_list_to_grob_array (get_property ("stavesFound"))); text_ = 0; support_ = 0; + bar_ = 0; } } diff --git a/lily/part-combine-engraver.cc b/lily/part-combine-engraver.cc index cebee4ed9e..bbc0d059e5 100644 --- a/lily/part-combine-engraver.cc +++ b/lily/part-combine-engraver.cc @@ -20,7 +20,6 @@ */ #include "engraver.hh" -#include "multi-measure-rest.hh" #include "note-head.hh" #include "side-position-interface.hh" #include "stem.hh" diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index a7f986fb10..8581d2afd1 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -22,7 +22,6 @@ #include "warn.hh" #include "translator-group.hh" #include "global-context.hh" -#include "multi-measure-rest.hh" void Timing_translator::stop_translation_timestep ()