From c897c0ca9afab1d758f5c1b77312e77057a4c814 Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Thu, 26 Jul 2018 16:20:58 +0100 Subject: gui: clickable bels, WIP --- gui/designwidget.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gui/designwidget.cc') diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 7e8e2840..6d2a6d3d 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -495,6 +495,13 @@ QtProperty *DesignWidget::addSubGroup(QtProperty *topItem, const QString &name) return item; } +void DesignWidget::onClickedBel(BelId bel) +{ + QTreeWidgetItem *item = nameToItem[getElementIndex(ElementType::BEL)].value(ctx->getBelName(bel).c_str(ctx)); + treeWidget->setCurrentItem(item); + Q_EMIT selected(getDecals(ElementType::BEL, ctx->getBelName(bel))); +} + void DesignWidget::onItemSelectionChanged() { if (treeWidget->selectedItems().size() == 0) -- cgit v1.2.3 From df908374dc233c23aef0790cbce65aa0a58c81ec Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Thu, 26 Jul 2018 22:40:45 +0100 Subject: gui: implement basic cursor picking --- gui/designwidget.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gui/designwidget.cc') diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 989b55fe..89babda2 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -514,6 +514,13 @@ void DesignWidget::onClickedBel(BelId bel) Q_EMIT selected(getDecals(ElementType::BEL, ctx->getBelName(bel))); } +void DesignWidget::onClickedWire(WireId wire) +{ + QTreeWidgetItem *item = nameToItem[getElementIndex(ElementType::WIRE)].value(ctx->getWireName(wire).c_str(ctx)); + treeWidget->setCurrentItem(item); + Q_EMIT selected(getDecals(ElementType::WIRE, ctx->getWireName(wire))); +} + void DesignWidget::onItemSelectionChanged() { if (treeWidget->selectedItems().size() == 0) -- cgit v1.2.3 From 1fe1b99a5afea488a801f303cb1eda0d9343a1f0 Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Fri, 27 Jul 2018 02:14:40 +0100 Subject: gui: ctrl click to select multiple elements --- gui/designwidget.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'gui/designwidget.cc') diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 34f7a656..674c74c7 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -507,18 +507,18 @@ QtProperty *DesignWidget::addSubGroup(QtProperty *topItem, const QString &name) return item; } -void DesignWidget::onClickedBel(BelId bel) +void DesignWidget::onClickedBel(BelId bel, bool keep) { QTreeWidgetItem *item = nameToItem[getElementIndex(ElementType::BEL)].value(ctx->getBelName(bel).c_str(ctx)); treeWidget->setCurrentItem(item); - Q_EMIT selected(getDecals(ElementType::BEL, ctx->getBelName(bel))); + Q_EMIT selected(getDecals(ElementType::BEL, ctx->getBelName(bel)), keep); } -void DesignWidget::onClickedWire(WireId wire) +void DesignWidget::onClickedWire(WireId wire, bool keep) { QTreeWidgetItem *item = nameToItem[getElementIndex(ElementType::WIRE)].value(ctx->getWireName(wire).c_str(ctx)); treeWidget->setCurrentItem(item); - Q_EMIT selected(getDecals(ElementType::WIRE, ctx->getWireName(wire))); + Q_EMIT selected(getDecals(ElementType::WIRE, ctx->getWireName(wire)), keep); } void DesignWidget::onItemSelectionChanged() @@ -534,7 +534,7 @@ void DesignWidget::onItemSelectionChanged() std::vector d = getDecals(type, value); std::move(d.begin(), d.end(), std::back_inserter(decals)); } - Q_EMIT selected(decals); + Q_EMIT selected(decals, false); return; } @@ -555,7 +555,7 @@ void DesignWidget::onItemSelectionChanged() clearProperties(); IdString c = static_cast(clickItem)->getData(); - Q_EMIT selected(getDecals(type, c)); + Q_EMIT selected(getDecals(type, c), false); if (type == ElementType::BEL) { BelId bel = ctx->getBelByName(c); @@ -847,7 +847,7 @@ void DesignWidget::prepareMenuProperty(const QPoint &pos) std::vector d = getDecals(type, value); std::move(d.begin(), d.end(), std::back_inserter(decals)); } - Q_EMIT selected(decals); + Q_EMIT selected(decals, false); }); menu.addAction(selectAction); -- cgit v1.2.3 From 96608c8d07dd149c033c98172e79d15e7bd2b69c Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Fri, 27 Jul 2018 02:28:01 +0100 Subject: gui: allow selecting pips --- gui/designwidget.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gui/designwidget.cc') diff --git a/gui/designwidget.cc b/gui/designwidget.cc index 674c74c7..d55c84e9 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -2,6 +2,7 @@ * nextpnr -- Next Generation Place and Route * * Copyright (C) 2018 Miodrag Milanovic + * Copyright (C) 2018 Serge Bazanski * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -521,6 +522,13 @@ void DesignWidget::onClickedWire(WireId wire, bool keep) Q_EMIT selected(getDecals(ElementType::WIRE, ctx->getWireName(wire)), keep); } +void DesignWidget::onClickedPip(PipId pip, bool keep) +{ + QTreeWidgetItem *item = nameToItem[getElementIndex(ElementType::PIP)].value(ctx->getPipName(pip).c_str(ctx)); + treeWidget->setCurrentItem(item); + Q_EMIT selected(getDecals(ElementType::PIP, ctx->getPipName(pip)), keep); +} + void DesignWidget::onItemSelectionChanged() { if (treeWidget->selectedItems().size() == 0) -- cgit v1.2.3