Compare commits

...

2 commits

Author SHA1 Message Date
Nicolas Mailloux
32e05489f4 FlashExam: bugfixes, again 2024-11-29 20:13:50 -05:00
Nicolas Mailloux
36c4693869 FlashExam: some new stuff 2024-11-29 16:45:46 -05:00
3 changed files with 152 additions and 70 deletions

View file

@ -18,16 +18,21 @@ flashExam::flashExam(QWidget *parent)
ui->revealBtn->setProperty("type", "borderless");
ui->nextBtn->setProperty("type", "borderless");
ui->backBtn->setProperty("type", "borderless");
ui->didNotKnowBtn->setProperty("type", "borderless");
ui->startBtn->setStyleSheet("padding: 20px; QPushButton[type='borderless']:pressed { background: black; color: white; border: none }");
ui->closeBtn->setStyleSheet("QPushButton[type='borderless']:pressed { background: black; color: white; border: none}");
ui->revealBtn->setStyleSheet("padding: 20px; QPushButton[type='borderless']:pressed { background: black; color: white; border: none}");
ui->nextBtn->setStyleSheet("padding: 20px; QPushButton[type='borderless']:pressed { background: black; color: white; border: none}");
ui->didNotKnowBtn->setStyleSheet("padding: 20px; QPushButton[type='borderless']:pressed { background: black; color: white; border: none}");
ui->backBtn->setStyleSheet("QPushButton[type='borderless']:pressed { background: black; color: white; border: none}");
ui->textBrowser->setStyleSheet("font-size: 12pt");
ui->closeBtn->setIcon(QIcon(":/resources/close.png"));
ui->backBtn->setIcon(QIcon(":/resources/arrow-left.png"));
ui->didNotKnowBtn->setIcon(QIcon(":/resources/close.png"));
ui->nextBtn->setIcon(QIcon(":/resources/check.png"));
ui->nonRedundantRandomizationCheckBox->setDisabled(true);
ui->randomizeCheckBox->click();
ui->randomizeCheckBox->setDisabled(true);
graphicsScene = new QGraphicsScene(this);
setupCardsList();
@ -46,6 +51,7 @@ void flashExam::on_closeBtn_clicked()
void flashExam::setupCardsList() {
QDir dir("/mnt/onboard/onboard/.flashexam");
ui->listWidget->clear();
ui->cardNumberLabel->show();
for (const QString &filename : dir.entryList(QDir::Files)) {
if(!filename.contains(".answers")) {
ui->listWidget->addItem(filename);
@ -80,6 +86,7 @@ void flashExam::initCardsList(QString cardsList, QString answersList) {
randomize = ui->randomizeCheckBox->isChecked();
nonRedundantRandomization = ui->nonRedundantRandomizationCheckBox->isChecked();
cardsAlreadyShown.clear();
cardsNotKnown.clear();
ui->nonRedundantRandomizationCheckBox->setChecked(false);
cardsTotal = cardsStringList.count() + 1;
displayCard(false);
@ -101,9 +108,11 @@ void flashExam::on_revealBtn_clicked()
}
else {
QString answerText = displayImage(answersStringList.at(currentCardNumber));
ui->textBrowser->setText(answerText);
ui->textBrowser->clear();
ui->textBrowser->setText("<i>" + answerText + "</i>");
answerShown = true;
ui->revealBtn->setText("Hide answer");
ui->continueWidget->show();
}
}
@ -114,6 +123,16 @@ void flashExam::on_nextBtn_clicked()
}
void flashExam::displayCard(bool existingCardNumber) {
if(nonRedundantRandomization) {
float cardsTotalFloat = cardsTotal * 1.0;
float cardsAlreadyShownNumber = cardsAlreadyShown.count() * 1.0;
float cardsNotKnownNumber = cardsNotKnown.count() * 1.0;
ui->cardNumberLabel->setText(QString::number(cardsAlreadyShownNumber / cardsTotalFloat * 100, 'f', 1) + "% done, " + QString::number(cardsNotKnownNumber / cardsTotalFloat * 100, 'f', 1) + "% forgotten");
}
else {
ui->cardNumberLabel->hide();
}
if(!existingCardNumber) {
if(randomize) {
while(true) {
@ -142,11 +161,13 @@ void flashExam::displayCard(bool existingCardNumber) {
}
}
QString cardText = displayImage(cardsStringList.at(currentCardNumber));
ui->cardNumberLabel->setText("Card " + QString::number(currentCardNumber + 1));
ui->textBrowser->clear();
ui->textBrowser->setText(cardText);
ui->revealBtn->setText("Show answer");
answerShown = false;
ui->continueWidget->hide();
}
QString flashExam::displayImage(QString cardText) {
@ -193,3 +214,10 @@ void flashExam::on_randomizeCheckBox_toggled(bool checked)
}
}
void flashExam::on_didNotKnowBtn_clicked()
{
cardsNotKnown.append(currentCardNumber);
on_nextBtn_clicked();
}

View file

@ -25,6 +25,7 @@ private:
bool randomize;
bool nonRedundantRandomization;
QList<int> cardsAlreadyShown;
QList<int> cardsNotKnown;
bool answerShown = false;
QStringList cardsStringList;
QStringList answersStringList;
@ -43,6 +44,7 @@ private slots:
void on_revealBtn_clicked();
void on_nextBtn_clicked();
void on_randomizeCheckBox_toggled(bool checked);
void on_didNotKnowBtn_clicked();
};
#endif // FLASHEXAM_H

View file

@ -93,17 +93,18 @@
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<family>U001</family>
</font>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="text">
<string>Select a cards list</string>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</widget>
</spacer>
</item>
<item row="0" column="4">
<widget class="QLabel" name="label">
@ -120,18 +121,17 @@
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<family>U001</family>
</font>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
<property name="text">
<string>Select a cards list</string>
</property>
</spacer>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="closeBtn">
@ -184,17 +184,53 @@
</property>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="3" column="0">
<widget class="QTextBrowser" name="textBrowser">
<item row="2" column="0">
<widget class="QGraphicsView" name="graphicsView">
<property name="lineWidth">
<number>0</number>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QStackedWidget" name="continueWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QWidget" name="page_3">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout_5">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="2" column="0">
<layout class="QGridLayout" name="gridLayout_6">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="didNotKnowBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="7" column="0">
<item row="0" column="1">
<widget class="QPushButton" name="nextBtn">
<property name="font">
<font>
@ -202,11 +238,13 @@
</font>
</property>
<property name="text">
<string>Next card</string>
<string/>
</property>
</widget>
</item>
<item row="6" column="0">
</layout>
</item>
<item row="3" column="0">
<widget class="Line" name="line_3">
<property name="frameShadow">
<enum>QFrame::Shadow::Plain</enum>
@ -216,6 +254,35 @@
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_4"/>
</widget>
</item>
<item row="7" column="0">
<widget class="QPushButton" name="revealBtn">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Show answer</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QTextBrowser" name="textBrowser">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_4">
<property name="bottomMargin">
@ -255,8 +322,18 @@
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QGraphicsView" name="graphicsView"/>
<item row="4" column="0">
<widget class="Line" name="line_4">
<property name="frameShadow">
<enum>QFrame::Shadow::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="Line" name="line_5">
@ -271,31 +348,6 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="Line" name="line_4">
<property name="frameShadow">
<enum>QFrame::Shadow::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QPushButton" name="revealBtn">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Show answer</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>