void AnalysisWidget::startEngine() { int index = ui.engineList->currentIndex(); stopEngine(); if(index != -1) { if(parentWidget() && !parentWidget()->isVisible()) { parentWidget()->show(); } ui.variationText->clear(); m_engine = Engine::newEngine(index); ui.vpcount->setEnabled(m_engine->providesMvp()); ui.label->setEnabled(m_engine->providesMvp()); if(!m_engine->providesMvp()) { ui.vpcount->setValue(1); } connect(m_engine, SIGNAL(activated()), SLOT(engineActivated())); connect(m_engine, SIGNAL(error(QProcess::ProcessError)), SLOT(engineError(QProcess::ProcessError))); connect(m_engine, SIGNAL(deactivated()), SLOT(engineDeactivated())); connect(m_engine, SIGNAL(analysisUpdated(const Analysis&)), SLOT(showAnalysis(const Analysis&))); m_engine->setMoveTime(m_moveTime); m_engine->activate(); QString key = QString("/") + objectName() + "/Engine"; AppSettings->setValue(key, ui.engineList->itemText(index)); } }
EngineOptionDialog::EngineOptionDialog(QWidget *parent, EngineList& engineList, int index, Qt::WindowFlags f) : QDialog(parent, f), ui(new Ui::EngineOptionDialog) { ui->setupUi(this); QString t = windowTitle(); QString t1 = QString("%1 %2 (%3)"). arg(t). arg(engineList[index].name). arg(QString(engineList[index].protocol==EngineData::UCI ? "UCI" : "WinBoard")); setWindowTitle(t1); if (engineList[index].protocol==EngineData::UCI) { ui->tableView->setEditTriggers(QAbstractItemView::AllEditTriggers); } else { ui->resetButton->setEnabled(false); } m_index = index; m_engine = Engine::newEngine(engineList, index, true); m_engine->activate(); connect(m_engine, SIGNAL(activated()), SLOT(engineActivated())); connect(ui->resetButton, SIGNAL(clicked()), SLOT(optionReset())); }