1
/***************************************************************************
2
* Copyright (C) 2004-2009 by Thomas Fischer *
3
* fischer@unix-ag.uni-kl.de *
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. *
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. *
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
#include "entryfield.h"
25
EntryField::EntryField( FieldType fieldType ) : m_fieldType( fieldType )
27
m_fieldTypeName = fieldTypeToString( m_fieldType );
28
m_value = new Value();
31
EntryField::EntryField( const QString &fieldTypeName ) : m_fieldTypeName( fieldTypeName )
33
m_fieldType = fieldTypeFromString( m_fieldTypeName );
34
m_value = new Value();
37
EntryField::EntryField( BibTeX::EntryField *other ) : m_fieldType( other->m_fieldType ), m_fieldTypeName( other->m_fieldTypeName ), m_value( NULL )
39
setValue( other->m_value );
42
EntryField::~EntryField()
47
QString EntryField::fieldTypeName() const
49
return m_fieldTypeName;
52
void EntryField::setFieldType( FieldType fieldType, const QString& fieldTypeName )
54
m_fieldType = fieldType;
55
m_fieldTypeName = fieldTypeName;
58
EntryField::FieldType EntryField::fieldType() const
63
QString EntryField::fieldTypeToString( const FieldType fieldType )
68
return QString( "abstract" );
70
return QString( "address" );
72
return QString( "annote" );
74
return QString( "author" );
76
return QString( "booktitle" );
78
return QString( "chapter" );
80
return QString( "crossref" );
82
return QString( "doi" );
84
return QString( "edition" );
86
return QString( "editor" );
88
return QString( "howpublished" );
90
return QString( "institution" );
92
return QString( "isbn" );
94
return QString( "issn" );
96
return QString( "journal" );
98
return QString( "key" );
100
return QString( "keywords" );
102
return QString( "localfile" );
104
return QString( "location" );
106
return QString( "month" );
108
return QString( "note" );
110
return QString( "number" );
112
return QString( "organization" );
114
return QString( "pages" );
116
return QString( "publisher" );
118
return QString( "series" );
120
return QString( "school" );
122
return QString( "title" );
124
return QString( "type" );
126
return QString( "url" );
128
return QString( "volume" );
130
return QString( "year" );
132
return QString( "unknown" );
136
EntryField::FieldType EntryField::fieldTypeFromString( const QString & fieldTypeString )
138
QString fieldTypeStringLower = fieldTypeString.lower();
140
if ( fieldTypeStringLower == "abstract" )
142
else if ( fieldTypeStringLower == "address" )
144
else if ( fieldTypeStringLower == "annote" )
146
else if ( fieldTypeStringLower == "author" )
148
else if ( fieldTypeStringLower == "booktitle" )
150
else if ( fieldTypeStringLower == "chapter" )
152
else if ( fieldTypeStringLower == "crossref" )
154
else if ( fieldTypeStringLower == "doi" )
156
else if ( fieldTypeStringLower == "edition" )
158
else if ( fieldTypeStringLower == "editor" )
160
else if ( fieldTypeStringLower == "howpublished" )
161
return ftHowPublished;
162
else if ( fieldTypeStringLower == "institution" )
163
return ftInstitution;
164
else if ( fieldTypeStringLower == "isbn" )
166
else if ( fieldTypeStringLower == "issn" )
168
else if ( fieldTypeStringLower == "journal" )
170
else if ( fieldTypeStringLower == "key" )
172
else if ( fieldTypeStringLower == "keywords" )
174
else if ( fieldTypeStringLower == "localfile" )
176
else if ( fieldTypeStringLower == "location" )
178
else if ( fieldTypeStringLower == "month" )
180
else if ( fieldTypeStringLower == "note" )
182
else if ( fieldTypeStringLower == "number" )
184
else if ( fieldTypeStringLower == "organization" )
185
return ftOrganization;
186
else if ( fieldTypeStringLower == "pages" )
188
else if ( fieldTypeStringLower == "publisher" )
190
else if ( fieldTypeStringLower == "series" )
192
else if ( fieldTypeStringLower == "school" )
194
else if ( fieldTypeStringLower == "title" )
196
else if ( fieldTypeStringLower == "type" )
198
else if ( fieldTypeStringLower == "url" )
200
else if ( fieldTypeStringLower == "volume" )
202
else if ( fieldTypeStringLower == "year" )
208
Value *EntryField::value()
213
void EntryField::setValue( const Value *value )
215
if ( value != m_value )
221
m_value = new Value( value );
224
m_value = new Value();