mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-18 13:40:19 +00:00
Get rid of some magic booleans in updateLabels() and related routines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33110 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
bd95cdb734
commit
caa4e94bf0
@ -1498,7 +1498,7 @@ void Buffer::writeLyXHTMLSource(odocstream & os,
|
|||||||
{
|
{
|
||||||
LaTeXFeatures features(*this, params(), runparams);
|
LaTeXFeatures features(*this, params(), runparams);
|
||||||
validate(features);
|
validate(features);
|
||||||
updateLabels(UpdateMaster, true);
|
updateLabels(UpdateMaster, OutputUpdate);
|
||||||
checkBibInfoCache();
|
checkBibInfoCache();
|
||||||
d->bibinfo_.makeCitationLabels(*this);
|
d->bibinfo_.makeCitationLabels(*this);
|
||||||
updateMacros();
|
updateMacros();
|
||||||
@ -3500,7 +3500,7 @@ void Buffer::setBuffersForInsets() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Buffer::updateLabels(UpdateScope scope, bool out) const
|
void Buffer::updateLabels(UpdateScope scope, UpdateType utype) const
|
||||||
{
|
{
|
||||||
// Use the master text class also for child documents
|
// Use the master text class also for child documents
|
||||||
Buffer const * const master = masterBuffer();
|
Buffer const * const master = masterBuffer();
|
||||||
@ -3518,7 +3518,7 @@ void Buffer::updateLabels(UpdateScope scope, bool out) const
|
|||||||
// If this is a child document start with the master
|
// If this is a child document start with the master
|
||||||
if (master != this) {
|
if (master != this) {
|
||||||
bufToUpdate.insert(this);
|
bufToUpdate.insert(this);
|
||||||
master->updateLabels(UpdateMaster, out);
|
master->updateLabels(UpdateMaster, utype);
|
||||||
// Do this here in case the master has no gui associated with it. Then,
|
// Do this here in case the master has no gui associated with it. Then,
|
||||||
// the TocModel is not updated and TocModel::toc_ is invalid (bug 5699).
|
// the TocModel is not updated and TocModel::toc_ is invalid (bug 5699).
|
||||||
if (!master->gui_)
|
if (!master->gui_)
|
||||||
@ -3546,7 +3546,7 @@ void Buffer::updateLabels(UpdateScope scope, bool out) const
|
|||||||
|
|
||||||
// do the real work
|
// do the real work
|
||||||
ParIterator parit = cbuf.par_iterator_begin();
|
ParIterator parit = cbuf.par_iterator_begin();
|
||||||
updateLabels(parit, out);
|
updateLabels(parit, utype);
|
||||||
|
|
||||||
if (master != this)
|
if (master != this)
|
||||||
// TocBackend update will be done later.
|
// TocBackend update will be done later.
|
||||||
@ -3628,7 +3628,7 @@ static bool needEnumCounterReset(ParIterator const & it)
|
|||||||
|
|
||||||
|
|
||||||
// set the label of a paragraph. This includes the counters.
|
// set the label of a paragraph. This includes the counters.
|
||||||
void Buffer::setLabel(ParIterator & it, bool for_output) const
|
void Buffer::setLabel(ParIterator & it, UpdateType utype) const
|
||||||
{
|
{
|
||||||
BufferParams const & bp = this->masterBuffer()->params();
|
BufferParams const & bp = this->masterBuffer()->params();
|
||||||
DocumentClass const & textclass = bp.documentClass();
|
DocumentClass const & textclass = bp.documentClass();
|
||||||
@ -3660,7 +3660,7 @@ void Buffer::setLabel(ParIterator & it, bool for_output) const
|
|||||||
if (layout.toclevel <= bp.secnumdepth
|
if (layout.toclevel <= bp.secnumdepth
|
||||||
&& (layout.latextype != LATEX_ENVIRONMENT
|
&& (layout.latextype != LATEX_ENVIRONMENT
|
||||||
|| it.text()->isFirstInSequence(it.pit()))) {
|
|| it.text()->isFirstInSequence(it.pit()))) {
|
||||||
counters.step(layout.counter, for_output);
|
counters.step(layout.counter, utype);
|
||||||
par.params().labelString(
|
par.params().labelString(
|
||||||
par.expandLabel(layout, bp));
|
par.expandLabel(layout, bp));
|
||||||
} else
|
} else
|
||||||
@ -3714,7 +3714,7 @@ void Buffer::setLabel(ParIterator & it, bool for_output) const
|
|||||||
// Maybe we have to reset the enumeration counter.
|
// Maybe we have to reset the enumeration counter.
|
||||||
if (needEnumCounterReset(it))
|
if (needEnumCounterReset(it))
|
||||||
counters.reset(enumcounter);
|
counters.reset(enumcounter);
|
||||||
counters.step(enumcounter, for_output);
|
counters.step(enumcounter, utype);
|
||||||
|
|
||||||
string const & lang = par.getParLanguage(bp)->code();
|
string const & lang = par.getParLanguage(bp)->code();
|
||||||
par.params().labelString(counters.theCounter(enumcounter, lang));
|
par.params().labelString(counters.theCounter(enumcounter, lang));
|
||||||
@ -3731,7 +3731,7 @@ void Buffer::setLabel(ParIterator & it, bool for_output) const
|
|||||||
docstring name = this->B_(textclass.floats().getType(type).name());
|
docstring name = this->B_(textclass.floats().getType(type).name());
|
||||||
if (counters.hasCounter(from_utf8(type))) {
|
if (counters.hasCounter(from_utf8(type))) {
|
||||||
string const & lang = par.getParLanguage(bp)->code();
|
string const & lang = par.getParLanguage(bp)->code();
|
||||||
counters.step(from_utf8(type), for_output);
|
counters.step(from_utf8(type), utype);
|
||||||
full_label = bformat(from_ascii("%1$s %2$s:"),
|
full_label = bformat(from_ascii("%1$s %2$s:"),
|
||||||
name,
|
name,
|
||||||
counters.theCounter(from_utf8(type), lang));
|
counters.theCounter(from_utf8(type), lang));
|
||||||
@ -3757,7 +3757,7 @@ void Buffer::setLabel(ParIterator & it, bool for_output) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Buffer::updateLabels(ParIterator & parit, bool out) const
|
void Buffer::updateLabels(ParIterator & parit, UpdateType utype) const
|
||||||
{
|
{
|
||||||
LASSERT(parit.pit() == 0, /**/);
|
LASSERT(parit.pit() == 0, /**/);
|
||||||
|
|
||||||
@ -3774,7 +3774,7 @@ void Buffer::updateLabels(ParIterator & parit, bool out) const
|
|||||||
parit->params().depth(min(parit->params().depth(), maxdepth));
|
parit->params().depth(min(parit->params().depth(), maxdepth));
|
||||||
maxdepth = parit->getMaxDepthAfter();
|
maxdepth = parit->getMaxDepthAfter();
|
||||||
|
|
||||||
if (out) {
|
if (utype == OutputUpdate) {
|
||||||
// track the active counters
|
// track the active counters
|
||||||
// we have to do this for the master buffer, since the local
|
// we have to do this for the master buffer, since the local
|
||||||
// buffer isn't tracking anything.
|
// buffer isn't tracking anything.
|
||||||
@ -3783,14 +3783,14 @@ void Buffer::updateLabels(ParIterator & parit, bool out) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set the counter for this paragraph
|
// set the counter for this paragraph
|
||||||
setLabel(parit, out);
|
setLabel(parit, utype);
|
||||||
|
|
||||||
// now the insets
|
// now the insets
|
||||||
InsetList::const_iterator iit = parit->insetList().begin();
|
InsetList::const_iterator iit = parit->insetList().begin();
|
||||||
InsetList::const_iterator end = parit->insetList().end();
|
InsetList::const_iterator end = parit->insetList().end();
|
||||||
for (; iit != end; ++iit) {
|
for (; iit != end; ++iit) {
|
||||||
parit.pos() = iit->pos;
|
parit.pos() = iit->pos;
|
||||||
iit->inset->updateLabels(parit, out);
|
iit->inset->updateLabels(parit, utype);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BUFFER_H
|
#ifndef BUFFER_H
|
||||||
#define BUFFER_H
|
#define BUFFER_H
|
||||||
|
|
||||||
|
#include "OutputEnums.h"
|
||||||
#include "update_flags.h"
|
#include "update_flags.h"
|
||||||
|
|
||||||
#include "insets/InsetCode.h"
|
#include "insets/InsetCode.h"
|
||||||
@ -552,13 +553,13 @@ public:
|
|||||||
/// Updates screen labels and some other information associated with
|
/// Updates screen labels and some other information associated with
|
||||||
/// insets and paragraphs. Actually, it's more like a general "recurse
|
/// insets and paragraphs. Actually, it's more like a general "recurse
|
||||||
/// through the Buffer" routine, that visits all the insets and paragraphs.
|
/// through the Buffer" routine, that visits all the insets and paragraphs.
|
||||||
void updateLabels() const { updateLabels(UpdateMaster, false); }
|
void updateLabels() const { updateLabels(UpdateMaster, InternalUpdate); }
|
||||||
/// \param scope: whether to start with the master document or just
|
/// \param scope: whether to start with the master document or just
|
||||||
/// do this one.
|
/// do this one.
|
||||||
/// \param output: whether we are preparing for output.
|
/// \param output: whether we are preparing for output.
|
||||||
void updateLabels(UpdateScope scope, bool output) const;
|
void updateLabels(UpdateScope scope, UpdateType utype) const;
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator & parit, bool output) const;
|
void updateLabels(ParIterator & parit, UpdateType utype) const;
|
||||||
|
|
||||||
/// Spellcheck starting from \p from.
|
/// Spellcheck starting from \p from.
|
||||||
/// \p from initial position, will then points to the next misspelled
|
/// \p from initial position, will then points to the next misspelled
|
||||||
@ -579,7 +580,7 @@ private:
|
|||||||
void updateMacros(DocIterator & it,
|
void updateMacros(DocIterator & it,
|
||||||
DocIterator & scope) const;
|
DocIterator & scope) const;
|
||||||
///
|
///
|
||||||
void setLabel(ParIterator & it) const;
|
void setLabel(ParIterator & it, UpdateType utype) const;
|
||||||
///
|
///
|
||||||
void collectRelatives(BufferSet & bufs) const;
|
void collectRelatives(BufferSet & bufs) const;
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ int Counters::value(docstring const & ctr) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Counters::step(docstring const & ctr, bool track_counters)
|
void Counters::step(docstring const & ctr, UpdateType utype)
|
||||||
{
|
{
|
||||||
CounterList::iterator it = counterList_.find(ctr);
|
CounterList::iterator it = counterList_.find(ctr);
|
||||||
if (it == counterList_.end()) {
|
if (it == counterList_.end()) {
|
||||||
@ -237,7 +237,7 @@ void Counters::step(docstring const & ctr, bool track_counters)
|
|||||||
}
|
}
|
||||||
|
|
||||||
it->second.step();
|
it->second.step();
|
||||||
if (track_counters) {
|
if (utype == OutputUpdate) {
|
||||||
LASSERT(!counter_stack_.empty(), /* */);
|
LASSERT(!counter_stack_.empty(), /* */);
|
||||||
counter_stack_.pop_back();
|
counter_stack_.pop_back();
|
||||||
counter_stack_.push_back(ctr);
|
counter_stack_.push_back(ctr);
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
#ifndef COUNTERS_H
|
#ifndef COUNTERS_H
|
||||||
#define COUNTERS_H
|
#define COUNTERS_H
|
||||||
|
|
||||||
|
#include "OutputEnums.h"
|
||||||
|
|
||||||
#include "support/docstring.h"
|
#include "support/docstring.h"
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -116,7 +118,7 @@ public:
|
|||||||
/// Sub-slaves are not zeroed! That happens at slave's first
|
/// Sub-slaves are not zeroed! That happens at slave's first
|
||||||
/// step 0->1. Seems to be sufficient.
|
/// step 0->1. Seems to be sufficient.
|
||||||
/// \param for_output: whether to track the counters
|
/// \param for_output: whether to track the counters
|
||||||
void step(docstring const & ctr, bool track_counters = false);
|
void step(docstring const & ctr, UpdateType = InternalUpdate);
|
||||||
/// Reset all counters.
|
/// Reset all counters.
|
||||||
void reset();
|
void reset();
|
||||||
/// Reset counters matched by match string.
|
/// Reset counters matched by match string.
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "ColorCode.h"
|
#include "ColorCode.h"
|
||||||
#include "InsetCode.h"
|
#include "InsetCode.h"
|
||||||
#include "Layout.h"
|
#include "Layout.h"
|
||||||
|
#include "OutputEnums.h"
|
||||||
|
|
||||||
#include "support/strfwd.h"
|
#include "support/strfwd.h"
|
||||||
#include "support/types.h"
|
#include "support/types.h"
|
||||||
@ -472,7 +473,7 @@ public:
|
|||||||
/// Update the counters of this inset and of its contents.
|
/// Update the counters of this inset and of its contents.
|
||||||
/// The boolean indicates whether we are preparing for output, e.g.,
|
/// The boolean indicates whether we are preparing for output, e.g.,
|
||||||
/// of XHTML.
|
/// of XHTML.
|
||||||
virtual void updateLabels(ParIterator const &, bool) {}
|
virtual void updateLabels(ParIterator const &, UpdateType) {}
|
||||||
|
|
||||||
/// Updates the inset's dialog
|
/// Updates the inset's dialog
|
||||||
virtual Buffer const * updateFrontend() const;
|
virtual Buffer const * updateFrontend() const;
|
||||||
|
@ -254,13 +254,13 @@ void InsetBibitem::fillWithBibKeys(BiblioInfo & keys, InsetIterator const & it)
|
|||||||
|
|
||||||
|
|
||||||
// Update the counters of this inset and of its contents
|
// Update the counters of this inset and of its contents
|
||||||
void InsetBibitem::updateLabels(ParIterator const & it, bool)
|
void InsetBibitem::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
BufferParams const & bp = buffer().masterBuffer()->params();
|
BufferParams const & bp = buffer().masterBuffer()->params();
|
||||||
Counters & counters = bp.documentClass().counters();
|
Counters & counters = bp.documentClass().counters();
|
||||||
docstring const bibitem = from_ascii("bibitem");
|
docstring const bibitem = from_ascii("bibitem");
|
||||||
if (counters.hasCounter(bibitem) && getParam("label").empty()) {
|
if (counters.hasCounter(bibitem) && getParam("label").empty()) {
|
||||||
counters.step(bibitem);
|
counters.step(bibitem, utype);
|
||||||
string const & lang = it.paragraph().getParLanguage(bp)->code();
|
string const & lang = it.paragraph().getParLanguage(bp)->code();
|
||||||
autolabel_ = counters.theCounter(bibitem, lang);
|
autolabel_ = counters.theCounter(bibitem, lang);
|
||||||
} else {
|
} else {
|
||||||
|
@ -65,7 +65,7 @@ private:
|
|||||||
///
|
///
|
||||||
virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const;
|
virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const;
|
||||||
/// Update the counter of this inset
|
/// Update the counter of this inset
|
||||||
virtual void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void updateCommand(docstring const & new_key, bool dummy = false);
|
void updateCommand(docstring const & new_key, bool dummy = false);
|
||||||
///
|
///
|
||||||
|
@ -307,14 +307,14 @@ docstring InsetCaption::getCaptionAsHTML(XHTMLStream & xs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetCaption::updateLabels(ParIterator const & it, bool out)
|
void InsetCaption::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
Buffer const & master = *buffer().masterBuffer();
|
Buffer const & master = *buffer().masterBuffer();
|
||||||
DocumentClass const & tclass = master.params().documentClass();
|
DocumentClass const & tclass = master.params().documentClass();
|
||||||
string const & lang = it.paragraph().getParLanguage(master.params())->code();
|
string const & lang = it.paragraph().getParLanguage(master.params())->code();
|
||||||
Counters & cnts = tclass.counters();
|
Counters & cnts = tclass.counters();
|
||||||
string const & type = cnts.current_float();
|
string const & type = cnts.current_float();
|
||||||
if (out) {
|
if (utype == OutputUpdate) {
|
||||||
// counters are local to the caption
|
// counters are local to the caption
|
||||||
cnts.saveLastCounter();
|
cnts.saveLastCounter();
|
||||||
}
|
}
|
||||||
@ -337,7 +337,7 @@ void InsetCaption::updateLabels(ParIterator const & it, bool out)
|
|||||||
master.B_(tclass.floats().getType(type).name()));
|
master.B_(tclass.floats().getType(type).name()));
|
||||||
}
|
}
|
||||||
if (cnts.hasCounter(counter)) {
|
if (cnts.hasCounter(counter)) {
|
||||||
cnts.step(counter, out);
|
cnts.step(counter, utype);
|
||||||
full_label_ = bformat(from_ascii("%1$s %2$s:"),
|
full_label_ = bformat(from_ascii("%1$s %2$s:"),
|
||||||
name,
|
name,
|
||||||
cnts.theCounter(counter, lang));
|
cnts.theCounter(counter, lang));
|
||||||
@ -346,8 +346,8 @@ void InsetCaption::updateLabels(ParIterator const & it, bool out)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do the real work now.
|
// Do the real work now.
|
||||||
InsetText::updateLabels(it, out);
|
InsetText::updateLabels(it, utype);
|
||||||
if (out)
|
if (utype == OutputUpdate)
|
||||||
cnts.restoreLastCounter();
|
cnts.restoreLastCounter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ private:
|
|||||||
///
|
///
|
||||||
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
|
||||||
// Update the counters of this inset and of its contents
|
// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
int latex(odocstream & os, OutputParams const &) const;
|
int latex(odocstream & os, OutputParams const &) const;
|
||||||
///
|
///
|
||||||
|
@ -457,7 +457,7 @@ docstring InsetCitation::screenLabel() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetCitation::updateLabels(ParIterator const &, bool)
|
void InsetCitation::updateLabels(ParIterator const &, UpdateType utype)
|
||||||
{
|
{
|
||||||
CiteEngine const engine = buffer().params().citeEngine();
|
CiteEngine const engine = buffer().params().citeEngine();
|
||||||
if (cache.params == params() && cache.engine == engine)
|
if (cache.params == params() && cache.engine == engine)
|
||||||
|
@ -56,7 +56,7 @@ public:
|
|||||||
///
|
///
|
||||||
void validate(LaTeXFeatures &) const;
|
void validate(LaTeXFeatures &) const;
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator const & it, bool);
|
void updateLabels(ParIterator const & it, UpdateType);
|
||||||
///
|
///
|
||||||
void addToToc(DocIterator const &);
|
void addToToc(DocIterator const &);
|
||||||
|
|
||||||
|
@ -195,11 +195,11 @@ bool InsetFloat::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetFloat::updateLabels(ParIterator const & it, bool out)
|
void InsetFloat::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
Counters & cnts =
|
Counters & cnts =
|
||||||
buffer().masterBuffer()->params().documentClass().counters();
|
buffer().masterBuffer()->params().documentClass().counters();
|
||||||
if (out) {
|
if (utype == OutputUpdate) {
|
||||||
// counters are local to the float
|
// counters are local to the float
|
||||||
cnts.saveLastCounter();
|
cnts.saveLastCounter();
|
||||||
}
|
}
|
||||||
@ -217,11 +217,11 @@ void InsetFloat::updateLabels(ParIterator const & it, bool out)
|
|||||||
cnts.current_float(params().type);
|
cnts.current_float(params().type);
|
||||||
cnts.isSubfloat(subflt);
|
cnts.isSubfloat(subflt);
|
||||||
|
|
||||||
InsetCollapsable::updateLabels(it, out);
|
InsetCollapsable::updateLabels(it, utype);
|
||||||
|
|
||||||
//reset afterwards
|
//reset afterwards
|
||||||
cnts.current_float(saveflt);
|
cnts.current_float(saveflt);
|
||||||
if (out)
|
if (utype == OutputUpdate)
|
||||||
cnts.restoreLastCounter();
|
cnts.restoreLastCounter();
|
||||||
cnts.isSubfloat(savesubflt);
|
cnts.isSubfloat(savesubflt);
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ private:
|
|||||||
///
|
///
|
||||||
bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
|
bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
|
||||||
// Update the counters of this inset and of its contents
|
// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
||||||
///
|
///
|
||||||
|
@ -36,11 +36,11 @@ InsetFoot::InsetFoot(Buffer * buf)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
void InsetFoot::updateLabels(ParIterator const & it, bool out)
|
void InsetFoot::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
BufferParams const & bp = buffer().masterBuffer()->params();
|
BufferParams const & bp = buffer().masterBuffer()->params();
|
||||||
Counters & cnts = bp.documentClass().counters();
|
Counters & cnts = bp.documentClass().counters();
|
||||||
if (out) {
|
if (utype == OutputUpdate) {
|
||||||
// the footnote counter is local to this inset
|
// the footnote counter is local to this inset
|
||||||
cnts.saveLastCounter();
|
cnts.saveLastCounter();
|
||||||
}
|
}
|
||||||
@ -48,13 +48,13 @@ void InsetFoot::updateLabels(ParIterator const & it, bool out)
|
|||||||
InsetLayout const & il = getLayout();
|
InsetLayout const & il = getLayout();
|
||||||
docstring const & count = il.counter();
|
docstring const & count = il.counter();
|
||||||
if (!outer.layout().intitle && cnts.hasCounter(count)) {
|
if (!outer.layout().intitle && cnts.hasCounter(count)) {
|
||||||
cnts.step(count, out);
|
cnts.step(count, utype);
|
||||||
custom_label_= translateIfPossible(il.labelstring())
|
custom_label_= translateIfPossible(il.labelstring())
|
||||||
+ ' ' + cnts.theCounter(count, outer.getParLanguage(bp)->code());
|
+ ' ' + cnts.theCounter(count, outer.getParLanguage(bp)->code());
|
||||||
setLabel(custom_label_);
|
setLabel(custom_label_);
|
||||||
}
|
}
|
||||||
InsetCollapsable::updateLabels(it, out);
|
InsetCollapsable::updateLabels(it, utype);
|
||||||
if (out)
|
if (utype == OutputUpdate)
|
||||||
cnts.restoreLastCounter();
|
cnts.restoreLastCounter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
///
|
///
|
||||||
int docbook(odocstream &, OutputParams const &) const;
|
int docbook(odocstream &, OutputParams const &) const;
|
||||||
/// Update the counters of this inset and of its contents
|
/// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void addToToc(DocIterator const &);
|
void addToToc(DocIterator const &);
|
||||||
///
|
///
|
||||||
|
@ -1047,18 +1047,18 @@ void InsetInclude::updateCommand()
|
|||||||
setParams(p);
|
setParams(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InsetInclude::updateLabels(ParIterator const & it, bool out)
|
void InsetInclude::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
Buffer const * const childbuffer = getChildBuffer();
|
Buffer const * const childbuffer = getChildBuffer();
|
||||||
if (childbuffer) {
|
if (childbuffer) {
|
||||||
childbuffer->updateLabels(Buffer::UpdateChildOnly, out);
|
childbuffer->updateLabels(Buffer::UpdateChildOnly, utype);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isListings(params()))
|
if (!isListings(params()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (label_)
|
if (label_)
|
||||||
label_->updateLabels(it, out);
|
label_->updateLabels(it, utype);
|
||||||
|
|
||||||
InsetListingsParams const par(to_utf8(params()["lstparams"]));
|
InsetListingsParams const par(to_utf8(params()["lstparams"]));
|
||||||
if (par.getParamValue("caption").empty()) {
|
if (par.getParamValue("caption").empty()) {
|
||||||
@ -1070,7 +1070,7 @@ void InsetInclude::updateLabels(ParIterator const & it, bool out)
|
|||||||
docstring const cnt = from_ascii("listing");
|
docstring const cnt = from_ascii("listing");
|
||||||
listings_label_ = master.B_("Program Listing");
|
listings_label_ = master.B_("Program Listing");
|
||||||
if (counters.hasCounter(cnt)) {
|
if (counters.hasCounter(cnt)) {
|
||||||
counters.step(cnt);
|
counters.step(cnt, utype);
|
||||||
listings_label_ += " " + convert<docstring>(counters.value(cnt));
|
listings_label_ += " " + convert<docstring>(counters.value(cnt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ public:
|
|||||||
///
|
///
|
||||||
void updateCommand();
|
void updateCommand();
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
static ParamInfo const & findInfo(std::string const &);
|
static ParamInfo const & findInfo(std::string const &);
|
||||||
///
|
///
|
||||||
|
@ -108,7 +108,7 @@ docstring InsetLabel::screenLabel() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetLabel::updateLabels(ParIterator const & par, bool out)
|
void InsetLabel::updateLabels(ParIterator const & par, UpdateType utype)
|
||||||
{
|
{
|
||||||
docstring const & label = getParam("name");
|
docstring const & label = getParam("name");
|
||||||
if (buffer().insetLabel(label)) {
|
if (buffer().insetLabel(label)) {
|
||||||
@ -119,7 +119,7 @@ void InsetLabel::updateLabels(ParIterator const & par, bool out)
|
|||||||
buffer().setInsetLabel(label, this);
|
buffer().setInsetLabel(label, this);
|
||||||
screen_label_ = label;
|
screen_label_ = label;
|
||||||
|
|
||||||
if (out) {
|
if (utype) {
|
||||||
// save info on the active counter
|
// save info on the active counter
|
||||||
Counters const & cnts =
|
Counters const & cnts =
|
||||||
buffer().masterBuffer()->params().documentClass().counters();
|
buffer().masterBuffer()->params().documentClass().counters();
|
||||||
|
@ -55,7 +55,7 @@ public:
|
|||||||
static bool isCompatibleCommand(std::string const & s)
|
static bool isCompatibleCommand(std::string const & s)
|
||||||
{ return s == "label"; }
|
{ return s == "label"; }
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator const & it, bool);
|
void updateLabels(ParIterator const & it, UpdateType);
|
||||||
///
|
///
|
||||||
void addToToc(DocIterator const &);
|
void addToToc(DocIterator const &);
|
||||||
///
|
///
|
||||||
|
@ -71,7 +71,7 @@ Inset::DisplayType InsetListings::display() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetListings::updateLabels(ParIterator const & it, bool out)
|
void InsetListings::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
|
Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
|
||||||
string const saveflt = cnts.current_float();
|
string const saveflt = cnts.current_float();
|
||||||
@ -79,7 +79,7 @@ void InsetListings::updateLabels(ParIterator const & it, bool out)
|
|||||||
// Tell to captions what the current float is
|
// Tell to captions what the current float is
|
||||||
cnts.current_float("listing");
|
cnts.current_float("listing");
|
||||||
|
|
||||||
InsetCollapsable::updateLabels(it, out);
|
InsetCollapsable::updateLabels(it, utype);
|
||||||
|
|
||||||
//reset afterwards
|
//reset afterwards
|
||||||
cnts.current_float(saveflt);
|
cnts.current_float(saveflt);
|
||||||
|
@ -48,7 +48,7 @@ private:
|
|||||||
///
|
///
|
||||||
docstring name() const { return from_ascii("Listings"); }
|
docstring name() const { return from_ascii("Listings"); }
|
||||||
// Update the counters of this inset and of its contents
|
// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void write(std::ostream & os) const;
|
void write(std::ostream & os) const;
|
||||||
///
|
///
|
||||||
|
@ -161,7 +161,7 @@ void InsetRef::tocString(odocstream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetRef::updateLabels(ParIterator const & it, bool)
|
void InsetRef::updateLabels(ParIterator const & it, UpdateType)
|
||||||
{
|
{
|
||||||
docstring const & label = getParam("reference");
|
docstring const & label = getParam("reference");
|
||||||
// register this inset into the buffer reference cache.
|
// register this inset into the buffer reference cache.
|
||||||
|
@ -67,7 +67,7 @@ public:
|
|||||||
///
|
///
|
||||||
static bool isCompatibleCommand(std::string const & s);
|
static bool isCompatibleCommand(std::string const & s);
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator const & it, bool);
|
void updateLabels(ParIterator const & it, UpdateType);
|
||||||
///
|
///
|
||||||
void addToToc(DocIterator const &);
|
void addToToc(DocIterator const &);
|
||||||
protected:
|
protected:
|
||||||
|
@ -3398,7 +3398,7 @@ void InsetTabular::edit(Cursor & cur, bool front, EntryDirection)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetTabular::updateLabels(ParIterator const & it, bool out)
|
void InsetTabular::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
// In a longtable, tell captions what the current float is
|
// In a longtable, tell captions what the current float is
|
||||||
Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
|
Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
|
||||||
@ -3410,7 +3410,7 @@ void InsetTabular::updateLabels(ParIterator const & it, bool out)
|
|||||||
it2.forwardPos();
|
it2.forwardPos();
|
||||||
size_t const end = it2.nargs();
|
size_t const end = it2.nargs();
|
||||||
for ( ; it2.idx() < end; it2.top().forwardIdx())
|
for ( ; it2.idx() < end; it2.top().forwardIdx())
|
||||||
buffer().updateLabels(it2, out);
|
buffer().updateLabels(it2, utype);
|
||||||
|
|
||||||
//reset afterwards
|
//reset afterwards
|
||||||
if (tabular.is_long_tabular)
|
if (tabular.is_long_tabular)
|
||||||
|
@ -836,7 +836,7 @@ public:
|
|||||||
/// can we go further down on mouse click?
|
/// can we go further down on mouse click?
|
||||||
bool descendable(BufferView const &) const { return true; }
|
bool descendable(BufferView const &) const { return true; }
|
||||||
// Update the counters of this inset and of its contents
|
// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
|
|
||||||
///
|
///
|
||||||
bool completionSupported(Cursor const &) const;
|
bool completionSupported(Cursor const &) const;
|
||||||
|
@ -504,7 +504,7 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & runpara
|
|||||||
if ((opts & WriteLabel) && !il.counter().empty()) {
|
if ((opts & WriteLabel) && !il.counter().empty()) {
|
||||||
BufferParams const & bp = buffer().masterBuffer()->params();
|
BufferParams const & bp = buffer().masterBuffer()->params();
|
||||||
Counters & cntrs = bp.documentClass().counters();
|
Counters & cntrs = bp.documentClass().counters();
|
||||||
cntrs.step(il.counter(), true);
|
cntrs.step(il.counter(), OutputUpdate);
|
||||||
// FIXME: translate to paragraph language
|
// FIXME: translate to paragraph language
|
||||||
if (!il.htmllabel().empty()) {
|
if (!il.htmllabel().empty()) {
|
||||||
docstring const lbl =
|
docstring const lbl =
|
||||||
@ -648,23 +648,21 @@ ParagraphList & InsetText::paragraphs()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetText::updateLabels(ParIterator const & it, bool out)
|
void InsetText::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
ParIterator it2 = it;
|
ParIterator it2 = it;
|
||||||
it2.forwardPos();
|
it2.forwardPos();
|
||||||
LASSERT(&it2.inset() == this && it2.pit() == 0, return);
|
LASSERT(&it2.inset() == this && it2.pit() == 0, return);
|
||||||
if (producesOutput()) {
|
if (producesOutput()) {
|
||||||
// FIXME We only want to do this, in fact, for some insets.
|
|
||||||
// But we'll need layout info for that.
|
|
||||||
InsetLayout const & il = getLayout();
|
InsetLayout const & il = getLayout();
|
||||||
bool const save_layouts = out && il.htmlisblock();
|
bool const save_layouts = utype == OutputUpdate && il.htmlisblock();
|
||||||
Counters & cnt = buffer().masterBuffer()->params().documentClass().counters();
|
Counters & cnt = buffer().masterBuffer()->params().documentClass().counters();
|
||||||
if (save_layouts) {
|
if (save_layouts) {
|
||||||
// LYXERR0("Entering " << name());
|
// LYXERR0("Entering " << name());
|
||||||
cnt.clearLastLayout();
|
cnt.clearLastLayout();
|
||||||
// FIXME cnt.saveLastCounter()?
|
// FIXME cnt.saveLastCounter()?
|
||||||
}
|
}
|
||||||
buffer().updateLabels(it2, out);
|
buffer().updateLabels(it2, utype);
|
||||||
if (save_layouts) {
|
if (save_layouts) {
|
||||||
// LYXERR0("Exiting " << name());
|
// LYXERR0("Exiting " << name());
|
||||||
cnt.restoreLastLayout();
|
cnt.restoreLastLayout();
|
||||||
@ -676,7 +674,7 @@ void InsetText::updateLabels(ParIterator const & it, bool out)
|
|||||||
// tclass.counters().clearLastLayout()
|
// tclass.counters().clearLastLayout()
|
||||||
// since we are saving and restoring the existing counters, etc.
|
// since we are saving and restoring the existing counters, etc.
|
||||||
Counters const savecnt = tclass.counters();
|
Counters const savecnt = tclass.counters();
|
||||||
buffer().updateLabels(it2, out);
|
buffer().updateLabels(it2, utype);
|
||||||
tclass.counters() = savecnt;
|
tclass.counters() = savecnt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ public:
|
|||||||
{ return getLayout().allowParagraphCustomization(); }
|
{ return getLayout().allowParagraphCustomization(); }
|
||||||
|
|
||||||
/// Update the counters of this inset and of its contents
|
/// Update the counters of this inset and of its contents
|
||||||
virtual void updateLabels(ParIterator const &, bool);
|
virtual void updateLabels(ParIterator const &, UpdateType);
|
||||||
/// the string that is passed to the TOC
|
/// the string that is passed to the TOC
|
||||||
void tocString(odocstream &) const;
|
void tocString(odocstream &) const;
|
||||||
///
|
///
|
||||||
|
@ -114,12 +114,12 @@ bool InsetWrap::getStatus(Cursor & cur, FuncRequest const & cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetWrap::updateLabels(ParIterator const & it, bool out)
|
void InsetWrap::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
setLabel(_("wrap: ") + floatName(params_.type));
|
setLabel(_("wrap: ") + floatName(params_.type));
|
||||||
Counters & cnts =
|
Counters & cnts =
|
||||||
buffer().masterBuffer()->params().documentClass().counters();
|
buffer().masterBuffer()->params().documentClass().counters();
|
||||||
if (out) {
|
if (utype == OutputUpdate) {
|
||||||
// counters are local to the wrap
|
// counters are local to the wrap
|
||||||
cnts.saveLastCounter();
|
cnts.saveLastCounter();
|
||||||
}
|
}
|
||||||
@ -128,11 +128,11 @@ void InsetWrap::updateLabels(ParIterator const & it, bool out)
|
|||||||
// Tell to captions what the current float is
|
// Tell to captions what the current float is
|
||||||
cnts.current_float(params().type);
|
cnts.current_float(params().type);
|
||||||
|
|
||||||
InsetCollapsable::updateLabels(it, out);
|
InsetCollapsable::updateLabels(it, utype);
|
||||||
|
|
||||||
// reset afterwards
|
// reset afterwards
|
||||||
cnts.current_float(saveflt);
|
cnts.current_float(saveflt);
|
||||||
if (out)
|
if (utype == OutputUpdate)
|
||||||
cnts.restoreLastCounter();
|
cnts.restoreLastCounter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ private:
|
|||||||
///
|
///
|
||||||
bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
|
bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
|
||||||
/// Update the counters of this inset and of its contents
|
/// Update the counters of this inset and of its contents
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
||||||
///
|
///
|
||||||
|
@ -213,7 +213,7 @@ void InsetMathHull::setBuffer(Buffer & buffer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetMathHull::updateLabels(ParIterator const & it, bool out)
|
void InsetMathHull::updateLabels(ParIterator const & it, UpdateType utype)
|
||||||
{
|
{
|
||||||
if (!buffer_) {
|
if (!buffer_) {
|
||||||
//FIXME: buffer_ should be set at creation for this inset! Problem is
|
//FIXME: buffer_ should be set at creation for this inset! Problem is
|
||||||
@ -223,7 +223,7 @@ void InsetMathHull::updateLabels(ParIterator const & it, bool out)
|
|||||||
}
|
}
|
||||||
for (size_t i = 0; i != label_.size(); ++i) {
|
for (size_t i = 0; i != label_.size(); ++i) {
|
||||||
if (label_[i])
|
if (label_[i])
|
||||||
label_[i]->updateLabels(it, out);
|
label_[i]->updateLabels(it, utype);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
#include "InsetMathGrid.h"
|
#include "InsetMathGrid.h"
|
||||||
|
|
||||||
|
#include "OutputEnums.h"
|
||||||
|
|
||||||
#include <boost/scoped_ptr.hpp>
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ public:
|
|||||||
///
|
///
|
||||||
void setBuffer(Buffer &);
|
void setBuffer(Buffer &);
|
||||||
///
|
///
|
||||||
void updateLabels(ParIterator const &, bool);
|
void updateLabels(ParIterator const &, UpdateType);
|
||||||
///
|
///
|
||||||
void addToToc(DocIterator const &);
|
void addToToc(DocIterator const &);
|
||||||
///
|
///
|
||||||
|
@ -573,7 +573,7 @@ ParagraphList::const_iterator makeParagraphs(Buffer const & buf,
|
|||||||
for (; par != pend; ++par) {
|
for (; par != pend; ++par) {
|
||||||
Layout const & lay = par->layout();
|
Layout const & lay = par->layout();
|
||||||
if (!lay.counter.empty())
|
if (!lay.counter.empty())
|
||||||
buf.params().documentClass().counters().step(lay.counter);
|
buf.params().documentClass().counters().step(lay.counter, OutputUpdate);
|
||||||
// FIXME We should see if there's a label to be output and
|
// FIXME We should see if there's a label to be output and
|
||||||
// do something with it.
|
// do something with it.
|
||||||
if (par != pbegin)
|
if (par != pbegin)
|
||||||
@ -674,7 +674,7 @@ ParagraphList::const_iterator makeEnvironmentHtml(Buffer const & buf,
|
|||||||
&& (par == pbegin || !isNormalEnv(style))
|
&& (par == pbegin || !isNormalEnv(style))
|
||||||
&& cnts.hasCounter(cntr)
|
&& cnts.hasCounter(cntr)
|
||||||
)
|
)
|
||||||
cnts.step(cntr);
|
cnts.step(cntr, OutputUpdate);
|
||||||
ParagraphList::const_iterator send;
|
ParagraphList::const_iterator send;
|
||||||
// this will be positive, if we want to skip the initial word
|
// this will be positive, if we want to skip the initial word
|
||||||
// (if it's been taken for the label).
|
// (if it's been taken for the label).
|
||||||
@ -786,7 +786,7 @@ void makeCommand(Buffer const & buf,
|
|||||||
{
|
{
|
||||||
Layout const & style = pbegin->layout();
|
Layout const & style = pbegin->layout();
|
||||||
if (!style.counter.empty())
|
if (!style.counter.empty())
|
||||||
buf.params().documentClass().counters().step(style.counter);
|
buf.params().documentClass().counters().step(style.counter, OutputUpdate);
|
||||||
|
|
||||||
openTag(xs, style);
|
openTag(xs, style);
|
||||||
|
|
||||||
|
@ -220,6 +220,7 @@ void sgml::openTag(Buffer const & buf, odocstream & os,
|
|||||||
if (param.find('#') != string::npos) {
|
if (param.find('#') != string::npos) {
|
||||||
// FIXME UNICODE
|
// FIXME UNICODE
|
||||||
if (!style.counter.empty())
|
if (!style.counter.empty())
|
||||||
|
// NOTE This could use OutputUpdate and track the counters.
|
||||||
counters.step(style.counter);
|
counters.step(style.counter);
|
||||||
else
|
else
|
||||||
counters.step(from_ascii(name));
|
counters.step(from_ascii(name));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user