Display nets and cells as well
This commit is contained in:
parent
2dd7c77abd
commit
6b904aefd3
@ -69,6 +69,7 @@ BaseMainWindow::BaseMainWindow(QWidget *parent) : QMainWindow(parent), ctx(nullp
|
|||||||
splitter_h->addWidget(designview);
|
splitter_h->addWidget(designview);
|
||||||
|
|
||||||
connect(this, SIGNAL(contextChanged(Context *)), designview, SLOT(newContext(Context *)));
|
connect(this, SIGNAL(contextChanged(Context *)), designview, SLOT(newContext(Context *)));
|
||||||
|
connect(this, SIGNAL(updateTreeView()), designview, SLOT(updateTree()));
|
||||||
|
|
||||||
connect(designview, SIGNAL(info(std::string)), this, SLOT(writeInfo(std::string)));
|
connect(designview, SIGNAL(info(std::string)), this, SLOT(writeInfo(std::string)));
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ class BaseMainWindow : public QMainWindow
|
|||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void contextChanged(Context *ctx);
|
void contextChanged(Context *ctx);
|
||||||
|
void updateTreeView();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Context *ctx;
|
Context *ctx;
|
||||||
|
@ -83,7 +83,7 @@ class PipTreeItem : public ElementTreeItem
|
|||||||
IdString data;
|
IdString data;
|
||||||
};
|
};
|
||||||
|
|
||||||
DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr)
|
DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr), nets_root(nullptr), cells_root(nullptr)
|
||||||
{
|
{
|
||||||
|
|
||||||
treeWidget = new QTreeWidget();
|
treeWidget = new QTreeWidget();
|
||||||
@ -217,6 +217,56 @@ void DesignWidget::newContext(Context *ctx)
|
|||||||
for (auto pip : pip_items.toStdMap()) {
|
for (auto pip : pip_items.toStdMap()) {
|
||||||
pip_root->addChild(pip.second);
|
pip_root->addChild(pip.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add nets to tree
|
||||||
|
nets_root = new QTreeWidgetItem(treeWidget);
|
||||||
|
nets_root->setText(0, QString("Nets"));
|
||||||
|
treeWidget->insertTopLevelItem(0, nets_root);
|
||||||
|
|
||||||
|
// Add cells to tree
|
||||||
|
cells_root = new QTreeWidgetItem(treeWidget);
|
||||||
|
cells_root->setText(0, QString("Cells"));
|
||||||
|
treeWidget->insertTopLevelItem(0, cells_root);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DesignWidget::updateTree()
|
||||||
|
{
|
||||||
|
delete nets_root;
|
||||||
|
delete cells_root;
|
||||||
|
|
||||||
|
// Add nets to tree
|
||||||
|
nets_root = new QTreeWidgetItem(treeWidget);
|
||||||
|
QMap<QString, QTreeWidgetItem *> nets_items;
|
||||||
|
nets_root->setText(0, QString("Nets"));
|
||||||
|
treeWidget->insertTopLevelItem(0, nets_root);
|
||||||
|
if (ctx) {
|
||||||
|
for (auto& item : ctx->nets) {
|
||||||
|
auto id = item.first;
|
||||||
|
QString name = QString(id.c_str(ctx));
|
||||||
|
nets_items.insert(name,new ElementTreeItem(ElementType::NONE, name, nullptr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto item : nets_items.toStdMap()) {
|
||||||
|
nets_root->addChild(item.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add cells to tree
|
||||||
|
cells_root = new QTreeWidgetItem(treeWidget);
|
||||||
|
QMap<QString, QTreeWidgetItem *> cells_items;
|
||||||
|
cells_root->setText(0, QString("Cells"));
|
||||||
|
treeWidget->insertTopLevelItem(0, cells_root);
|
||||||
|
if (ctx) {
|
||||||
|
for (auto& item : ctx->cells) {
|
||||||
|
auto id = item.first;
|
||||||
|
QString name = QString(id.c_str(ctx));
|
||||||
|
cells_items.insert(name,new ElementTreeItem(ElementType::NONE, name, nullptr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto item : cells_items.toStdMap()) {
|
||||||
|
cells_root->addChild(item.second);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesignWidget::addProperty(QtVariantProperty *property, const QString &id)
|
void DesignWidget::addProperty(QtVariantProperty *property, const QString &id)
|
||||||
|
@ -49,6 +49,7 @@ class DesignWidget : public QWidget
|
|||||||
void selectObject();
|
void selectObject();
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void newContext(Context *ctx);
|
void newContext(Context *ctx);
|
||||||
|
void updateTree();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Context *ctx;
|
Context *ctx;
|
||||||
@ -62,6 +63,8 @@ class DesignWidget : public QWidget
|
|||||||
|
|
||||||
QMap<QtProperty *, QString> propertyToId;
|
QMap<QtProperty *, QString> propertyToId;
|
||||||
QMap<QString, QtVariantProperty *> idToProperty;
|
QMap<QString, QtVariantProperty *> idToProperty;
|
||||||
|
QTreeWidgetItem *nets_root;
|
||||||
|
QTreeWidgetItem *cells_root;
|
||||||
};
|
};
|
||||||
|
|
||||||
NEXTPNR_NAMESPACE_END
|
NEXTPNR_NAMESPACE_END
|
||||||
|
@ -272,6 +272,7 @@ void MainWindow::loadfile_finished(bool status)
|
|||||||
log("Loading design successful.\n");
|
log("Loading design successful.\n");
|
||||||
actionLoadPCF->setEnabled(true);
|
actionLoadPCF->setEnabled(true);
|
||||||
actionPack->setEnabled(true);
|
actionPack->setEnabled(true);
|
||||||
|
Q_EMIT updateTreeView();
|
||||||
} else {
|
} else {
|
||||||
log("Loading design failed.\n");
|
log("Loading design failed.\n");
|
||||||
}
|
}
|
||||||
@ -303,6 +304,7 @@ void MainWindow::pack_finished(bool status)
|
|||||||
disableActions();
|
disableActions();
|
||||||
if (status) {
|
if (status) {
|
||||||
log("Packing design successful.\n");
|
log("Packing design successful.\n");
|
||||||
|
Q_EMIT updateTreeView();
|
||||||
actionPlace->setEnabled(true);
|
actionPlace->setEnabled(true);
|
||||||
actionAssignBudget->setEnabled(true);
|
actionAssignBudget->setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
@ -326,6 +328,7 @@ void MainWindow::place_finished(bool status)
|
|||||||
disableActions();
|
disableActions();
|
||||||
if (status) {
|
if (status) {
|
||||||
log("Placing design successful.\n");
|
log("Placing design successful.\n");
|
||||||
|
Q_EMIT updateTreeView();
|
||||||
actionRoute->setEnabled(true);
|
actionRoute->setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
log("Placing design failed.\n");
|
log("Placing design failed.\n");
|
||||||
@ -336,6 +339,7 @@ void MainWindow::route_finished(bool status)
|
|||||||
disableActions();
|
disableActions();
|
||||||
if (status) {
|
if (status) {
|
||||||
log("Routing design successful.\n");
|
log("Routing design successful.\n");
|
||||||
|
Q_EMIT updateTreeView();
|
||||||
actionSaveAsc->setEnabled(true);
|
actionSaveAsc->setEnabled(true);
|
||||||
} else
|
} else
|
||||||
log("Routing design failed.\n");
|
log("Routing design failed.\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user