X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetFoot.cpp;h=58acf7d562d312a4be4e8b2dde8656a59b8b60d0;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=c9c091ddeb490bb12776e0bcc4675c0e016f1f71;hpb=8f0bf62f2ce108623ef1e88f94eb489750efc7ec;p=lyx.git diff --git a/src/insets/InsetFoot.cpp b/src/insets/InsetFoot.cpp index c9c091ddeb..58acf7d562 100644 --- a/src/insets/InsetFoot.cpp +++ b/src/insets/InsetFoot.cpp @@ -14,38 +14,40 @@ #include "InsetFoot.h" #include "Buffer.h" -#include "gettext.h" -// the following is needed just to get the layout of the enclosing +#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 "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")); -} +{} InsetFoot::InsetFoot(InsetFoot const & in) : InsetFootlike(in) -{ - setLabel(_("foot")); -} +{} -auto_ptr InsetFoot::doClone() const +Inset * InsetFoot::clone() const { - return auto_ptr(new InsetFoot(*this)); + return new InsetFoot(*this); } @@ -55,6 +57,38 @@ 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 {