aboutsummaryrefslogtreecommitdiffstats
path: root/gui/designwidget.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-06-26 15:47:22 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-06-26 15:47:43 +0200
commit0bd73c19778c9bdbc8e6d85c120715e239a9bc0d (patch)
treec269c560c2dc284a4721bea2722a73bb522e5e3e /gui/designwidget.cc
parent6f12f2b7e8c58a0b14c6f1f3df2112b8860a6e4f (diff)
downloadnextpnr-0bd73c19778c9bdbc8e6d85c120715e239a9bc0d.tar.gz
nextpnr-0bd73c19778c9bdbc8e6d85c120715e239a9bc0d.tar.bz2
nextpnr-0bd73c19778c9bdbc8e6d85c120715e239a9bc0d.zip
Make GUI use recreated context
Diffstat (limited to 'gui/designwidget.cc')
-rw-r--r--gui/designwidget.cc83
1 files changed, 49 insertions, 34 deletions
diff --git a/gui/designwidget.cc b/gui/designwidget.cc
index 326c2649..a989080e 100644
--- a/gui/designwidget.cc
+++ b/gui/designwidget.cc
@@ -82,7 +82,7 @@ class PipTreeItem : public ElementTreeItem
IdString data;
};
-DesignWidget::DesignWidget(Context *_ctx, QWidget *parent) : QWidget(parent), ctx(_ctx)
+DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr)
{
treeWidget = new QTreeWidget();
@@ -92,39 +92,6 @@ DesignWidget::DesignWidget(Context *_ctx, QWidget *parent) : QWidget(parent), ct
treeWidget->setHeaderLabel(QString("Items"));
treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
- // Add bels to tree
- QTreeWidgetItem *bel_root = new QTreeWidgetItem(treeWidget);
- bel_root->setText(0, QString("Bels"));
- treeWidget->insertTopLevelItem(0, bel_root);
- QList<QTreeWidgetItem *> bel_items;
- for (auto bel : ctx->getBels()) {
- auto name = ctx->getBelName(bel);
- bel_items.append(new BelTreeItem(name, ElementType::BEL, QString(name.c_str(ctx))));
- }
- bel_root->addChildren(bel_items);
-
- // Add wires to tree
- QTreeWidgetItem *wire_root = new QTreeWidgetItem(treeWidget);
- QList<QTreeWidgetItem *> wire_items;
- wire_root->setText(0, QString("Wires"));
- treeWidget->insertTopLevelItem(0, wire_root);
- for (auto wire : ctx->getWires()) {
- auto name = ctx->getWireName(wire);
- wire_items.append(new WireTreeItem(name, ElementType::WIRE, QString(name.c_str(ctx))));
- }
- wire_root->addChildren(wire_items);
-
- // Add pips to tree
- QTreeWidgetItem *pip_root = new QTreeWidgetItem(treeWidget);
- QList<QTreeWidgetItem *> pip_items;
- pip_root->setText(0, QString("Pips"));
- treeWidget->insertTopLevelItem(0, pip_root);
- for (auto pip : ctx->getPips()) {
- auto name = ctx->getPipName(pip);
- pip_items.append(new PipTreeItem(name, ElementType::PIP, QString(name.c_str(ctx))));
- }
- pip_root->addChildren(pip_items);
-
// Add property view
variantManager = new QtVariantPropertyManager();
variantFactory = new QtVariantEditorFactory();
@@ -158,6 +125,54 @@ DesignWidget::~DesignWidget()
delete propertyEditor;
}
+void DesignWidget::newContext(Context *ctx)
+{
+ treeWidget->clear();
+ this->ctx = ctx;
+
+ // Add bels to tree
+ QTreeWidgetItem *bel_root = new QTreeWidgetItem(treeWidget);
+ bel_root->setText(0, QString("Bels"));
+ treeWidget->insertTopLevelItem(0, bel_root);
+ QList<QTreeWidgetItem *> bel_items;
+ if (ctx)
+ {
+ for (auto bel : ctx->getBels()) {
+ auto name = ctx->getBelName(bel);
+ bel_items.append(new BelTreeItem(name, ElementType::BEL, QString(name.c_str(ctx))));
+ }
+ }
+ bel_root->addChildren(bel_items);
+
+ // Add wires to tree
+ QTreeWidgetItem *wire_root = new QTreeWidgetItem(treeWidget);
+ QList<QTreeWidgetItem *> wire_items;
+ wire_root->setText(0, QString("Wires"));
+ treeWidget->insertTopLevelItem(0, wire_root);
+ if (ctx)
+ {
+ for (auto wire : ctx->getWires()) {
+ auto name = ctx->getWireName(wire);
+ wire_items.append(new WireTreeItem(name, ElementType::WIRE, QString(name.c_str(ctx))));
+ }
+ }
+ wire_root->addChildren(wire_items);
+
+ // Add pips to tree
+ QTreeWidgetItem *pip_root = new QTreeWidgetItem(treeWidget);
+ QList<QTreeWidgetItem *> pip_items;
+ pip_root->setText(0, QString("Pips"));
+ treeWidget->insertTopLevelItem(0, pip_root);
+ if (ctx)
+ {
+ for (auto pip : ctx->getPips()) {
+ auto name = ctx->getPipName(pip);
+ pip_items.append(new PipTreeItem(name, ElementType::PIP, QString(name.c_str(ctx))));
+ }
+ }
+ pip_root->addChildren(pip_items);
+}
+
void DesignWidget::addProperty(QtVariantProperty *property, const QString &id)
{
propertyToId[property] = id;