From 9953012154f18ea51ff9216529089715ba79fb41 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 12 Jun 2018 19:56:03 +0200 Subject: reveresed logic for enabling main file, and made tests link arch files --- gui/mainwindow.cc | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'gui') diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc index c436fd6c..bae02813 100644 --- a/gui/mainwindow.cc +++ b/gui/mainwindow.cc @@ -18,16 +18,41 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) ui->setupUi(this); ui->treeWidget->setColumnCount(1); ui->treeWidget->setHeaderLabel(QString("Items")); - QTreeWidgetItem *belroot = new QTreeWidgetItem(ui->treeWidget); - belroot->setText(0, QString("Bels")); - ui->treeWidget->insertTopLevelItem(0, belroot); - QList items; + + QTreeWidgetItem *bel_root = new QTreeWidgetItem(ui->treeWidget); + bel_root->setText(0, QString("Bels")); + ui->treeWidget->insertTopLevelItem(0, bel_root); + QList bel_items; for (auto bel : design->chip.getBels()) { auto name = design->chip.getBelName(bel); - items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, + bel_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, + QStringList(QString(name.c_str())))); + } + bel_root->addChildren(bel_items); + + QTreeWidgetItem *wire_root = new QTreeWidgetItem(ui->treeWidget); + QList wire_items; + wire_root->setText(0, QString("Wires")); + ui->treeWidget->insertTopLevelItem(0, wire_root); + for (auto wire : design->chip.getWires()) { + auto name = design->chip.getWireName(wire); + wire_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, QStringList(QString(name.c_str())))); } - belroot->addChildren(items); + wire_root->addChildren(wire_items); + + QTreeWidgetItem *pip_root = new QTreeWidgetItem(ui->treeWidget); + QList pip_items; + pip_root->setText(0, QString("Pips")); + ui->treeWidget->insertTopLevelItem(0, pip_root); + for (auto pip : design->chip.getPips()) { + auto name = design->chip.getPipName(pip); + pip_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, + QStringList(QString(name.c_str())))); + } + pip_root->addChildren(pip_items); + + PyImport_ImportModule("emb"); write = [this](std::string s) { -- cgit v1.2.3 From 7b1c599947f18267dd50ad62812e9a932403fd4d Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 12 Jun 2018 20:44:05 +0200 Subject: clangformat cleanup --- gui/mainwindow.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'gui') diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc index bae02813..3c5b74de 100644 --- a/gui/mainwindow.cc +++ b/gui/mainwindow.cc @@ -25,8 +25,8 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) QList bel_items; for (auto bel : design->chip.getBels()) { auto name = design->chip.getBelName(bel); - bel_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, - QStringList(QString(name.c_str())))); + bel_items.append(new QTreeWidgetItem( + (QTreeWidget *)nullptr, QStringList(QString(name.c_str())))); } bel_root->addChildren(bel_items); @@ -36,8 +36,8 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) ui->treeWidget->insertTopLevelItem(0, wire_root); for (auto wire : design->chip.getWires()) { auto name = design->chip.getWireName(wire); - wire_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, - QStringList(QString(name.c_str())))); + wire_items.append(new QTreeWidgetItem( + (QTreeWidget *)nullptr, QStringList(QString(name.c_str())))); } wire_root->addChildren(wire_items); @@ -47,12 +47,11 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) ui->treeWidget->insertTopLevelItem(0, pip_root); for (auto pip : design->chip.getPips()) { auto name = design->chip.getPipName(pip); - pip_items.append(new QTreeWidgetItem((QTreeWidget *)nullptr, - QStringList(QString(name.c_str())))); + pip_items.append(new QTreeWidgetItem( + (QTreeWidget *)nullptr, QStringList(QString(name.c_str())))); } pip_root->addChildren(pip_items); - PyImport_ImportModule("emb"); write = [this](std::string s) { -- cgit v1.2.3 From 65bc2d3f3906791e6fc94e8548a556b0c9f03141 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 12 Jun 2018 21:29:37 +0200 Subject: context menu and cleanup --- gui/mainwindow.cc | 45 +++++++++++++++++++++++++++++++++++---------- gui/mainwindow.h | 8 ++++++++ 2 files changed, 43 insertions(+), 10 deletions(-) (limited to 'gui') diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc index 3c5b74de..5f62ecec 100644 --- a/gui/mainwindow.cc +++ b/gui/mainwindow.cc @@ -4,9 +4,6 @@ #include #include "emb.h" #include "pybindings.h" -#include "qtpropertymanager.h" -#include "qttreepropertybrowser.h" -#include "qtvariantproperty.h" #include "ui_mainwindow.h" #include @@ -18,6 +15,9 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) ui->setupUi(this); ui->treeWidget->setColumnCount(1); ui->treeWidget->setHeaderLabel(QString("Items")); + ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this, + &MainWindow::prepareMenu); QTreeWidgetItem *bel_root = new QTreeWidgetItem(ui->treeWidget); bel_root->setText(0, QString("Bels")); @@ -62,7 +62,8 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) emb::set_stdout(write); std::string title = "nextpnr-ice40 - " + design->chip.getChipName(); setWindowTitle(title.c_str()); - QtVariantPropertyManager *variantManager = new QtVariantPropertyManager(); + + variantManager = new QtVariantPropertyManager(); int i = 0; QtProperty *topItem = variantManager->addProperty( @@ -221,9 +222,9 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) QString::number(i++) + QLatin1String(" Color Property")); topItem->addSubProperty(item); - QtVariantEditorFactory *variantFactory = new QtVariantEditorFactory(); + variantFactory = new QtVariantEditorFactory(); - QtTreePropertyBrowser *variantEditor = new QtTreePropertyBrowser(); + variantEditor = new QtTreePropertyBrowser(); variantEditor->setFactoryForManager(variantManager, variantFactory); variantEditor->addProperty(topItem); variantEditor->setPropertiesWithoutValueMarked(true); @@ -234,13 +235,37 @@ MainWindow::MainWindow(Design *_design, QWidget *parent) MainWindow::~MainWindow() { - - // delete variantManager; - // delete variantFactory; - // delete variantEditor; + delete variantManager; + delete variantFactory; + delete variantEditor; delete ui; } +void MainWindow::prepareMenu(const QPoint &pos) +{ + QTreeWidget *tree = ui->treeWidget; + + QTreeWidgetItem *item = tree->itemAt(pos); + + QAction *selectAction = new QAction("&Select", this); + selectAction->setStatusTip("Select item on view"); + connect(selectAction, SIGNAL(triggered()), this, SLOT(selectObject(item))); + + QMenu menu(this); + menu.addAction(selectAction); + + QPoint pt(pos); + menu.exec(tree->mapToGlobal(pos)); +} + +void MainWindow::selectObject(QTreeWidgetItem *item) +{ + ui->plainTextEdit->moveCursor(QTextCursor::End); + ui->plainTextEdit->insertPlainText( + std::string("selected " + item->text(0).toStdString() + "\n").c_str()); + ui->plainTextEdit->moveCursor(QTextCursor::End); +} + void handle_system_exit() { exit(-1); } int MainWindow::executePython(std::string command) diff --git a/gui/mainwindow.h b/gui/mainwindow.h index 6f3e515f..27918486 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -3,6 +3,9 @@ #include "emb.h" #include "nextpnr.h" +#include "qtpropertymanager.h" +#include "qttreepropertybrowser.h" +#include "qtvariantproperty.h" #include @@ -27,11 +30,16 @@ class MainWindow : public QMainWindow private Q_SLOTS: void on_lineEdit_returnPressed(); + void prepareMenu(const QPoint &pos); + void selectObject(QTreeWidgetItem *item); private: Ui::MainWindow *ui; emb::stdout_write_type write; Design *design; + QtVariantPropertyManager *variantManager; + QtVariantEditorFactory *variantFactory; + QtTreePropertyBrowser *variantEditor; }; #endif // MAINWINDOW_H -- cgit v1.2.3