}
+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)
{
- // NOTE It might be worth trying to remove this counter
- // as "master" for any counter that declares it, but we
- // don't actually need to do so.
- return counterList_.erase(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;
}
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);