diff options
Diffstat (limited to 'src/collections/bibtexcollection.h')
-rw-r--r-- | src/collections/bibtexcollection.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/collections/bibtexcollection.h b/src/collections/bibtexcollection.h new file mode 100644 index 0000000..628cc37 --- /dev/null +++ b/src/collections/bibtexcollection.h @@ -0,0 +1,70 @@ +/*************************************************************************** + copyright : (C) 2003-2006 by Robby Stephenson + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef BIBTEXCOLLECTION_H +#define BIBTEXCOLLECTION_H + +#include "../collection.h" + +namespace Tellico { + namespace Data { + +/** + * A collection specifically for bibliographies, in Bibtex format. + * + * It has the following standard attributes: + * @li Title + * + * @author Robby Stephenson + */ +class BibtexCollection : public Collection { +Q_OBJECT + +public: + /** + * The constructor + * + * @param addFields A boolean indicating whether the default attributes should be added + * @param title The title of the collection + */ + BibtexCollection(bool addFields, const QString& title = QString::null); + /** + */ + virtual ~BibtexCollection() {} + + virtual Type type() const { return Bibtex; } + virtual bool addField(FieldPtr field); + virtual bool modifyField(FieldPtr field); + virtual bool deleteField(FieldPtr field, bool force=false); + + FieldPtr fieldByBibtexName(const QString& name) const; + const QString& preamble() const { return m_preamble; } + void setPreamble(const QString& preamble) { m_preamble = preamble; } + const StringMap& macroList() const { return m_macros; } + void setMacroList(StringMap map) { m_macros = map; } + void addMacro(const QString& key, const QString& value) { m_macros.insert(key, value); } + + virtual int sameEntry(Data::EntryPtr entry1, Data::EntryPtr entry2) const; + + static FieldVec defaultFields(); + static CollPtr convertBookCollection(CollPtr coll); + +private: + QDict<Field> m_bibtexFieldDict; + QString m_preamble; + StringMap m_macros; +}; + + } // end namespace +} // end namespace +#endif |