X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FAuthor.h;h=798cfd80433499f236c2462645ab42e33cbc705e;hb=fd5adacef25eb40f813dedd961920c353448213a;hp=dea4c10b3419beb102f3679f26d3f217a821331e;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=features.git diff --git a/src/Author.h b/src/Author.h index dea4c10b34..798cfd8043 100644 --- a/src/Author.h +++ b/src/Author.h @@ -14,56 +14,82 @@ #include "support/docstring.h" -#include -#include +#include namespace lyx { - class Author { public: - Author() {} - - Author(docstring const & name, docstring const & email) - : name_(name), email_(email) {} - - docstring const name() const { - return name_; - } - - docstring const email() const { - return email_; - } - + /// + Author() : used_(false), buffer_id_(0) {} + /// + Author(docstring const & name, docstring const & email, + docstring const & initials); + /// For when the \author line is missing (#9854) + Author(int buffer_id); + /// + docstring name() const { return name_; } + /// + docstring email() const { return email_; } + /// + docstring initials() const { return initials_; } + /// + docstring nameAndEmail() const; + /// + int bufferId() const { return buffer_id_; } + /// + void setBufferId(int buffer_id) const { buffer_id_ = buffer_id; } + /// + void setUsed(bool u) const { used_ = u; } + /// + bool used() const { return used_; } + /// Was the author line not missing? + bool valid() const; + /// friend std::istream & operator>>(std::istream & os, Author & a); + /// + friend std::ostream & operator<<(std::ostream & os, Author const & a); private: + /// The author's name docstring name_; - + /// The author's email address docstring email_; + /// The author's initials + docstring initials_; + /// + mutable bool used_; + /// The id of the author in the lyx-file + mutable int buffer_id_; }; class AuthorList { public: + /// AuthorList(); - + /// int record(Author const & a); - + /// void record(int id, Author const & a); - + /// + void recordCurrentAuthor(Author const & a); + /// Author const & get(int id) const; - - typedef std::map Authors; - + /// + void sort(); + /// + typedef std::vector Authors; + /// Authors::const_iterator begin() const; - + /// Authors::const_iterator end() const; - + /// + friend + std::ostream & operator<<(std::ostream & os, AuthorList const & a); private: - int last_id_; - + /// Authors authors_; };