diff options
author | Sergiusz Bazanski <q3k@q3k.org> | 2018-07-26 22:41:17 +0100 |
---|---|---|
committer | Sergiusz Bazanski <q3k@q3k.org> | 2018-07-26 22:41:17 +0100 |
commit | d2c38075980238012a5d999c8f1e59c27174444a (patch) | |
tree | 6704d1ae62d7e7780e605083c9da249cbc88df6f | |
parent | 402be30268bbd6930c9f76547f8dab3e304005c3 (diff) | |
parent | e5acd80247264fed41dfc1e7e07efa8a10a67fae (diff) | |
download | nextpnr-d2c38075980238012a5d999c8f1e59c27174444a.tar.gz nextpnr-d2c38075980238012a5d999c8f1e59c27174444a.tar.bz2 nextpnr-d2c38075980238012a5d999c8f1e59c27174444a.zip |
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/clickity
-rw-r--r-- | ecp5/arch.h | 2 | ||||
-rw-r--r-- | ecp5/bitstream.cc | 2 | ||||
-rw-r--r-- | gui/designwidget.cc | 23 |
3 files changed, 17 insertions, 10 deletions
diff --git a/ecp5/arch.h b/ecp5/arch.h index d9d29c76..b6aac9cf 100644 --- a/ecp5/arch.h +++ b/ecp5/arch.h @@ -752,7 +752,7 @@ struct Arch : BaseCtx return chip_info->tiletype_names[locInfo(pip)->pip_data[pip.index].tile_type].get(); } - int8_t getPipType(PipId pip) const { return locInfo(pip)->pip_data[pip.index].pip_type; } + int8_t getPipClass(PipId pip) const { return locInfo(pip)->pip_data[pip.index].pip_type; } BelId getPackagePinBel(const std::string &pin) const; std::string getBelPackagePin(BelId bel) const; diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc index f87b7038..df9b12d5 100644 --- a/ecp5/bitstream.cc +++ b/ecp5/bitstream.cc @@ -174,7 +174,7 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex // Add all set, configurable pips to the config for (auto pip : ctx->getPips()) { if (ctx->getBoundPipNet(pip) != IdString()) { - if (ctx->getPipType(pip) == 0) { // ignore fixed pips + if (ctx->getPipClass(pip) == 0) { // ignore fixed pips std::string tile = empty_chip.get_tile_by_position_and_type(pip.location.y, pip.location.x, ctx->getPipTiletype(pip)); std::string source = get_trellis_wirename(ctx, pip.location, ctx->getPipSrcWire(pip)); diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 89babda2..34f7a656 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -838,6 +838,19 @@ void DesignWidget::prepareMenuProperty(const QPoint &pos) }
QMenu menu(this);
+ QAction *selectAction = new QAction("&Select", this);
+ connect(selectAction, &QAction::triggered, this, [this, items] {
+ std::vector<DecalXY> decals;
+ for (auto clickItem : items) {
+ IdString value = static_cast<IdStringTreeItem *>(clickItem)->getData();
+ ElementType type = static_cast<ElementTreeItem *>(clickItem)->getType();
+ std::vector<DecalXY> d = getDecals(type, value);
+ std::move(d.begin(), d.end(), std::back_inserter(decals));
+ }
+ Q_EMIT selected(decals);
+ });
+ menu.addAction(selectAction);
+
QMenu *subMenu = menu.addMenu("Highlight");
QActionGroup *group = new QActionGroup(this);
group->setExclusive(true);
@@ -890,14 +903,8 @@ void DesignWidget::onItemDoubleClicked(QTreeWidgetItem *item, int column) ElementType type = getElementTypeByName(selectedProperty->propertyId());
QString value = selectedProperty->valueText();
int index = getElementIndex(type);
- switch (type) {
- case ElementType::NONE:
- return;
- default: {
- if (nameToItem[index].contains(value))
- treeWidget->setCurrentItem(nameToItem[index].value(value));
- } break;
- }
+ if (type != ElementType::NONE && nameToItem[index].contains(value))
+ treeWidget->setCurrentItem(nameToItem[index].value(value));
}
NEXTPNR_NAMESPACE_END
|