From: David Kastrup Date: Tue, 24 Jun 2014 11:16:33 +0000 (+0200) Subject: Issue 3966: Revert "Allows the user to override the text property of ChordName" X-Git-Tag: release/2.19.9-1^2~7 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=4845279f3e8bb222f4b10ca95dbb57b940381a69;p=lilypond.git Issue 3966: Revert "Allows the user to override the text property of ChordName" This reverts commit 0d4c79ec0f5d728ac7fe58b87ccf51079ec33766. Conflicts: input/regression/chord-name-override-text.ly lily/chord-name-engraver.cc Reverts patch of issue 2813. --- diff --git a/input/regression/chord-name-override-text.ly b/input/regression/chord-name-override-text.ly deleted file mode 100644 index 2877cc85b0..0000000000 --- a/input/regression/chord-name-override-text.ly +++ /dev/null @@ -1,13 +0,0 @@ -\version "2.17.6" - -\header { - texidoc = "Users can override the @code{text} property of -@code{ChordName}. -" -} - -\new ChordNames \chordmode { - a b c:7 - \once \override ChordName.text = #"foo" - d -} \ No newline at end of file diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 0057176a9f..86d977cabe 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -62,21 +62,12 @@ Chord_name_engraver::Chord_name_engraver () void Chord_name_engraver::process_music () { - if (!rest_event_ && !notes_.size ()) - return; - - chord_name_ = make_item ("ChordName", - rest_event_ ? rest_event_->self_scm () : notes_[0]->self_scm ()); - - SCM maybe_markup = chord_name_->get_property_data ("text"); - - bool make_markup = !(Text_interface::is_markup (maybe_markup) - || ly_is_procedure (maybe_markup)); - SCM markup; + SCM bass = SCM_EOL; + SCM inversion = SCM_EOL; + SCM pitches = SCM_EOL; - if (rest_event_ && !make_markup) { } - else if (rest_event_) + if (rest_event_) { SCM no_chord_markup = get_property ("noChordSymbol"); if (!Text_interface::is_markup (no_chord_markup)) @@ -85,9 +76,8 @@ Chord_name_engraver::process_music () } else { - SCM bass = SCM_EOL; - SCM inversion = SCM_EOL; - SCM pitches = SCM_EOL; + if (!notes_.size ()) + return; Stream_event *inversion_event = 0; for (vsize i = 0; i < notes_.size (); i++) @@ -126,25 +116,25 @@ Chord_name_engraver::process_music () pitches = scm_sort_list (pitches, Pitch::less_p_proc); SCM name_proc = get_property ("chordNameFunction"); - if (make_markup) - markup = scm_call_4 (name_proc, pitches, bass, inversion, - context ()->self_scm ()); + markup = scm_call_4 (name_proc, pitches, bass, inversion, + context ()->self_scm ()); } /* Ugh. */ - if (make_markup) - chord_name_->set_property ("text", markup); - else if (Text_interface::is_markup (maybe_markup)) - markup = maybe_markup; + SCM chord_as_scm = scm_cons (pitches, scm_cons (bass, inversion)); + + chord_name_ = make_item ("ChordName", + rest_event_ ? rest_event_->self_scm () : notes_[0]->self_scm ()); + chord_name_->set_property ("text", markup); SCM chord_changes = get_property ("chordChanges"); SCM last_chord = get_property ("lastChord"); if (to_boolean (chord_changes) && scm_is_pair (last_chord) - && ly_is_equal (markup, last_chord)) + && ly_is_equal (chord_as_scm, last_chord)) chord_name_->set_property ("begin-of-line-visible", SCM_BOOL_T); - context ()->set_property ("lastChord", markup); + context ()->set_property ("lastChord", chord_as_scm); } IMPLEMENT_TRANSLATOR_LISTENER (Chord_name_engraver, note); diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 2d38188d29..66100915b4 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -709,7 +709,7 @@ in an axis group.") @code{CommandColumn} contains items that will affect spacing.") - (lastChord ,markup? "Last chord, used for detecting chord changes.") + (lastChord ,list? "Last chord, used for detecting chord changes.") (lastKeyAlterations ,list? "Last key signature before a key signature change.") (localAlterations ,list? "The key signature at this point in the