X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Ffootnote-engraver.cc;h=20ee7c149fba5eb80f000c94f95b3a6e5f2ab565;hb=409d457d0e623889d88eeff9c576bb74a32f1565;hp=efa7900b00d5f570130f0dd279278c435e0b138a;hpb=9cba6d0b05bd28e2fc73f091b09ace570c976182;p=lilypond.git diff --git a/lily/footnote-engraver.cc b/lily/footnote-engraver.cc index efa7900b00..20ee7c149f 100644 --- a/lily/footnote-engraver.cc +++ b/lily/footnote-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2011--2012 Mike Solomon + Copyright (C) 2011--2012 Mike Solomon LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,45 +33,22 @@ class Footnote_engraver : public Engraver { TRANSLATOR_DECLARATIONS (Footnote_engraver); - DECLARE_TRANSLATOR_LISTENER (footnote); DECLARE_ACKNOWLEDGER (grob); DECLARE_END_ACKNOWLEDGER (grob); - vector events_; + vector > annotated_spanners_; - void stop_translation_timestep (); void finalize (); - virtual void derived_mark () const; void footnotify (Grob *, SCM); }; -IMPLEMENT_TRANSLATOR_LISTENER (Footnote_engraver, footnote); -void -Footnote_engraver::listen_footnote (Stream_event *ev) -{ - events_.push_back (ev); -} - -void -Footnote_engraver::stop_translation_timestep () -{ - events_.clear (); -} - void Footnote_engraver::finalize () { annotated_spanners_.clear (); } -void -Footnote_engraver::derived_mark () const -{ - for (vsize i = 0; i < events_.size (); ++i) - scm_gc_mark (events_[i]->self_scm ()); -} - Footnote_engraver::Footnote_engraver () { } @@ -111,28 +88,12 @@ Footnote_engraver::acknowledge_grob (Grob_info info) return; } - footnotify (info.grob (), mus->to_event (context ())->unprotect ()); + footnotify (info.grob (), mus->to_event ()->unprotect ()); // This grob has exhausted its footnote info.grob ()->set_property ("footnote-music", SCM_EOL); - return; - } - if (!events_.empty ()) - { - string grobname = info.grob ()->name (); - - for (vsize i = 0; i < events_.size (); i++) - { - SCM name = events_[i]->get_property ("symbol"); - if (scm_is_symbol (name) - && grobname == ly_symbol2string (name)) - { - footnotify (info.grob (), events_[i]->self_scm ()); - // Event has exhausted its footnote - events_[i]->set_property ("symbol", SCM_EOL); - } - } + return; } }