From 28e30b2af09a16cc3d58ff8ecd0c742b9be8cf5f Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 22 Aug 2018 18:37:24 +0200 Subject: Added hover on properties as well, fixes #64 --- gui/designwidget.cc | 20 ++++++++++++++++++++ gui/designwidget.h | 1 + 2 files changed, 21 insertions(+) (limited to 'gui') 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(); -- cgit v1.2.3