Open-Typer
Open source typewriting tutor program
Loading...
Searching...
No Matches
ExerciseValidator Class Reference

The ExerciseValidator class provides methods for exercise validation to QML code. More...

#include "framework/validator/internal/ExerciseValidator.h"

Inheritance diagram for ExerciseValidator:
Collaboration diagram for ExerciseValidator:

Public Member Functions

QString exerciseText (void) override
 
void setExerciseText (QString text) override
 
QString inputText (void) override
 
void setInputText (QString text) override
 
Q_INVOKABLE void clearMistakes (void) override
 
Q_INVOKABLE void addMistake (MistakeRecord mistake) override
 
QList< MistakeRecordmistakes (void) override
 
void setMistakes (QList< MistakeRecord > mistakeList) override
 
Q_INVOKABLE void clearCharacters (void) override
 
Q_INVOKABLE void addCharacter (CharacterRecord character) override
 
QList< CharacterRecordcharacters (void) override
 
void setCharacters (QList< CharacterRecord > characterList) override
 
bool timed (void) override
 
void setTimed (bool value) override
 
qreal time (void) override
 
void setTime (qreal seconds) override
 
Q_INVOKABLE void validate (void) override
 
Q_INVOKABLE void validate (int grossHits, QStringList errorWords) override
 
Q_INVOKABLE int grossHits (void) override
 
Q_INVOKABLE int mistakeCount (void) override
 
Q_INVOKABLE QStringList errorWords (void) override
 
Q_INVOKABLE void generateMistakeText (bool correctMistakes) override
 
Q_INVOKABLE QString generatedInputText (void) override
 
Q_INVOKABLE QString generatedMistakeText (void) override
 
Q_INVOKABLE QString textWithMistakes (void) override
 

Properties

QString exerciseText
 
QString inputText
 
QList< MistakeRecordmistakes
 
QList< CharacterRecordcharacters
 
bool timed
 
qreal time
 

Private Member Functions

QList< MistakeRecordcompareLists (QList< QVariant > source, QList< QVariant > target, QVector< CharacterRecord > *recordedCharacters=nullptr, int *hits=nullptr, int *inputPos=nullptr)
 
QList< MistakeRecordcompareStrings (QString source, QString target, QVector< CharacterRecord > *recordedCharacters=nullptr, int *hits=nullptr, int *inputPos=nullptr)
 
QMap< int, MistakeRecordgenerateDiffList (QStringList *sourceWords, QStringList *targetWords, QList< int > *mergeList=nullptr)
 
QList< MistakeRecordfindMistakes (QString exerciseText, QString input, QVector< CharacterRecord > recordedCharacters, int *totalHits=nullptr, QStringList *errorWords=nullptr)
 
QList< MistakeRecordvalidateExercise (QString exerciseText, QString inputText, QVector< CharacterRecord > recordedCharacters, int *totalHits, int *mistakeCount, QStringList *errorWords=nullptr, bool timed=false, int timeSecs=0)
 
QString addMistakes (QString exerciseText, QList< MistakeRecord * > recordedMistakes)
 
QStringList splitWordsByPunct (QStringList source)
 

Private Attributes

QString m_exerciseText
 
QString m_inputText
 
QList< MistakeRecordm_mistakes
 
QList< CharacterRecordm_characters
 
bool m_timed = false
 
qreal m_time = 0
 
int m_grossHits = 0
 
int m_mistakeCount = 0
 
QStringList m_errorWords
 
QString m_generatedInputText
 
QString m_generatedMistakeText
 

Additional Inherited Members

- Signals inherited from IExerciseValidator
void validated ()
 
void exerciseTextChanged ()
 
void inputTextChanged ()
 
void mistakesChanged ()
 
void charactersChanged ()
 
void timedChanged ()
 
void timeChanged ()
 

Detailed Description

The ExerciseValidator class provides methods for exercise validation to QML code.

Member Function Documentation

◆ addCharacter()

void ExerciseValidator::addCharacter ( CharacterRecord  character)
overridevirtual

Adds a character.

Implements IExerciseValidator.

◆ addMistake()

void ExerciseValidator::addMistake ( MistakeRecord  mistake)
overridevirtual

Adds a mistake.

Implements IExerciseValidator.

◆ addMistakes()

QString ExerciseValidator::addMistakes ( QString  exerciseText,
QList< MistakeRecord * >  recordedMistakes 
)
private

Adds mistakes to an exercise with mistake correction enabled.

◆ characters()

QList< CharacterRecord > ExerciseValidator::characters ( void  )
overridevirtual

Implements IExerciseValidator.

◆ clearCharacters()

void ExerciseValidator::clearCharacters ( void  )
overridevirtual

Removes all characters.

Implements IExerciseValidator.

◆ clearMistakes()

void ExerciseValidator::clearMistakes ( void  )
overridevirtual

Removes all mistakes.

Implements IExerciseValidator.

◆ compareLists()

QList< MistakeRecord > ExerciseValidator::compareLists ( QList< QVariant >  source,
QList< QVariant >  target,
QVector< CharacterRecord > *  recordedCharacters = nullptr,
int *  hits = nullptr,
int *  inputPos = nullptr 
)
private

