summaryrefslogtreecommitdiff
path: root/src/study/StudyFileReader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/study/StudyFileReader.h')
-rw-r--r--src/study/StudyFileReader.h44
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