void AnalysisWidget::showAnalysis(const Analysis& analysis) { int mpv = analysis.mpv() - 1; bool bestMove = analysis.bestMove(); if (bestMove) { if (m_analyses.count() && m_analyses.last().bestMove()) { m_analyses.removeLast(); } m_analyses.append(analysis); } else if(mpv < 0 || mpv > m_analyses.count() || mpv >= ui.vpcount->value()) { return; } else if(mpv == m_analyses.count()) { m_analyses.append(analysis); } else { m_analyses[mpv] = analysis; } updateAnalysis(); if (bestMove) { emit receivedBestMove(analysis); } }