X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBiblioInfo.h;h=e0f8f645887fc94ab62fd436f35e4fffeb500f1e;hb=0d75c1117f278efc59c2e5a108f60efa9e017bc4;hp=f0a9b1180e5916f69e447b9865ffa39c9a06ffa7;hpb=d8bf83a85a6fd75d9443ab57866c9680171177a6;p=lyx.git diff --git a/src/BiblioInfo.h b/src/BiblioInfo.h index f0a9b1180e..e0f8f64588 100644 --- a/src/BiblioInfo.h +++ b/src/BiblioInfo.h @@ -59,8 +59,11 @@ public: docstring const getAbbreviatedAuthor() const; /// docstring const getYear() const; + /// + docstring const getXRef() const; /// \return formatted BibTeX data suitable for framing. - docstring const getInfo() const; + /// \param pointer to crossref information + docstring const & getInfo(BibTeXInfo const * const xref = 0) const; /// int count(docstring const & f) const { return bimap_.count(f); } /// @@ -82,12 +85,27 @@ public: /// void setAllData(docstring const & d) { all_data_ = d; } /// + void label(docstring const & d) { label_= d; } + /// + docstring const & label() const { return label_; } + /// + docstring const & key() const { return bib_key_; } + /// docstring entryType() const { return entry_type_; } private: + /// like operator[], except, if the field is empty, it will attempt + /// to get the data from xref BibTeXInfo object, which would normally + /// be the one referenced in the crossref field. + docstring getValueForKey(std::string const & key, + BibTeXInfo const * const xref = 0) const; /// true if from BibTeX; false if from bibliography environment bool is_bibtex_; /// the BibTeX key for this entry docstring bib_key_; + /// the label that will appear in citations + /// this is easily set from bibliography environments, but has + /// to be calculated for entries we get from BibTeX + docstring label_; /// a single string containing all BibTeX data associated with this key docstring all_data_; /// the BibTeX entry type (article, book, incollection, ...) @@ -114,9 +132,12 @@ public: /// \return the short form of an authorlist docstring const getAbbreviatedAuthor(docstring const & key) const; /// \return the year from the bibtex data record + /// Note that this will get the year from the crossref if it's + /// not present in the record itself docstring const getYear(docstring const & key) const; /// \return formatted BibTeX data associated with a given key. /// Empty if no info exists. + /// Note that this will retrieve data from the crossref as needed. docstring const getInfo(docstring const & key) const; /** * "Translates" the available Citation Styles into strings for a given key,