From e68ca65e9e0a1675a13e607a99f318ce5958c7e9 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Fri, 3 Aug 2018 18:23:40 +0200 Subject: Unify interfaces for gui --- ecp5/arch.h | 2 +- ecp5/main.cc | 2 +- generic/arch.cc | 2 +- generic/main.cc | 5 +++-- gui/ecp5/mainwindow.cc | 10 +++++++++- gui/ecp5/mainwindow.h | 6 +++++- gui/generic/mainwindow.cc | 10 +++++++++- gui/generic/mainwindow.h | 6 +++++- 8 files changed, 34 insertions(+), 9 deletions(-) diff --git a/ecp5/arch.h b/ecp5/arch.h index cd103b12..38ca7f6b 100644 --- a/ecp5/arch.h +++ b/ecp5/arch.h @@ -384,7 +384,7 @@ struct PipRange struct ArchArgs { - enum + enum ArchArgsType { NONE, LFE5U_25F, diff --git a/ecp5/main.cc b/ecp5/main.cc index f40a5e61..805c0d26 100644 --- a/ecp5/main.cc +++ b/ecp5/main.cc @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) #ifndef NO_GUI if (vm.count("gui")) { Application a(argc, argv); - MainWindow w(std::move(ctx)); + MainWindow w(std::move(ctx),args); w.show(); return a.exec(); diff --git a/generic/arch.cc b/generic/arch.cc index 1c22dbf7..ce15a689 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -175,7 +175,7 @@ void Arch::setGroupDecal(GroupId group, DecalXY decalxy) // --------------------------------------------------------------- -Arch::Arch(ArchArgs) {} +Arch::Arch(ArchArgs) : chipName("generic") {} void IdString::initialize_arch(const BaseCtx *ctx) {} diff --git a/generic/main.cc b/generic/main.cc index 3b8b3fe6..8653da01 100644 --- a/generic/main.cc +++ b/generic/main.cc @@ -90,7 +90,8 @@ int main(int argc, char *argv[]) return 1; } - std::unique_ptr ctx = std::unique_ptr(new Context(ArchArgs{})); + ArchArgs chipArgs{}; + std::unique_ptr ctx = std::unique_ptr(new Context(chipArgs)); if (vm.count("verbose")) { ctx->verbose = true; @@ -107,7 +108,7 @@ int main(int argc, char *argv[]) #ifndef NO_GUI if (vm.count("gui")) { Application a(argc, argv); - MainWindow w(std::move(ctx)); + MainWindow w(std::move(ctx), chipArgs); w.show(); return a.exec(); diff --git a/gui/ecp5/mainwindow.cc b/gui/ecp5/mainwindow.cc index 935daefd..0a33ee2b 100644 --- a/gui/ecp5/mainwindow.cc +++ b/gui/ecp5/mainwindow.cc @@ -23,19 +23,27 @@ static void initMainResource() { Q_INIT_RESOURCE(nextpnr); } NEXTPNR_NAMESPACE_BEGIN -MainWindow::MainWindow(std::unique_ptr context, QWidget *parent) : BaseMainWindow(std::move(context), parent) +MainWindow::MainWindow(std::unique_ptr context, ArchArgs args, QWidget *parent) : BaseMainWindow(std::move(context), parent), chipArgs(args) { initMainResource(); std::string title = "nextpnr-ecp5 - [EMPTY]"; setWindowTitle(title.c_str()); + connect(this, &BaseMainWindow::contextChanged, this, &MainWindow::newContext); + createMenu(); Q_EMIT contextChanged(ctx.get()); } MainWindow::~MainWindow() {} +void MainWindow::newContext(Context *ctx) +{ + std::string title = "nextpnr-generic - " + ctx->getChipName() + " ( " + chipArgs.package + " )"; + setWindowTitle(title.c_str()); +} + void MainWindow::createMenu() {} void MainWindow::new_proj() {} diff --git a/gui/ecp5/mainwindow.h b/gui/ecp5/mainwindow.h index e97bb4e7..8421b52a 100644 --- a/gui/ecp5/mainwindow.h +++ b/gui/ecp5/mainwindow.h @@ -29,7 +29,7 @@ class MainWindow : public BaseMainWindow Q_OBJECT public: - explicit MainWindow(std::unique_ptr context, QWidget *parent = 0); + explicit MainWindow(std::unique_ptr context, ArchArgs args, QWidget *parent = 0); virtual ~MainWindow(); public: @@ -39,6 +39,10 @@ class MainWindow : public BaseMainWindow virtual void new_proj(); virtual void open_proj(); virtual bool save_proj(); + void newContext(Context *ctx); + +private: + ArchArgs chipArgs; }; NEXTPNR_NAMESPACE_END diff --git a/gui/generic/mainwindow.cc b/gui/generic/mainwindow.cc index 70ee600d..353668b9 100644 --- a/gui/generic/mainwindow.cc +++ b/gui/generic/mainwindow.cc @@ -23,19 +23,27 @@ static void initMainResource() { Q_INIT_RESOURCE(nextpnr); } NEXTPNR_NAMESPACE_BEGIN -MainWindow::MainWindow(std::unique_ptr context, QWidget *parent) : BaseMainWindow(std::move(context), parent) +MainWindow::MainWindow(std::unique_ptr context, ArchArgs args, QWidget *parent) : BaseMainWindow(std::move(context), parent), chipArgs(args) { initMainResource(); std::string title = "nextpnr-generic - [EMPTY]"; setWindowTitle(title.c_str()); + connect(this, &BaseMainWindow::contextChanged, this, &MainWindow::newContext); + createMenu(); Q_EMIT contextChanged(ctx.get()); } MainWindow::~MainWindow() {} +void MainWindow::newContext(Context *ctx) +{ + std::string title = "nextpnr-generic - " + ctx->getChipName(); + setWindowTitle(title.c_str()); +} + void MainWindow::createMenu() {} void MainWindow::new_proj() {} diff --git a/gui/generic/mainwindow.h b/gui/generic/mainwindow.h index e97bb4e7..fd7cb7d2 100644 --- a/gui/generic/mainwindow.h +++ b/gui/generic/mainwindow.h @@ -29,7 +29,7 @@ class MainWindow : public BaseMainWindow Q_OBJECT public: - explicit MainWindow(std::unique_ptr context, QWidget *parent = 0); + explicit MainWindow(std::unique_ptr context, ArchArgs args, QWidget *parent = 0); virtual ~MainWindow(); public: @@ -39,6 +39,10 @@ class MainWindow : public BaseMainWindow virtual void new_proj(); virtual void open_proj(); virtual bool save_proj(); + void newContext(Context *ctx); + +private: + ArchArgs chipArgs; }; NEXTPNR_NAMESPACE_END -- cgit v1.2.3