From 0e3b25468cb839039b7a49f0c5b5aba3db19f580 Mon Sep 17 00:00:00 2001 From: gatecat Date: Sun, 25 Jul 2021 12:06:51 +0100 Subject: gui: Implement about dialog Signed-off-by: gatecat --- common/nextpnr_assertions.h | 1 + gui/CMakeLists.txt | 1 + gui/basewindow.cc | 11 +++++++++++ gui/basewindow.h | 2 ++ 4 files changed, 15 insertions(+) diff --git a/common/nextpnr_assertions.h b/common/nextpnr_assertions.h index 1dd2a58f..1989aa3a 100644 --- a/common/nextpnr_assertions.h +++ b/common/nextpnr_assertions.h @@ -56,6 +56,7 @@ inline void assert_fail_impl_str(std::string message, const char *expr_str, cons #define NPNR_ASSERT_FALSE(msg) (assert_fail_impl(msg, "false", __FILE__, __LINE__)) #define NPNR_ASSERT_FALSE_STR(msg) (assert_fail_impl_str(msg, "false", __FILE__, __LINE__)) +#define NPNR_STRINGIFY_MACRO(x) NPNR_STRINGIFY(x) #define NPNR_STRINGIFY(x) #x NEXTPNR_NAMESPACE_END diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 1deffcfb..110251b9 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -34,6 +34,7 @@ add_library(gui_${family} STATIC ${GUI_SOURCE_FILES} ${PYTHON_CONSOLE_SRC} ${GUI include(${family}/family.cmake) target_include_directories(gui_${family} PRIVATE ../${family} ${family} ../3rdparty/QtPropertyBrowser/src ../3rdparty/imgui ../3rdparty/qtimgui/) +target_include_directories(gui_${family} PRIVATE ${CMAKE_BINARY_DIR}/generated) if (BUILD_PYTHON) target_include_directories(gui_${family} PRIVATE ../3rdparty/python-console ../3rdparty/python-console/modified) endif() diff --git a/gui/basewindow.cc b/gui/basewindow.cc index e93428cf..6e64bf6f 100644 --- a/gui/basewindow.cc +++ b/gui/basewindow.cc @@ -35,6 +35,7 @@ #include "log.h" #include "mainwindow.h" #include "pythontab.h" +#include "version.h" static void initBasenameResource() { Q_INIT_RESOURCE(base); } @@ -129,6 +130,15 @@ void BaseMainWindow::closeTab(int index) { delete centralTabWidget->widget(index void BaseMainWindow::writeInfo(std::string text) { console->info(text); } +void BaseMainWindow::about() +{ + QString msg; + QTextStream out(&msg); + out << "nextpnr-" << NPNR_STRINGIFY_MACRO(ARCHNAME) << "\n"; + out << "Version " << GIT_DESCRIBE_STR; + QMessageBox::information(this, "About nextpnr", msg); +} + void BaseMainWindow::createMenusAndBars() { // File menu / project toolbar actions @@ -140,6 +150,7 @@ void BaseMainWindow::createMenusAndBars() // Help menu actions QAction *actionAbout = new QAction("About", this); + connect(actionAbout, &QAction::triggered, this, &BaseMainWindow::about); // Gile menu options actionNew = new QAction("New", this); diff --git a/gui/basewindow.h b/gui/basewindow.h index 0b63dd73..4e3cdcb8 100644 --- a/gui/basewindow.h +++ b/gui/basewindow.h @@ -87,6 +87,8 @@ class BaseMainWindow : public QMainWindow void saveMovie(); void saveSVG(); + void about(); + Q_SIGNALS: void contextChanged(Context *ctx); void updateTreeView(); -- cgit v1.2.3 From bbb1ea26b629588424d0f5797235b5e7d2320509 Mon Sep 17 00:00:00 2001 From: gatecat Date: Sun, 25 Jul 2021 12:11:03 +0100 Subject: gui: Fix some typos Signed-off-by: gatecat --- gui/basewindow.cc | 2 +- gui/designwidget.cc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gui/basewindow.cc b/gui/basewindow.cc index 6e64bf6f..2ebbe2b9 100644 --- a/gui/basewindow.cc +++ b/gui/basewindow.cc @@ -180,7 +180,7 @@ void BaseMainWindow::createMenusAndBars() actionAssignBudget = new QAction("Assign Budget", this); actionAssignBudget->setIcon(QIcon(":/icons/resources/time_add.png")); - actionAssignBudget->setStatusTip("Assign time budget for current design"); + actionAssignBudget->setStatusTip("Assign timing budget for current design"); actionAssignBudget->setEnabled(false); connect(actionAssignBudget, &QAction::triggered, this, &BaseMainWindow::budget); diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 369596c7..749c25a6 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -655,8 +655,8 @@ void DesignWidget::onSelectionChanged(int num, const QItemSelection &, const QIt DelayQuad delay = ctx->getWireDelay(wire); QtProperty *delayItem = addSubGroup(topItem, "Delay"); - addProperty(delayItem, QVariant::Double, "Min Raise", delay.minRiseDelay()); - addProperty(delayItem, QVariant::Double, "Max Raise", delay.maxRiseDelay()); + addProperty(delayItem, QVariant::Double, "Min Rise", delay.minRiseDelay()); + addProperty(delayItem, QVariant::Double, "Max Rise", delay.maxRiseDelay()); addProperty(delayItem, QVariant::Double, "Min Fall", delay.minFallDelay()); addProperty(delayItem, QVariant::Double, "Max Fall", delay.maxFallDelay()); @@ -724,8 +724,8 @@ void DesignWidget::onSelectionChanged(int num, const QItemSelection &, const QIt DelayQuad delay = ctx->getPipDelay(pip); QtProperty *delayItem = addSubGroup(topItem, "Delay"); - addProperty(delayItem, QVariant::Double, "Min Raise", delay.minRiseDelay()); - addProperty(delayItem, QVariant::Double, "Max Raise", delay.maxRiseDelay()); + addProperty(delayItem, QVariant::Double, "Min Rise", delay.minRiseDelay()); + addProperty(delayItem, QVariant::Double, "Max Rise", delay.maxRiseDelay()); addProperty(delayItem, QVariant::Double, "Min Fall", delay.minFallDelay()); addProperty(delayItem, QVariant::Double, "Max Fall", delay.maxFallDelay()); } else if (type == ElementType::NET) { -- cgit v1.2.3