~ubuntu-branches/ubuntu/raring/kbibtex/raring

« back to all changes in this revision

Viewing changes to src/entryfield.cpp

  • 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-2009 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
 
#include "entryfield.h"
21
 
 
22
 
namespace BibTeX
23
 
{
24
 
 
25
 
    EntryField::EntryField( FieldType fieldType ) : m_fieldType( fieldType )
26
 
    {
27
 
        m_fieldTypeName = fieldTypeToString( m_fieldType );
28
 
        m_value = new Value();
29
 
    }
30
 
 
31
 
    EntryField::EntryField( const QString &fieldTypeName ) : m_fieldTypeName( fieldTypeName )
32
 
    {
33
 
        m_fieldType = fieldTypeFromString( m_fieldTypeName );
34
 
        m_value = new Value();
35
 
    }
36
 
 
37
 
    EntryField::EntryField( BibTeX::EntryField *other ) : m_fieldType( other->m_fieldType ), m_fieldTypeName( other->m_fieldTypeName ), m_value( NULL )
38
 
    {
39
 
        setValue( other->m_value );
40
 
    }
41
 
 
42
 
    EntryField::~EntryField()
43
 
    {
44
 
        delete m_value;
45
 
    }
46
 
 
47
 
    QString EntryField::fieldTypeName() const
48
 
    {
49
 
        return m_fieldTypeName;
50
 
    }
51
 
 
52
 
    void EntryField::setFieldType( FieldType fieldType, const QString& fieldTypeName )
53
 
    {
54
 
        m_fieldType = fieldType;
55
 
        m_fieldTypeName = fieldTypeName;
56
 
    }
57
 
 
58
 
    EntryField::FieldType EntryField::fieldType() const
59
 
    {
60
 
        return m_fieldType;
61
 
    }
62
 
 
63
 
    QString EntryField::fieldTypeToString( const FieldType fieldType )
64
 
    {
65
 
        switch ( fieldType )
66
 
        {
67
 
        case ftAbstract:
68
 
            return QString( "abstract" );
69
 
        case ftAddress:
70
 
            return QString( "address" );
71
 
        case ftAnnote:
72
 
            return QString( "annote" );
73
 
        case ftAuthor:
74
 
            return QString( "author" );
75
 
        case ftBookTitle:
76
 
            return QString( "booktitle" );
77
 
        case ftChapter:
78
 
            return QString( "chapter" );
79
 
        case ftCrossRef:
80
 
            return QString( "crossref" );
81
 
        case ftDoi:
82
 
            return QString( "doi" );
83
 
        case ftEdition:
84
 
            return QString( "edition" );
85
 
        case ftEditor:
86
 
            return QString( "editor" );
87
 
        case ftHowPublished:
88
 
            return QString( "howpublished" );
89
 
        case ftInstitution:
90
 
            return QString( "institution" );
91
 
        case ftISBN:
92
 
            return QString( "isbn" );
93
 
        case ftISSN:
94
 
            return QString( "issn" );
95
 
        case ftJournal:
96
 
            return QString( "journal" );
97
 
        case ftKey:
98
 
            return QString( "key" );
99
 
        case ftKeywords:
100
 
            return QString( "keywords" );
101
 
        case ftLocalFile:
102
 
            return QString( "localfile" );
103
 
        case ftLocation:
104
 
            return QString( "location" );
105
 
        case ftMonth:
106
 
            return QString( "month" );
107
 
        case ftNote:
108
 
            return QString( "note" );
109
 
        case ftNumber:
110
 
            return QString( "number" );
111
 
        case ftOrganization:
112
 
            return QString( "organization" );
113
 
        case ftPages:
114
 
            return QString( "pages" );
115
 
        case ftPublisher:
116
 
            return QString( "publisher" );
117
 
        case ftSeries:
118
 
            return QString( "series" );
119
 
        case ftSchool:
120
 
            return QString( "school" );
121
 
        case ftTitle:
122
 
            return QString( "title" );
123
 
        case ftType:
124
 
            return QString( "type" );
125
 
        case ftURL:
126
 
            return QString( "url" );
127
 
        case ftVolume:
128
 
            return QString( "volume" );
129
 
        case ftYear:
130
 
            return QString( "year" );
131
 
        default:
132
 
            return QString( "unknown" );
133
 
        }
134
 
    }
135
 
 
136
 
    EntryField::FieldType EntryField::fieldTypeFromString( const QString & fieldTypeString )
137
 
    {
138
 
        QString fieldTypeStringLower = fieldTypeString.lower();
139
 
 
140
 
        if ( fieldTypeStringLower == "abstract" )
141
 
            return ftAbstract;
142
 
        else if ( fieldTypeStringLower == "address" )
143
 
            return ftAddress;
144
 
        else if ( fieldTypeStringLower == "annote" )
145
 
            return ftAnnote;
146
 
        else if ( fieldTypeStringLower == "author" )
147
 
            return ftAuthor;
148
 
        else if ( fieldTypeStringLower == "booktitle" )
149
 
            return ftBookTitle;
150
 
        else if ( fieldTypeStringLower == "chapter" )
151
 
            return ftChapter;
152
 
        else if ( fieldTypeStringLower == "crossref" )
153
 
            return ftCrossRef;
154
 
        else if ( fieldTypeStringLower == "doi" )
155
 
            return ftDoi;
156
 
        else if ( fieldTypeStringLower == "edition" )
157
 
            return ftEdition;
158
 
        else if ( fieldTypeStringLower == "editor" )
159
 
            return ftEditor;
160
 
        else if ( fieldTypeStringLower == "howpublished" )
161
 
            return ftHowPublished;
162
 
        else if ( fieldTypeStringLower == "institution" )
163
 
            return ftInstitution;
164
 
        else if ( fieldTypeStringLower == "isbn" )
165
 
            return ftISBN;
166
 
        else if ( fieldTypeStringLower == "issn" )
167
 
            return ftISSN;
168
 
        else if ( fieldTypeStringLower == "journal" )
169
 
            return ftJournal;
170
 
        else if ( fieldTypeStringLower == "key" )
171
 
            return ftKey;
172
 
        else if ( fieldTypeStringLower == "keywords" )
173
 
            return ftKeywords;
174
 
        else if ( fieldTypeStringLower == "localfile" )
175
 
            return ftLocalFile;
176
 
        else if ( fieldTypeStringLower == "location" )
177
 
            return ftLocation;
178
 
        else if ( fieldTypeStringLower == "month" )
179
 
            return ftMonth;
180
 
        else if ( fieldTypeStringLower == "note" )
181
 
            return ftNote;
182
 
        else if ( fieldTypeStringLower == "number" )
183
 
            return ftNumber;
184
 
        else if ( fieldTypeStringLower == "organization" )
185
 
            return ftOrganization;
186
 
        else if ( fieldTypeStringLower == "pages" )
187
 
            return ftPages;
188
 
        else if ( fieldTypeStringLower == "publisher" )
189
 
            return ftPublisher;
190
 
        else if ( fieldTypeStringLower == "series" )
191
 
            return ftSeries;
192
 
        else if ( fieldTypeStringLower == "school" )
193
 
            return ftSchool;
194
 
        else if ( fieldTypeStringLower == "title" )
195
 
            return ftTitle;
196
 
        else if ( fieldTypeStringLower == "type" )
197
 
            return ftType;
198
 
        else if ( fieldTypeStringLower == "url" )
199
 
            return ftURL;
200
 
        else if ( fieldTypeStringLower == "volume" )
201
 
            return ftVolume;
202
 
        else if ( fieldTypeStringLower == "year" )
203
 
            return ftYear;
204
 
        else
205
 
            return ftUnknown;
206
 
    }
207
 
 
208
 
    Value *EntryField::value()
209
 
    {
210
 
        return m_value;
211
 
    }
212
 
 
213
 
    void EntryField::setValue( const Value *value )
214
 
    {
215
 
        if ( value != m_value )
216
 
        {
217
 
            delete m_value;
218
 
 
219
 
            if ( value != NULL )
220
 
            {
221
 
                m_value = new Value( value );
222
 
            }
223
 
            else
224
 
                m_value = new Value();
225
 
        }
226
 
    }
227
 
}