From d24f813f3f2a05c112e803e4256b53535895fc98 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Wed, 14 Jul 2021 11:49:10 +1200 Subject: Initial mirror commit --- src/dictionary/Card.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/dictionary/Card.h (limited to 'src/dictionary/Card.h') diff --git a/src/dictionary/Card.h b/src/dictionary/Card.h new file mode 100644 index 0000000..bd822e7 --- /dev/null +++ b/src/dictionary/Card.h @@ -0,0 +1,50 @@ +#ifndef CARD_H +#define CARD_H + +#include + +#include "../study/StudyRecord.h" + +class Dictionary; +class DicRecord; +class ICardPack; + +class Card: public QObject +{ +Q_OBJECT + +public: + Card(const ICardPack* cardPack, QString qst = ""): + cardPack(cardPack), question(qst) {} + + bool operator==( const Card& another ) const; + QString getName() const; + const ICardPack* getCardPack() const { return cardPack; } + QString getQuestion() const { return question; } + QStringList getAnswers(); + QList getSourceRecords(); + StudyRecord getStudyRecord() const; + bool isScheduledAndReviewed() const; + +private: + void generateAnswers(); + void clearAnswers(); + QMultiHash getAnswerElements(); + void generateAnswersFromElements(const QMultiHash& answerElements); + QStringList getAnswerElementsForField(const QMultiHash& answerElements, + const QString& fieldName) const; + +private slots: + void dropAnswers(); + +signals: + void answersChanged() const; + +private: + const ICardPack* cardPack; + QString question; + QStringList answers; + QList sourceRecords; +}; + +#endif -- cgit