mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
We already allowed a counter declaraton for flex insets. We just
didn't do anything with it. So let's do something with it. Fixes bug #8470.
This commit is contained in:
parent
ecb3b7b25c
commit
a9614f15d2
@ -6,15 +6,20 @@
|
||||
|
||||
Format 45
|
||||
|
||||
InsetLayout Flex:Endnote
|
||||
LyXType custom
|
||||
LatexName endnote
|
||||
LatexType command
|
||||
Decoration classic
|
||||
Font
|
||||
Size Small
|
||||
EndFont
|
||||
MultiPar true
|
||||
LabelString endnote
|
||||
Requires endnotes
|
||||
Counter endnotes
|
||||
PrettyFormat "Endnote ##"
|
||||
End
|
||||
|
||||
InsetLayout Flex:Endnote
|
||||
LyXType custom
|
||||
LatexName endnote
|
||||
LatexType command
|
||||
Counter endnotes
|
||||
Decoration classic
|
||||
Font
|
||||
Size Small
|
||||
EndFont
|
||||
MultiPar true
|
||||
LabelString endnote
|
||||
Requires endnotes
|
||||
End
|
||||
|
@ -19,7 +19,9 @@
|
||||
#include "Cursor.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "FuncStatus.h"
|
||||
#include "Language.h"
|
||||
#include "Lexer.h"
|
||||
#include "ParIterator.h"
|
||||
#include "TextClass.h"
|
||||
|
||||
#include "support/gettext.h"
|
||||
@ -124,4 +126,26 @@ void InsetFlex::doDispatch(Cursor & cur, FuncRequest & cmd)
|
||||
}
|
||||
|
||||
|
||||
void InsetFlex::updateBuffer(ParIterator const & it, UpdateType utype)
|
||||
{
|
||||
BufferParams const & bp = buffer().masterBuffer()->params();
|
||||
Counters & cnts = bp.documentClass().counters();
|
||||
if (utype == OutputUpdate) {
|
||||
// the counter is local to this inset
|
||||
cnts.saveLastCounter();
|
||||
}
|
||||
InsetLayout const & il = getLayout();
|
||||
docstring const & count = il.counter();
|
||||
docstring custom_label = translateIfPossible(il.labelstring());
|
||||
if (cnts.hasCounter(count))
|
||||
cnts.step(count, utype);
|
||||
custom_label += ' ' +
|
||||
cnts.theCounter(count, it.paragraph().getParLanguage(bp)->code());
|
||||
setLabel(custom_label);
|
||||
InsetCollapsable::updateBuffer(it, utype);
|
||||
if (utype == OutputUpdate)
|
||||
cnts.restoreLastCounter();
|
||||
}
|
||||
|
||||
|
||||
} // namespace lyx
|
||||
|
@ -45,6 +45,8 @@ public:
|
||||
FuncStatus &) const;
|
||||
///
|
||||
void doDispatch(Cursor & cur, FuncRequest & cmd);
|
||||
///
|
||||
void updateBuffer(ParIterator const & it, UpdateType utype);
|
||||
|
||||
protected:
|
||||
///
|
||||
|
@ -48,10 +48,10 @@ void InsetFoot::updateBuffer(ParIterator const & it, UpdateType utype)
|
||||
if (!outer.layout().intitle) {
|
||||
InsetLayout const & il = getLayout();
|
||||
docstring const & count = il.counter();
|
||||
custom_label_ = translateIfPossible(il.labelstring()) + ' ';
|
||||
custom_label_ = translateIfPossible(il.labelstring());
|
||||
if (cnts.hasCounter(count))
|
||||
cnts.step(count, utype);
|
||||
custom_label_ +=
|
||||
custom_label_ += ' ' +
|
||||
cnts.theCounter(count, outer.getParLanguage(bp)->code());
|
||||
setLabel(custom_label_);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user