diff --git a/dealer.cpp b/dealer.cpp --- a/dealer.cpp +++ b/dealer.cpp @@ -1738,6 +1738,7 @@ QString maxWinStreakKey = QStringLiteral("maxwinstreak%1").arg( id ); QString loseStreakKey = QStringLiteral("loosestreak%1").arg( id ); QString maxLoseStreakKey = QStringLiteral("maxloosestreak%1").arg( id ); + QString minMovesKey = QStringLiteral("minmoves%1").arg( id ); KConfigGroup config(KSharedConfig::openConfig(), scores_group); @@ -1747,6 +1748,7 @@ int maxWinStreak = config.readEntry( maxWinStreakKey, 0 ); int loseStreak = config.readEntry( loseStreakKey, 0 ); int maxLoseStreak = config.readEntry( maxLoseStreakKey, 0 ); + int minMoves = config.readEntry( minMovesKey, -1 ); ++totalPlayed; @@ -1756,6 +1758,10 @@ ++winStreak; maxWinStreak = qMax( winStreak, maxWinStreak ); loseStreak = 0; + if ( minMoves < 0 ) + minMoves = moveCount(); + else + minMoves = qMin( minMoves, moveCount() ); } else { @@ -1770,6 +1776,7 @@ config.writeEntry( maxWinStreakKey, maxWinStreak ); config.writeEntry( loseStreakKey, loseStreak ); config.writeEntry( maxLoseStreakKey, maxLoseStreak ); + config.writeEntry( minMovesKey, minMoves ); m_statisticsRecorded = true; } diff --git a/statisticsdialog.cpp b/statisticsdialog.cpp --- a/statisticsdialog.cpp +++ b/statisticsdialog.cpp @@ -122,6 +122,11 @@ ui->Won->setText( QString::number(w)); ui->WinStreak->setText( QString::number( cg.readEntry(QStringLiteral("maxwinstreak%1").arg(gameIndex), 0))); ui->LoseStreak->setText( QString::number( cg.readEntry(QStringLiteral("maxloosestreak%1").arg(gameIndex), 0))); + int minMoves = cg.readEntry(QStringLiteral("minmoves%1").arg(gameIndex), -1); + if(minMoves < 0) + ui->MinMoves->setText("∞"); + else + ui->MinMoves->setText(QString::number(minMoves)); unsigned int l = cg.readEntry(QStringLiteral("loosestreak%1").arg(gameIndex),0); if (l) ui->CurrentStreak->setText( i18np("1 loss", "%1 losses", l) ); @@ -141,6 +146,7 @@ cg.writeEntry(QStringLiteral("maxloosestreak%1").arg(gameIndex),0); cg.writeEntry(QStringLiteral("loosestreak%1").arg(gameIndex),0); cg.writeEntry(QStringLiteral("winstreak%1").arg(gameIndex),0); + cg.writeEntry(QStringLiteral("minmoves%1").arg(gameIndex),-1); cg.sync(); setGameType(gameIndex); diff --git a/statisticsdialog.ui b/statisticsdialog.ui --- a/statisticsdialog.ui +++ b/statisticsdialog.ui @@ -141,6 +141,23 @@ + + + + Minimal number of moves: + + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + +