summaryrefslogtreecommitdiff
path: root/src/study/StudyFileReader.h
blob: 2466fe33d7526faf0a16716978a6653e77de71b5 (plain)
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
#ifndef STUDYFILEREADER_H
#define STUDYFILEREADER_H

#include <QXmlStreamReader>
#include <QList>
#include <QString>

#include "StudySettings.h"
#include "StudyRecord.h"

class Dictionary;
class CardPack;
class DicRecord;

class StudyFileReader : public QXmlStreamReader
{
public:
    StudyFileReader( Dictionary* aDict );
    bool read( QIODevice* aDevice );

private:
    static const QString MinSupportedStudyVersion;

private:
    void readStudy();
    void readUnknownElement();
    void readStudyCurrentVersion();
    void readPack();
    void readC();
    void readR();
    void fixupIncorrectGradeIn1_4(StudyRecord& study);

private:
    static bool equalDouble(double a, double b);

private:
    Dictionary* m_dict;
    QString m_studyVersion;
    CardPack* m_cardPack;
    QString m_cardId;
    StudySettings* settings;
};

#endif // STUDYFILEREADER_H