X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCitation.h;h=b7af22b751dac00951265db9d90be3ce43220d34;hb=3b30dbfca4936adac9a6eb94fced33d36e617734;hp=c48e3c432b1ee7cceb1a0bae15c703dec4c7c080;hpb=352a8e115fc9e17d7f912e4d495af032d54e29ad;p=features.git diff --git a/src/Citation.h b/src/Citation.h index c48e3c432b..b7af22b751 100644 --- a/src/Citation.h +++ b/src/Citation.h @@ -14,11 +14,10 @@ #include "support/docstring.h" #include +#include namespace lyx { -class Buffer; - enum CiteEngineType { ENGINE_TYPE_AUTHORYEAR = 1, @@ -32,7 +31,8 @@ class CitationStyle public: /// CitationStyle() : name("cite"), cmd("cite"), forceUpperCase(false), - hasStarredVersion(false), textAfter(false), textBefore(false) {} + hasStarredVersion(false), hasQualifiedList(false), + textAfter(false), textBefore(false) {} /// the LyX name std::string name; @@ -46,6 +46,8 @@ public: bool forceUpperCase; /// starred version (full author list by default) bool hasStarredVersion; + /// allows for qualified citation lists (a Biblatex feature) + bool hasQualifiedList; /// supports text after the citation bool textAfter; /// supports text before the citation @@ -67,7 +69,7 @@ public: Export }; /// - CiteItem() : forceUpperCase(false), Starred(false), + CiteItem() : forceUpperCase(false), Starred(false), isQualified(false), context(CiteItem::Everywhere), textAfter(docstring()), textBefore(docstring()), max_size(128), max_key_size(128), richtext(false) {} @@ -75,12 +77,24 @@ public: bool forceUpperCase; /// is starred version (full author list by default) bool Starred; + /// is a real qualified list + bool isQualified; /// where this to be displayed? CiteItem::CiteContext context; /// text after the citation docstring textAfter; /// text before the citation docstring textBefore; + /// + typedef std::vector> QualifiedList; + /// Qualified lists's pre texts + QualifiedList pretexts; + /// + QualifiedList getPretexts() const { return pretexts; } + /// Qualified lists's post texts + QualifiedList posttexts; + /// + QualifiedList getPosttexts() const { return posttexts; } /// the maximum display size as a label size_t max_size; /// the maximum size of the processed keys