diff options
Diffstat (limited to 'src/study/StudyFileReader.h')
-rw-r--r-- | src/study/StudyFileReader.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/study/StudyFileReader.h b/src/study/StudyFileReader.h new file mode 100644 index 0000000..2466fe3 --- /dev/null +++ b/src/study/StudyFileReader.h @@ -0,0 +1,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 |