Changeset View
Changeset View
Standalone View
Standalone View
src/statistics/statisticsmodel.h
Show All 12 Lines | |||||
13 | * * | 13 | * * | ||
14 | ***************************************************************************/ | 14 | ***************************************************************************/ | ||
15 | 15 | | |||
16 | #ifndef STATISTICSMODEL_H | 16 | #ifndef STATISTICSMODEL_H | ||
17 | #define STATISTICSMODEL_H | 17 | #define STATISTICSMODEL_H | ||
18 | 18 | | |||
19 | #include "containermodel.h" | 19 | #include "containermodel.h" | ||
20 | 20 | | |||
21 | #include "prefs.h" | ||||
22 | #include "documentsettings.h" | ||||
23 | | ||||
21 | 24 | | |||
22 | class StatisticsModel : public ContainerModel | 25 | class StatisticsModel : public ContainerModel | ||
23 | { | 26 | { | ||
24 | Q_OBJECT | 27 | Q_OBJECT | ||
25 | 28 | | |||
26 | public: | 29 | public: | ||
27 | enum GradeRoles { | 30 | enum GradeRoles { | ||
28 | TotalPercent = Qt::UserRole, | 31 | TotalPercent = Qt::UserRole, | ||
29 | TotalCount, | 32 | TotalCount, | ||
30 | Grade0, | 33 | Grade0, | ||
31 | Grade1, | 34 | Grade1, | ||
32 | Grade2, | 35 | Grade2, | ||
33 | Grade3, | 36 | Grade3, | ||
34 | Grade4, | 37 | Grade4, | ||
35 | Grade5, | 38 | Grade5, | ||
36 | Grade6, | 39 | Grade6, | ||
37 | Grade7, | 40 | Grade7, | ||
38 | Container | 41 | Container, | ||
42 | ActiveConjugationTenses | ||||
39 | }; | 43 | }; | ||
40 | 44 | | |||
41 | explicit StatisticsModel(QObject *parent = 0); | 45 | explicit StatisticsModel(QObject *parent = 0); | ||
42 | 46 | | |||
43 | QVariant headerData(int section, Qt::Orientation orientation, | 47 | QVariant headerData(int section, Qt::Orientation orientation, | ||
44 | int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; | 48 | int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; | ||
45 | QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; | 49 | QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; | ||
46 | Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE; | 50 | Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE; | ||
47 | int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; | 51 | int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; | ||
48 | 52 | | |||
49 | /** Indicate supported drag actions | 53 | /** Indicate supported drag actions | ||
50 | @return enum of actions supported **/ | 54 | @return enum of actions supported **/ | ||
51 | Qt::DropActions supportedDragActions() const Q_DECL_OVERRIDE; | 55 | Qt::DropActions supportedDragActions() const Q_DECL_OVERRIDE; | ||
56 | | ||||
57 | void updateDocumentSettings(); | ||||
58 | | ||||
59 | public slots: | ||||
60 | virtual void setDocument(KEduVocDocument *doc) Q_DECL_OVERRIDE; | ||||
61 | | ||||
52 | protected: | 62 | protected: | ||
53 | KEduVocContainer * rootContainer() const Q_DECL_OVERRIDE; | 63 | KEduVocContainer *rootContainer() const Q_DECL_OVERRIDE; | ||
64 | | ||||
65 | private: | ||||
66 | int averageGradeForPracticeMode(KEduVocContainer *container, int translation) const; | ||||
67 | int entryCountForPracticeMode(KEduVocContainer *container, int translation) const; | ||||
68 | int expressionsOfGradeForPracticeMode(KEduVocContainer *container, int translation, | ||||
69 | grade_t grade) const; | ||||
70 | void loadDocumentsSettings(); | ||||
71 | | ||||
72 | private: | ||||
73 | QList<QSharedPointer<DocumentSettings>> m_documentSettings; | ||||
54 | }; | 74 | }; | ||
55 | 75 | | |||
56 | // For index.data() | 76 | // For index.data() | ||
57 | Q_DECLARE_METATYPE(KEduVocContainer*) | 77 | Q_DECLARE_METATYPE(KEduVocContainer*) | ||
58 | 78 | | |||
59 | 79 | | |||
60 | #endif | 80 | #endif |