20
20
#ifndef BIBTEXVALUE_H
21
21
#define BIBTEXVALUE_H
24
23
#include <qvaluelist.h>
29
class ValueTextInterface
31
ValueItem( const QString& text, bool isStringKey );
32
ValueItem( ValueItem *other );
35
bool isStringKey() const;
36
void setText( const QString &text );
37
void setIsStringKey( bool isStringKey );
39
bool containsPattern( const QString & pattern, bool caseSensitive ) const;
32
ValueTextInterface( const ValueTextInterface* other );
33
ValueTextInterface( const QString& text );
34
virtual ~ValueTextInterface() {};
36
virtual void setText( const QString& text );
37
virtual QString text() const;
38
QString simplifiedText() const;
39
virtual void replace( const QString &before, const QString &after );
40
virtual bool containsPattern( const QString &pattern, bool caseSensitive );
50
Value( const Value* other );
53
virtual void add( ValueItem* valueItem );
55
BibTeX::ValueItem *first();
59
virtual bool containsPattern( const QString & pattern, bool caseSensitive ) const;
61
static bool checkIsStringKey( const QString &text );
63
QValueList<ValueItem*>::const_iterator begin() const;
64
QValueList<ValueItem*>::const_iterator end() const;
66
QString plainString() const;
67
QString debugString() const;
46
class ValueItem: public ValueTextInterface
49
ValueItem( const QString& text );
51
virtual ValueItem *clone()
57
class Keyword: public ValueTextInterface
60
Keyword( Keyword *other );
61
Keyword( const QString& text );
66
class KeywordContainer: public ValueItem
70
KeywordContainer( const QString& text );
71
KeywordContainer( KeywordContainer *other );
72
KeywordContainer( const QStringList& list );
75
void setList( const QStringList& list );
76
void append( const QString& text );
77
void remove( const QString& text );
78
void setText( const QString& text );
80
void replace( const QString &before, const QString &after );
82
QValueList<Keyword*> keywords;
85
class Person: public ValueTextInterface
88
Person( const QString& text, bool firstNameFirst = FALSE );
89
Person( const QString& firstName, const QString& lastName, bool firstNameFirst = FALSE );
92
void setText( const QString& text );
70
QValueList<ValueItem*> m_valueItems;
76
Person( const QString& text );
77
Person( const QString& firstName, const QString& lastName );
78
Person( const Person* other );
80
void setText( const QString &text );
82
QString lastName() const;
83
QString firstName() const;
85
bool containsPattern( const QString & pattern, bool caseSensitive ) const;
88
100
QString m_lastName;
91
void parseText( const QString& text );
94
class ValuePersons: public Value
98
ValuePersons( const BibTeX::ValuePersons* other );
101
void add ( ValueItem* valueItem );
103
bool containsPattern( const QString & pattern, bool caseSensitive ) const;
105
QValueList<Person*> persons() const;
108
QValueList<Person*> m_persons;
101
bool m_firstNameFirst;
103
bool splitName( const QString& text, QStringList& segments );
106
class PersonContainer: public ValueItem
109
PersonContainer( bool firstNameFirst = FALSE );
110
PersonContainer( const QString& text, bool firstNameFirst = FALSE );
113
void setText( const QString& text );
114
QString text() const;
115
void replace( const QString &before, const QString &after );
117
QValueList<Person*> persons;
120
bool m_firstNameFirst;
123
class MacroKey: public ValueItem
127
bool isValidInternal();
130
MacroKey( const QString& text );
134
void setText( const QString& text );
138
class PlainText: public ValueItem
141
PlainText( const QString& text );
146
class Value: public ValueTextInterface
150
Value( const Value *other );
151
Value( const QString& text );
153
void setText( const QString& text );
154
QString text() const;
155
void replace( const QString &before, const QString &after );
157
QValueList<ValueItem*> items;