Exemple #1
0
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()));
}