X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetFoot.cpp;h=58acf7d562d312a4be4e8b2dde8656a59b8b60d0;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=59c1de30f07cfd20e462b79f668f8cb01ec2853e;hpb=c8d00ed1272cd489041bed2115081008b6a26489;p=lyx.git diff --git a/src/insets/InsetFoot.cpp b/src/insets/InsetFoot.cpp index 59c1de30f0..58acf7d562 100644 --- a/src/insets/InsetFoot.cpp +++ b/src/insets/InsetFoot.cpp @@ -13,43 +13,41 @@ #include "InsetFoot.h" -#include "gettext.h" -// the following are needed just to get the layout of the enclosing +#include "Buffer.h" +#include "BufferParams.h" +#include "Counters.h" +#include "support/gettext.h" +#include "Layout.h" +// FIXME: the following is needed just to get the layout of the enclosing // paragraph. This seems a bit too much to me (JMarc) -#include "lyxlayout.h" -#include "outputparams.h" -#include "paragraph.h" -#include "paragraph_funcs.h" +#include "OutputParams.h" +#include "ParIterator.h" +#include "TextClass.h" +#include "TocBackend.h" -#include "support/std_ostream.h" +#include "support/debug.h" +#include "support/lstrings.h" +#include -namespace lyx { +using namespace std; -using std::string; -using std::auto_ptr; -using std::ostream; +namespace lyx { InsetFoot::InsetFoot(BufferParams const & bp) : InsetFootlike(bp) -{ - setLabel(_("foot")); - setInsetName(from_ascii("Foot")); -} +{} InsetFoot::InsetFoot(InsetFoot const & in) : InsetFootlike(in) -{ - setLabel(_("foot")); - setInsetName(from_ascii("Foot")); -} +{} -auto_ptr InsetFoot::doClone() const +Inset * InsetFoot::clone() const { - return auto_ptr(new InsetFoot(*this)); + return new InsetFoot(*this); } @@ -59,8 +57,40 @@ docstring const InsetFoot::editMessage() const } +void InsetFoot::updateLabels(Buffer const & buf, ParIterator const & it) +{ + TextClass const & tclass = buf.params().getTextClass(); + Counters & cnts = tclass.counters(); + docstring const foot = from_ascii("footnote"); + Paragraph const & outer = it.paragraph(); + if (!outer.layout()->intitle && cnts.hasCounter(foot)) { + cnts.step(foot); + //FIXME: the counter should format itself. + setLabel(support::bformat(from_ascii("%1$s %2$s"), + getLayout(buf.params()).labelstring(), + cnts.theCounter(foot))); + + } + InsetCollapsable::updateLabels(buf, it); +} + + +void InsetFoot::addToToc(Buffer const & buf, + ParConstIterator const & cpit) const +{ + ParConstIterator pit = cpit; + pit.push_back(*this); + + Toc & toc = buf.tocBackend().toc("footnote"); + // FIXME: we probably want the footnote number too. + docstring str; + str = getNewLabel(str); + toc.push_back(TocItem(pit, 0, str)); +} + + int InsetFoot::latex(Buffer const & buf, odocstream & os, - OutputParams const & runparams_in) const + OutputParams const & runparams_in) const { OutputParams runparams = runparams_in; // footnotes in titling commands like \title have moving arguments @@ -82,9 +112,9 @@ int InsetFoot::latex(Buffer const & buf, odocstream & os, int InsetFoot::plaintext(Buffer const & buf, odocstream & os, - OutputParams const & runparams) const + OutputParams const & runparams) const { - os << '[' << _("footnote") << ":\n"; + os << '[' << buf.B_("footnote") << ":\n"; InsetText::plaintext(buf, os, runparams); os << "\n]"; @@ -93,7 +123,7 @@ int InsetFoot::plaintext(Buffer const & buf, odocstream & os, int InsetFoot::docbook(Buffer const & buf, odocstream & os, - OutputParams const & runparams) const + OutputParams const & runparams) const { os << ""; int const i = InsetText::docbook(buf, os, runparams);