Compares 2 lists using longest common subsequence.

◆ compareStrings()

QList< MistakeRecord > ExerciseValidator::compareStrings ( QString  source,
QString  target,
QVector< CharacterRecord > *  recordedCharacters = nullptr,
int *  hits = nullptr,
int *  inputPos = nullptr 
)
private

Compares 2 strings using longest common subsequence.

◆ errorWords()

QStringList ExerciseValidator::errorWords ( void  )
overridevirtual

Returns list of error words.

Implements IExerciseValidator.

◆ exerciseText()

QString ExerciseValidator::exerciseText ( void  )
overridevirtual

Implements IExerciseValidator.

◆ findMistakes()

QList< MistakeRecord > ExerciseValidator::findMistakes ( QString  exerciseText,
QString  input,
QVector< CharacterRecord recordedCharacters,
int *  totalHits = nullptr,
QStringList *  errorWords = nullptr 
)
private

Compares input text with exercise text and finds mistakes.

◆ generateDiffList()

QMap< int, MistakeRecord > ExerciseValidator::generateDiffList ( QStringList *  sourceWords,
QStringList *  targetWords,
QList< int > *  mergeList = nullptr 
)
private

Recursively generates a diff list from source and target word list.

◆ generatedInputText()

QString ExerciseValidator::generatedInputText ( void  )
overridevirtual

Returns input text generated by generateMistakeText().

Implements IExerciseValidator.

◆ generatedMistakeText()

QString ExerciseValidator::generatedMistakeText ( void  )
overridevirtual

Returns mistake text generated by generateMistakeText().

Implements IExerciseValidator.

◆ generateMistakeText()

void ExerciseValidator::generateMistakeText ( bool  correctMistakes)
overridevirtual

Generates text with correct characters above mistakes.

Implements IExerciseValidator.

◆ grossHits()

int ExerciseValidator::grossHits ( void  )
overridevirtual

Returns number of gross hits.

Implements IExerciseValidator.

◆ inputText()

QString ExerciseValidator::inputText ( void  )
overridevirtual

Implements IExerciseValidator.

◆ mistakeCount()

int ExerciseValidator::mistakeCount ( void  )
overridevirtual

Returns number of mistakes.

Implements IExerciseValidator.

◆ mistakes()

QList< MistakeRecord > ExerciseValidator::mistakes ( void  )
overridevirtual

Implements IExerciseValidator.

◆ setCharacters()

void ExerciseValidator::setCharacters ( QList< CharacterRecord characterList)
overridevirtual

Implements IExerciseValidator.

◆ setExerciseText()

void ExerciseValidator::setExerciseText ( QString  text)
overridevirtual

Implements IExerciseValidator.

◆ setInputText()

void ExerciseValidator::setInputText ( QString  text)
overridevirtual

Implements IExerciseValidator.

◆ setMistakes()

void ExerciseValidator::setMistakes ( QList< MistakeRecord mistakeList)
overridevirtual

Implements IExerciseValidator.

◆ setTime()

void ExerciseValidator::setTime ( qreal  seconds)
overridevirtual

Implements IExerciseValidator.

◆ setTimed()

void ExerciseValidator::setTimed ( bool  value)
overridevirtual

Implements IExerciseValidator.

◆ splitWordsByPunct()

QStringList ExerciseValidator::splitWordsByPunct ( QStringList  source)
private

Splits each word by punctuation marks.

◆ textWithMistakes()

QString ExerciseValidator::textWithMistakes ( void  )
overridevirtual

Adds mistakes to the exercise text.

Implements IExerciseValidator.

◆ time()

qreal ExerciseValidator::time ( void  )
overridevirtual

Implements IExerciseValidator.

◆ timed()

bool ExerciseValidator::timed ( void  )
overridevirtual

Implements IExerciseValidator.

◆ validate() [1/2]

void ExerciseValidator::validate ( int  grossHits,
QStringList  errorWords 
)
overridevirtual

Sets a custom result without actually validating the exercise.

Implements IExerciseValidator.

◆ validate() [2/2]

void ExerciseValidator::validate ( void  )
overridevirtual

Validates the exercise and calculates the results (list of mistakes, number of hits, etc.).

Implements IExerciseValidator.

◆ validateExercise()

QList< MistakeRecord > ExerciseValidator::validateExercise ( QString  exerciseText,
QString  inputText,
QVector< CharacterRecord recordedCharacters,
int *  totalHits,
int *  mistakeCount,
QStringList *  errorWords = nullptr,
bool  timed = false,
int  timeSecs = 0 
)
private

Validates a typing test.

Property Documentation

◆ characters

QList< CharacterRecord > ExerciseValidator::characters
readwrite

List of characters.

◆ exerciseText

QString ExerciseValidator::exerciseText
readwrite

The exercise text.

◆ inputText

QString ExerciseValidator::inputText
readwrite

The input text.

◆ mistakes

QList< MistakeRecord > ExerciseValidator::mistakes
readwrite

List of mistakes.

◆ time

qreal ExerciseValidator::time
readwrite

Returns exercise time (in seconds).

◆ timed

bool ExerciseValidator::timed
readwrite

Set this to true if this is a timed exercise.


The documentation for this class was generated from the following files: