aboutsummaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-08-22 18:37:24 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-08-22 18:37:24 +0200
commit28e30b2af09a16cc3d58ff8ecd0c742b9be8cf5f (patch)
tree0a23c90bfbe9ebd636163a4214256dc4cf305d2c /gui
parentad84df7974a82d657938a226da2ceace150cc068 (diff)
downloadnextpnr-28e30b2af09a16cc3d58ff8ecd0c742b9be8cf5f.tar.gz
nextpnr-28e30b2af09a16cc3d58ff8ecd0c742b9be8cf5f.tar.bz2
nextpnr-28e30b2af09a16cc3d58ff8ecd0c742b9be8cf5f.zip
Added hover on properties as well, fixes #64
Diffstat (limited to 'gui')
-rw-r--r--gui/designwidget.cc20
-rw-r--r--gui/designwidget.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/gui/designwidget.cc b/gui/designwidget.cc
index bd1c6c5a..c49df085 100644
--- a/gui/designwidget.cc
+++ b/gui/designwidget.cc
@@ -69,6 +69,7 @@ DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr), sel
propertyEditor->show();
propertyEditor->treeWidget()->setContextMenuPolicy(Qt::CustomContextMenu);
propertyEditor->treeWidget()->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ propertyEditor->treeWidget()->viewport()->setMouseTracking(true);
searchEdit = new QLineEdit();
searchEdit->setClearButtonEnabled(true);
@@ -177,6 +178,7 @@ DesignWidget::DesignWidget(QWidget *parent) : QWidget(parent), ctx(nullptr), sel
connect(propertyEditor->treeWidget(), &QTreeWidget::customContextMenuRequested, this,
&DesignWidget::prepareMenuProperty);
connect(propertyEditor->treeWidget(), &QTreeWidget::itemDoubleClicked, this, &DesignWidget::onItemDoubleClicked);
+ connect(propertyEditor, &QtTreePropertyBrowser::hoverPropertyChanged, this, &DesignWidget::onHoverPropertyChanged);
connect(treeView, &TreeView::customContextMenuRequested, this, &DesignWidget::prepareMenuTree);
connect(treeView, &TreeView::doubleClicked, this, &DesignWidget::onDoubleClicked);
@@ -832,4 +834,22 @@ void DesignWidget::onHoverIndexChanged(QModelIndex index)
Q_EMIT hover(DecalXY());
}
+void DesignWidget::onHoverPropertyChanged(QtBrowserItem *item)
+{
+ if (item!=nullptr) {
+ QtProperty *selectedProperty = item->property();
+ ElementType type = getElementTypeByName(selectedProperty->propertyId());
+ if (type != ElementType::NONE) {
+ IdString value = ctx->id(selectedProperty->valueText().toStdString());
+ if (value!=IdString()) {
+ auto node = treeModel->nodeForIdType(type, value);
+ if (node) {
+ Q_EMIT hover(getDecals((*node)->type(), (*node)->id()).at(0));
+ return;
+ }
+ }
+ }
+ }
+ Q_EMIT hover(DecalXY());
+}
NEXTPNR_NAMESPACE_END
diff --git a/gui/designwidget.h b/gui/designwidget.h
index 37791aa1..91da556a 100644
--- a/gui/designwidget.h
+++ b/gui/designwidget.h
@@ -83,6 +83,7 @@ class DesignWidget : public QWidget
void onDoubleClicked(const QModelIndex &index);
void onSearchInserted();
void onHoverIndexChanged(QModelIndex index);
+ void onHoverPropertyChanged(QtBrowserItem *item);
public Q_SLOTS:
void newContext(Context *ctx);
void updateTree();