}
+bool Counter::checkAndRemoveMaster(docstring const & cnt)
+{
+ if (master_ != cnt)
+ return false;
+ master_ = docstring();
+ return true;
+}
+
+
docstring const & Counter::labelString(bool in_appendix) const
{
return in_appendix ? labelstringappendix_ : labelstring_;
}
+bool Counters::remove(docstring const & cnt)
+{
+ bool retval = counterList_.erase(cnt);
+ if (!retval)
+ return false;
+ CounterList::iterator it = counterList_.begin();
+ CounterList::iterator end = counterList_.end();
+ for (; it != end; ++it) {
+ if (it->second.checkAndRemoveMaster(cnt))
+ LYXERR(Debug::TCLASS, "Removed master counter `" +
+ to_utf8(cnt) + "' from counter: " + to_utf8(it->first));
+ }
+ return retval;
+}
+
+
void Counters::copy(Counters & from, Counters & to, docstring const & match)
{
CounterList::iterator it = counterList_.begin();
if (smit != sm.end())
return counterLabel(smit->second, lang);
- deque<docstring> callers;
+ vector<docstring> callers;
docstring const & fls = flattenLabelString(counter, appendix(),
lang, callers);
sm[lang] = fls;
docstring Counters::flattenLabelString(docstring const & counter,
bool in_appendix,
string const & lang,
- deque<docstring> & callers) const
+ vector<docstring> & callers) const
{
docstring label;
Counter const & ctr = it->second;
docstring const value = theCounter(name, lang);
- docstring const & format = ctr.prettyFormat();
+ docstring const & format =
+ translateIfPossible(ctr.prettyFormat(), lang);
if (format.empty())
return value;
return subst(format, from_ascii("##"), value);