From a5f93343b622a43509f8a99a71ba37801d104ea7 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 17 Jul 2018 09:40:26 +0200 Subject: Added check for yosys availability --- gui/basewindow.cc | 2 +- gui/fpgaviewwidget.cc | 5 +---- gui/yosystab.cc | 11 +++++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'gui') diff --git a/gui/basewindow.cc b/gui/basewindow.cc index e75298c0..81c89e45 100644 --- a/gui/basewindow.cc +++ b/gui/basewindow.cc @@ -195,7 +195,7 @@ void BaseMainWindow::yosys() yosysTab->setAttribute(Qt::WA_DeleteOnClose); centralTabWidget->addTab(yosysTab, "Yosys"); centralTabWidget->setCurrentWidget(yosysTab); - centralTabWidget->setTabToolTip(centralTabWidget->indexOf(yosysTab),folder); + centralTabWidget->setTabToolTip(centralTabWidget->indexOf(yosysTab), folder); } } NEXTPNR_NAMESPACE_END diff --git a/gui/fpgaviewwidget.cc b/gui/fpgaviewwidget.cc index 3ac69463..c926e5fa 100644 --- a/gui/fpgaviewwidget.cc +++ b/gui/fpgaviewwidget.cc @@ -400,10 +400,7 @@ void FPGAViewWidget::paintGL() } lineShader_.draw(grid, gridColor_, thick1Px, matrix); - LineShaderData shaders[4] = {LineShaderData(), - LineShaderData(), - LineShaderData(), - LineShaderData()}; + LineShaderData shaders[4] = {LineShaderData(), LineShaderData(), LineShaderData(), LineShaderData()}; if (ctx_) { // Draw Bels. diff --git a/gui/yosystab.cc b/gui/yosystab.cc index 1661c74f..f2e99cbc 100644 --- a/gui/yosystab.cc +++ b/gui/yosystab.cc @@ -19,6 +19,7 @@ #include "yosystab.h" #include +#include NEXTPNR_NAMESPACE_BEGIN @@ -47,6 +48,7 @@ YosysTab::YosysTab(QString folder, QWidget *parent) : QWidget(parent) lineEdit->setMaximumHeight(30); lineEdit->setFont(f); lineEdit->setFocus(); + lineEdit->setEnabled(false); lineEdit->setPlaceholderText("yosys>"); connect(lineEdit, SIGNAL(textLineInserted(QString)), this, SLOT(editLineReturnPressed(QString))); @@ -58,6 +60,15 @@ YosysTab::YosysTab(QString folder, QWidget *parent) : QWidget(parent) process = new QProcess(); connect(process, SIGNAL(readyReadStandardError()), this, SLOT(onReadyReadStandardError())); connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(onReadyReadStandardOutput())); + connect(process, &QProcess::started, this, [this] { lineEdit->setEnabled(true); }); + connect(process, &QProcess::errorOccurred, this, [this](QProcess::ProcessError error) { + if (error == QProcess::FailedToStart) { + QMessageBox::critical( + this, QString::fromUtf8("Yosys cannot be started!"), + QString::fromUtf8("

Please make sure you have Yosys installed and available in path

")); + Q_EMIT deleteLater(); + } + }); process->setWorkingDirectory(folder); process->start("yosys"); } -- cgit v1.2.3