more properties added for nets
This commit is contained in:
parent
f0923b1b27
commit
1f2aef943e
@ -75,6 +75,7 @@ DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr), net
|
|||||||
// Add property view
|
// Add property view
|
||||||
variantManager = new QtVariantPropertyManager();
|
variantManager = new QtVariantPropertyManager();
|
||||||
readOnlyManager = new QtVariantPropertyManager(this);
|
readOnlyManager = new QtVariantPropertyManager(this);
|
||||||
|
groupManager = new QtGroupPropertyManager(this);
|
||||||
variantFactory = new QtVariantEditorFactory();
|
variantFactory = new QtVariantEditorFactory();
|
||||||
propertyEditor = new QtTreePropertyBrowser();
|
propertyEditor = new QtTreePropertyBrowser();
|
||||||
propertyEditor->setFactoryForManager(variantManager, variantFactory);
|
propertyEditor->setFactoryForManager(variantManager, variantFactory);
|
||||||
@ -103,6 +104,7 @@ DesignWidget::~DesignWidget()
|
|||||||
{
|
{
|
||||||
delete variantManager;
|
delete variantManager;
|
||||||
delete readOnlyManager;
|
delete readOnlyManager;
|
||||||
|
delete groupManager;
|
||||||
delete variantFactory;
|
delete variantFactory;
|
||||||
delete propertyEditor;
|
delete propertyEditor;
|
||||||
}
|
}
|
||||||
@ -213,6 +215,7 @@ void DesignWidget::newContext(Context *ctx)
|
|||||||
|
|
||||||
void DesignWidget::updateTree()
|
void DesignWidget::updateTree()
|
||||||
{
|
{
|
||||||
|
clearProperties();
|
||||||
delete nets_root;
|
delete nets_root;
|
||||||
delete cells_root;
|
delete cells_root;
|
||||||
|
|
||||||
@ -250,7 +253,7 @@ void DesignWidget::updateTree()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DesignWidget::addProperty(QtVariantProperty *property, const QString &id)
|
void DesignWidget::addProperty(QtProperty *property, const QString &id)
|
||||||
{
|
{
|
||||||
propertyToId[property] = id;
|
propertyToId[property] = id;
|
||||||
idToProperty[id] = property;
|
idToProperty[id] = property;
|
||||||
@ -308,10 +311,71 @@ void DesignWidget::onItemClicked(QTreeWidgetItem *item, int pos)
|
|||||||
} else if (type == ElementType::NET) {
|
} else if (type == ElementType::NET) {
|
||||||
IdString c = static_cast<IdStringTreeItem *>(item)->getData();
|
IdString c = static_cast<IdStringTreeItem *>(item)->getData();
|
||||||
|
|
||||||
|
NetInfo *net = ctx->nets.at(c).get();
|
||||||
|
|
||||||
QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
|
QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
|
||||||
topItem->setValue(QString(c.c_str(ctx)));
|
topItem->setValue(QString(net->name.c_str(ctx)));
|
||||||
addProperty(topItem, QString("Name"));
|
addProperty(topItem, QString("Name"));
|
||||||
|
|
||||||
|
QtVariantProperty *portItem = readOnlyManager->addProperty(QVariant::String, QString("Port"));
|
||||||
|
portItem->setValue(QString(net->driver.port.c_str(ctx)));
|
||||||
|
addProperty(portItem, QString("Port"));
|
||||||
|
|
||||||
|
QtVariantProperty *budgetItem = readOnlyManager->addProperty(QVariant::Double, QString("Budget"));
|
||||||
|
budgetItem->setValue(net->driver.budget);
|
||||||
|
addProperty(budgetItem, QString("Budget"));
|
||||||
|
|
||||||
|
if (net->driver.cell) {
|
||||||
|
CellInfo *cell = net->driver.cell;
|
||||||
|
QtProperty *cellItem = groupManager->addProperty(QString("Cell"));
|
||||||
|
addProperty(cellItem, QString("Cell"));
|
||||||
|
|
||||||
|
QtVariantProperty *cellNameItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
|
||||||
|
cellNameItem->setValue(QString(cell->name.c_str(ctx)));
|
||||||
|
cellItem->addSubProperty(cellNameItem);
|
||||||
|
|
||||||
|
QtVariantProperty *cellTypeItem = readOnlyManager->addProperty(QVariant::String, QString("Type"));
|
||||||
|
cellTypeItem->setValue(QString(cell->type.c_str(ctx)));
|
||||||
|
cellItem->addSubProperty(cellTypeItem);
|
||||||
|
|
||||||
|
QtProperty *cellPortsItem = groupManager->addProperty(QString("Ports"));
|
||||||
|
cellItem->addSubProperty(cellPortsItem);
|
||||||
|
for(auto &item : cell->ports)
|
||||||
|
{
|
||||||
|
PortInfo p = item.second;
|
||||||
|
|
||||||
|
QtProperty *portInfoItem = groupManager->addProperty(QString(p.name.c_str(ctx)));
|
||||||
|
|
||||||
|
QtVariantProperty *portInfoNameItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
|
||||||
|
portInfoNameItem->setValue(QString(p.name.c_str(ctx)));
|
||||||
|
portInfoItem->addSubProperty(portInfoNameItem);
|
||||||
|
|
||||||
|
QtVariantProperty *portInfoTypeItem = readOnlyManager->addProperty(QVariant::Int, QString("Type"));
|
||||||
|
portInfoTypeItem->setValue(int(p.type));
|
||||||
|
portInfoItem->addSubProperty(portInfoTypeItem);
|
||||||
|
|
||||||
|
cellPortsItem->addSubProperty(portInfoItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
QtProperty *cellAttrItem = groupManager->addProperty(QString("Attributes"));
|
||||||
|
cellItem->addSubProperty(cellAttrItem);
|
||||||
|
for(auto &item : cell->attrs)
|
||||||
|
{
|
||||||
|
QtVariantProperty *attrItem = readOnlyManager->addProperty(QVariant::String, QString(item.first.c_str(ctx)));
|
||||||
|
attrItem->setValue(QString(item.second.c_str()));
|
||||||
|
cellAttrItem->addSubProperty(attrItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
QtProperty *cellParamsItem = groupManager->addProperty(QString("Parameters"));
|
||||||
|
cellItem->addSubProperty(cellParamsItem);
|
||||||
|
for(auto &item : cell->params)
|
||||||
|
{
|
||||||
|
QtVariantProperty *paramItem = readOnlyManager->addProperty(QVariant::String, QString(item.first.c_str(ctx)));
|
||||||
|
paramItem->setValue(QString(item.second.c_str()));
|
||||||
|
cellParamsItem->addSubProperty(paramItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (type == ElementType::CELL) {
|
} else if (type == ElementType::CELL) {
|
||||||
IdString c = static_cast<IdStringTreeItem *>(item)->getData();
|
IdString c = static_cast<IdStringTreeItem *>(item)->getData();
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "qtpropertymanager.h"
|
#include "qtpropertymanager.h"
|
||||||
#include "qttreepropertybrowser.h"
|
#include "qttreepropertybrowser.h"
|
||||||
#include "qtvariantproperty.h"
|
#include "qtvariantproperty.h"
|
||||||
|
#include "qtgroupboxpropertybrowser.h"
|
||||||
|
|
||||||
NEXTPNR_NAMESPACE_BEGIN
|
NEXTPNR_NAMESPACE_BEGIN
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ class DesignWidget : public QWidget
|
|||||||
~DesignWidget();
|
~DesignWidget();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addProperty(QtVariantProperty *property, const QString &id);
|
void addProperty(QtProperty *property, const QString &id);
|
||||||
void clearProperties();
|
void clearProperties();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
@ -58,12 +59,13 @@ class DesignWidget : public QWidget
|
|||||||
|
|
||||||
QtVariantPropertyManager *variantManager;
|
QtVariantPropertyManager *variantManager;
|
||||||
QtVariantPropertyManager *readOnlyManager;
|
QtVariantPropertyManager *readOnlyManager;
|
||||||
|
QtGroupPropertyManager *groupManager;
|
||||||
QtVariantEditorFactory *variantFactory;
|
QtVariantEditorFactory *variantFactory;
|
||||||
QtTreePropertyBrowser *propertyEditor;
|
QtTreePropertyBrowser *propertyEditor;
|
||||||
QTreeWidgetItem *itemContextMenu;
|
QTreeWidgetItem *itemContextMenu;
|
||||||
|
|
||||||
QMap<QtProperty *, QString> propertyToId;
|
QMap<QtProperty *, QString> propertyToId;
|
||||||
QMap<QString, QtVariantProperty *> idToProperty;
|
QMap<QString, QtProperty *> idToProperty;
|
||||||
QTreeWidgetItem *nets_root;
|
QTreeWidgetItem *nets_root;
|
||||||
QTreeWidgetItem *cells_root;
|
QTreeWidgetItem *cells_root;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user