1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
/***************************************************************************
* Copyright (C) 2004-2006 by Thomas Fischer *
* [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef BIBTEXFILE_H
#define BIBTEXFILE_H
#include <tqobject.h>
#include <tqvaluelist.h>
#include "entryfield.h"
class TQDir;
class TQString;
class TQChar;
class TQStringList;
class TQWaitCondition;
class TQProcess;
class TQIODevice;
namespace BibTeX
{
class Element;
class Entry;
class String;
class FileExporter;
static const TQString Months[] =
{
TQString( "January" ), TQString( "February" ), TQString( "March" ), TQString( "April" ), TQString( "May" ), TQString( "June" ), TQString( "July" ), TQString( "August" ), TQString( "September" ), TQString( "October" ), TQString( "November" ), TQString( "December" )
};
static const TQString MonthsTriple[] =
{
TQString( "jan" ), TQString( "feb" ), TQString( "mar" ), TQString( "apr" ), TQString( "may" ), TQString( "jun" ), TQString( "jul" ), TQString( "aug" ), TQString( "sep" ), TQString( "oct" ), TQString( "nov" ), TQString( "dec" )
};
class File : public TQObject
{
Q_OBJECT
friend class FileExporterXML;
friend class FileExporterBibTeX;
friend class FileExporterRIS;
friend class FileExporter;
friend class FileParser;
public:
typedef TQValueList<Element*> ElementList;
enum FileFormat { formatUndefined = 0, formatBibTeX = 1, formatXML = 2, formatHTML = 3, formatPDF = 4, formatPS = 5, formatRTF = 6, formatRIS = 7, formatEndNote = 8, formatISI = 9, formatDocBook5 = 10, formatMODS = 11, formatWordBib = 12, formatAds = 13, formatEndNoteXML = 14 };
enum Encoding {encImplicit = 0, encLaTeX = 1, encUTF8 = 2};
enum StringProtection { spNone, spParanthesis, spQuote, spBoth };
File( );
~File();
unsigned int count() const;
Element* at( const unsigned int index );
void append( const File *other, const Element *after = NULL );
void appendElement( Element *element, const Element *after = NULL );
void deleteElement( Element *element );
static Element* cloneElement( Element *element );
Element *containsKey( const TQString &key );
const Element *containsKeyConst( const TQString &key ) const;
TQStringList allKeys();
TQString text();
ElementList::iterator begin();
ElementList::iterator end();
ElementList::const_iterator constBegin() const;
ElementList::const_iterator constEnd() const;
TQStringList getAllValuesAsStringList( const EntryField::FieldType fieldType ) const;
TQMap<TQString, int> getAllValuesAsStringListWithCount( const EntryField::FieldType fieldType ) const;
void replaceValue( const TQString& oldText, const TQString& newText, const EntryField::FieldType fieldType );
BibTeX::Entry *completeReferencedFieldsConst( const BibTeX::Entry *entry ) const;
void completeReferencedFields( BibTeX::Entry *entry ) const;
TQString fileName;
protected:
ElementList elements;
private:
void clearElements();
};
}
#endif
|