made current properties read only

This commit is contained in:
Miodrag Milanovic 2018-07-05 20:35:47 +02:00
parent d119206ffd
commit f0923b1b27
2 changed files with 9 additions and 6 deletions

View File

@ -74,6 +74,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);
variantFactory = new QtVariantEditorFactory(); variantFactory = new QtVariantEditorFactory();
propertyEditor = new QtTreePropertyBrowser(); propertyEditor = new QtTreePropertyBrowser();
propertyEditor->setFactoryForManager(variantManager, variantFactory); propertyEditor->setFactoryForManager(variantManager, variantFactory);
@ -101,6 +102,7 @@ DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr), net
DesignWidget::~DesignWidget() DesignWidget::~DesignWidget()
{ {
delete variantManager; delete variantManager;
delete readOnlyManager;
delete variantFactory; delete variantFactory;
delete propertyEditor; delete propertyEditor;
} }
@ -282,38 +284,38 @@ void DesignWidget::onItemClicked(QTreeWidgetItem *item, int pos)
IdString c = static_cast<IdStringTreeItem *>(item)->getData(); IdString c = static_cast<IdStringTreeItem *>(item)->getData();
BelType type = ctx->getBelType(ctx->getBelByName(c)); BelType type = ctx->getBelType(ctx->getBelByName(c));
QtVariantProperty *topItem = variantManager->addProperty(QVariant::String, QString("Name")); QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
topItem->setValue(QString(c.c_str(ctx))); topItem->setValue(QString(c.c_str(ctx)));
addProperty(topItem, QString("Name")); addProperty(topItem, QString("Name"));
QtVariantProperty *typeItem = variantManager->addProperty(QVariant::String, QString("Type")); QtVariantProperty *typeItem = readOnlyManager->addProperty(QVariant::String, QString("Type"));
typeItem->setValue(QString(ctx->belTypeToId(type).c_str(ctx))); typeItem->setValue(QString(ctx->belTypeToId(type).c_str(ctx)));
addProperty(typeItem, QString("Type")); addProperty(typeItem, QString("Type"));
} else if (type == ElementType::WIRE) { } else if (type == ElementType::WIRE) {
IdString c = static_cast<IdStringTreeItem *>(item)->getData(); IdString c = static_cast<IdStringTreeItem *>(item)->getData();
QtVariantProperty *topItem = variantManager->addProperty(QVariant::String, QString("Name")); QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
topItem->setValue(QString(c.c_str(ctx))); topItem->setValue(QString(c.c_str(ctx)));
addProperty(topItem, QString("Name")); addProperty(topItem, QString("Name"));
} else if (type == ElementType::PIP) { } else if (type == ElementType::PIP) {
IdString c = static_cast<IdStringTreeItem *>(item)->getData(); IdString c = static_cast<IdStringTreeItem *>(item)->getData();
QtVariantProperty *topItem = variantManager->addProperty(QVariant::String, QString("Name")); QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
topItem->setValue(QString(c.c_str(ctx))); topItem->setValue(QString(c.c_str(ctx)));
addProperty(topItem, QString("Name")); addProperty(topItem, QString("Name"));
} else if (type == ElementType::NET) { } else if (type == ElementType::NET) {
IdString c = static_cast<IdStringTreeItem *>(item)->getData(); IdString c = static_cast<IdStringTreeItem *>(item)->getData();
QtVariantProperty *topItem = variantManager->addProperty(QVariant::String, QString("Name")); QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
topItem->setValue(QString(c.c_str(ctx))); topItem->setValue(QString(c.c_str(ctx)));
addProperty(topItem, QString("Name")); addProperty(topItem, QString("Name"));
} else if (type == ElementType::CELL) { } else if (type == ElementType::CELL) {
IdString c = static_cast<IdStringTreeItem *>(item)->getData(); IdString c = static_cast<IdStringTreeItem *>(item)->getData();
QtVariantProperty *topItem = variantManager->addProperty(QVariant::String, QString("Name")); QtVariantProperty *topItem = readOnlyManager->addProperty(QVariant::String, QString("Name"));
topItem->setValue(QString(c.c_str(ctx))); topItem->setValue(QString(c.c_str(ctx)));
addProperty(topItem, QString("Name")); addProperty(topItem, QString("Name"));
} }

View File

@ -57,6 +57,7 @@ class DesignWidget : public QWidget
QTreeWidget *treeWidget; QTreeWidget *treeWidget;
QtVariantPropertyManager *variantManager; QtVariantPropertyManager *variantManager;
QtVariantPropertyManager *readOnlyManager;
QtVariantEditorFactory *variantFactory; QtVariantEditorFactory *variantFactory;
QtTreePropertyBrowser *propertyEditor; QtTreePropertyBrowser *propertyEditor;
QTreeWidgetItem *itemContextMenu; QTreeWidgetItem *itemContextMenu;