~ubuntu-branches/ubuntu/wily/kbibtex/wily

« back to all changes in this revision

Viewing changes to src/entry.h

  • Committer: Package Import Robot
  • Author(s): Michael Hanke
  • Date: 2011-07-18 09:29:48 UTC
  • mfrom: (1.1.6) (2.1.5 sid)
  • Revision ID: package-import@ubuntu.com-20110718092948-ksxjmg7kdfamolmg
Tags: 0.3-1
* First upstream release for KDE4 (Closes: #634255). A number of search
  engines are still missing, in comparison to the 0.2 series.
* Bumped Standards-Version to 3.9.2, no changes necessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
*   Copyright (C) 2004-2006 by Thomas Fischer                             *
3
 
*   fischer@unix-ag.uni-kl.de                                             *
4
 
*                                                                         *
5
 
*   This program is free software; you can redistribute it and/or modify  *
6
 
*   it under the terms of the GNU General Public License as published by  *
7
 
*   the Free Software Foundation; either version 2 of the License, or     *
8
 
*   (at your option) any later version.                                   *
9
 
*                                                                         *
10
 
*   This program is distributed in the hope that it will be useful,       *
11
 
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12
 
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13
 
*   GNU General Public License for more details.                          *
14
 
*                                                                         *
15
 
*   You should have received a copy of the GNU General Public License     *
16
 
*   along with this program; if not, write to the                         *
17
 
*   Free Software Foundation, Inc.,                                       *
18
 
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 
***************************************************************************/
20
 
#ifndef BIBTEXBIBTEXENTRY_H
21
 
#define BIBTEXBIBTEXENTRY_H
22
 
 
23
 
#include <qvaluelist.h>
24
 
#include <qstringlist.h>
25
 
 
26
 
#include <element.h>
27
 
#include <entryfield.h>
28
 
 
29
 
class QString;
30
 
class QStringList;
31
 
 
32
 
namespace BibTeX
33
 
{
34
 
 
35
 
    class Entry : public Element
36
 
    {
37
 
    public:
38
 
        typedef QValueList<BibTeX::EntryField*> EntryFields;
39
 
 
40
 
        enum EntryType {etArticle, etBook, etBooklet, etCollection, etElectronic, etInBook, etInCollection, etInProceedings, etManual, etMastersThesis, etMisc, etPhDThesis, etProceedings, etTechReport, etUnpublished, etUnknown};
41
 
 
42
 
        enum FieldRequireStatus {frsRequired, frsOptional, frsIgnored};
43
 
 
44
 
        enum MergeSemantics {msAddNew, msForceAdding};
45
 
 
46
 
        Entry( );
47
 
        Entry( const EntryType entryType, const QString &id );
48
 
        Entry( const QString& entryTypeString, const QString& id );
49
 
        Entry( const Entry *other );
50
 
        virtual ~Entry();
51
 
        Element* clone();
52
 
        bool equals( const Entry &other );
53
 
        QString text() const;
54
 
 
55
 
        void setEntryType( const EntryType elementType );
56
 
        void setEntryTypeString( const QString& elementTypeString );
57
 
        EntryType entryType() const;
58
 
        QString entryTypeString() const;
59
 
        void setId( const QString& id );
60
 
        QString id() const;
61
 
 
62
 
        bool containsPattern( const QString& pattern, EntryField::FieldType fieldType = EntryField::ftUnknown, BibTeX::Element::FilterType filterType = BibTeX::Element::ftExact, bool caseSensitive = FALSE ) const;
63
 
        QStringList urls() const;
64
 
 
65
 
        bool addField( EntryField *field );
66
 
        BibTeX::EntryField* getField( const EntryField::FieldType fieldType ) const;
67
 
        BibTeX::EntryField* getField( const QString& fieldName ) const;
68
 
        bool deleteField( const BibTeX::EntryField::FieldType fieldType );
69
 
        bool deleteField( const QString &fieldName );
70
 
 
71
 
        EntryFields::const_iterator begin() const;
72
 
        EntryFields::const_iterator end() const;
73
 
        int getFieldCount() const;
74
 
        void clearFields();
75
 
 
76
 
        void copyFrom( const BibTeX::Entry *other );
77
 
        void merge( BibTeX::Entry *other, MergeSemantics mergeSemantics );
78
 
 
79
 
        static QString entryTypeToString( const EntryType entryType );
80
 
        static EntryType entryTypeFromString( const QString &entryTypeString );
81
 
        static Entry::FieldRequireStatus getRequireStatus( Entry::EntryType entryType, EntryField::FieldType fieldType );
82
 
 
83
 
    private:
84
 
        EntryType m_entryType;
85
 
        QString m_entryTypeString;
86
 
        QString m_id;
87
 
        EntryFields m_fields;
88
 
    };
89
 
 
90
 
}
91
 
 
92
 
#endif