From: Han-Wen Nienhuys Date: Tue, 21 Mar 2006 12:21:43 +0000 (+0000) Subject: (finalize): add to instrument X-Git-Tag: release/2.8.0~10 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7a7997d8be7f48414797984cd7aa0fb49f4a9556;p=lilypond.git (finalize): add to instrument name global System. This also fixes chopped instrument names, but doesn't crash when there are slurs/beams. --- diff --git a/ChangeLog b/ChangeLog index 555b64142b..8ae8c90ffa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2006-03-21 Han-Wen Nienhuys + * lily/instrument-name-engraver.cc (finalize): add to instrument + name global System. This also fixes chopped instrument names, but + doesn't crash when there are slurs/beams. + * lily/slur-configuration.cc (add_score): disallow negative slur scores. diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc index 66ef592273..a2bf75a777 100644 --- a/lily/instrument-name-engraver.cc +++ b/lily/instrument-name-engraver.cc @@ -13,6 +13,7 @@ #include "axis-group-interface.hh" #include "align-interface.hh" #include "text-interface.hh" +#include "system.hh" #include "translator.icc" @@ -53,10 +54,9 @@ Instrument_name_engraver::process_music () || Text_interface::is_markup (short_text)) { text_spanner_ = make_spanner ("InstrumentName", SCM_EOL); + Grob *col = unsmob_grob (get_property ("currentCommandColumn")); - text_spanner_->set_bound (LEFT, - unsmob_grob (get_property ("currentCommandColumn"))); - Axis_group_interface::add_element (col, text_spanner_); + text_spanner_->set_bound (LEFT, col); text_spanner_->set_property ("text", short_text); text_spanner_->set_property ("long-text", long_text); } @@ -86,6 +86,16 @@ Instrument_name_engraver::finalize () unsmob_grob (get_property ("currentCommandColumn"))); Pointer_group_interface::set_ordered (text_spanner_, ly_symbol2scm ("elements"), false); + + System *system = get_root_system (text_spanner_); + + /* + UGH, should handle this in Score_engraver. + */ + if (system) + Axis_group_interface::add_element (system, text_spanner_); + else + text_spanner_->programming_error ("can't find root system"); } } @@ -101,7 +111,8 @@ ADD_TRANSLATOR (Instrument_name_engraver, /* create */ "InstrumentName ", - /* accept */ "", + /* accept */ + "", /* read */ "vocNam vocalName instrument instr " diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 7b9c5ef282..a91b39b33f 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -173,9 +173,11 @@ ADD_TRANSLATOR_GROUP (Score_engraver, /* accept */ "break-event", + /* read */ "currentMusicalColumn " "currentCommandColumn " "verticallySpacedContexts", + /* write */ ""); diff --git a/lily/system.cc b/lily/system.cc index ddf5c613cd..d9b2122c3b 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -484,6 +484,6 @@ ADD_INTERFACE (System, "system-interface", /* properties */ "all-elements " + "columns " "spaceable-staves " - "columns" )