Recreate citation label after paste

Fixes: #10829
(cherry picked from commit 7e34e65943)
This commit is contained in:
Juergen Spitzmueller 2017-12-06 09:11:18 +01:00
parent a4a50ac358
commit c0ef31d9b9
2 changed files with 13 additions and 0 deletions

View File

@ -40,6 +40,7 @@
#include "insets/InsetBibitem.h"
#include "insets/InsetBranch.h"
#include "insets/InsetCitation.h"
#include "insets/InsetCommand.h"
#include "insets/InsetFlex.h"
#include "insets/InsetGraphics.h"
@ -357,6 +358,16 @@ pasteSelectionHelper(DocIterator const & cur, ParagraphList const & parlist,
break;
}
case CITE_CODE: {
InsetCitation & cit = static_cast<InsetCitation &>(*it);
// This actually only needs to be done if the cite engine
// differs, but we do it in general.
cit.redoLabel();
// We need to update the list of citations.
need_update = true;
break;
}
case BIBITEM_CODE: {
// check for duplicates
InsetBibitem & bib = static_cast<InsetBibitem &>(*it);

View File

@ -82,6 +82,8 @@ public:
static bool isCompatibleCommand(std::string const &);
//@}
///
void redoLabel() { cache.recalculate = true; }
///
CitationStyle getCitationStyle(BufferParams const & bp, std::string const & input,
std::vector<CitationStyle> const & valid_styles) const;
///