aboutsummaryrefslogtreecommitdiffstats
path: root/gui/fpgaviewwidget.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-07-14 19:44:37 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-07-14 19:44:37 +0200
commit8d1996cae99ff80a2d9390b94db54217ed1d8726 (patch)
tree432025dff841a5ee71100897f9d4afb1021decdd /gui/fpgaviewwidget.cc
parentf339f796a1bd7e98be184085e831e9d44ea85dd1 (diff)
downloadnextpnr-8d1996cae99ff80a2d9390b94db54217ed1d8726.tar.gz
nextpnr-8d1996cae99ff80a2d9390b94db54217ed1d8726.tar.bz2
nextpnr-8d1996cae99ff80a2d9390b94db54217ed1d8726.zip
display selected object from tree
Diffstat (limited to 'gui/fpgaviewwidget.cc')
-rw-r--r--gui/fpgaviewwidget.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/gui/fpgaviewwidget.cc b/gui/fpgaviewwidget.cc
index 21ce5b67..f8fefd97 100644
--- a/gui/fpgaviewwidget.cc
+++ b/gui/fpgaviewwidget.cc
@@ -241,7 +241,7 @@ void LineShader::draw(const LineShaderData &line, const QColor &color, const flo
vao_.release();
}
-FPGAViewWidget::FPGAViewWidget(QWidget *parent) : QOpenGLWidget(parent), lineShader_(this), zoom_(500.f), ctx_(nullptr)
+FPGAViewWidget::FPGAViewWidget(QWidget *parent) : QOpenGLWidget(parent), lineShader_(this), zoom_(500.f), ctx_(nullptr), selectedItemsChanged(false)
{
backgroundColor_ = QColor("#000000");
gridColor_ = QColor("#333");
@@ -249,6 +249,7 @@ FPGAViewWidget::FPGAViewWidget(QWidget *parent) : QOpenGLWidget(parent), lineSha
gHiddenColor_ = QColor("#606060");
gInactiveColor_ = QColor("#303030");
gActiveColor_ = QColor("#f0f0f0");
+ gSelectedColor_ = QColor("#ff6600");
frameColor_ = QColor("#0066ba");
auto fmt = format();
@@ -364,15 +365,32 @@ void FPGAViewWidget::paintGL()
// Draw Frame Graphics.
drawDecal(proxy, shaders_, ctx_->getFrameDecal());
}
+
+ if (selectedItemsChanged)
+ {
+ selectedItemsChanged = false;
+ selectedShader_.clear();
+ for (auto decal : selectedItems_) {
+ drawDecal(proxy, selectedShader_, decal);
+ }
+ }
}
lineShader_.draw(shaders_[0], gFrameColor_, thick11Px, matrix);
lineShader_.draw(shaders_[1], gHiddenColor_, thick11Px, matrix);
lineShader_.draw(shaders_[2], gInactiveColor_, thick11Px, matrix);
lineShader_.draw(shaders_[3], gActiveColor_, thick11Px, matrix);
+ lineShader_.draw(selectedShader_, gSelectedColor_, thick11Px, matrix);
//lineShader_.draw(frame, matrix);
}
+void FPGAViewWidget::onSelectedArchItem(std::vector<DecalXY> decals)
+{
+ selectedItems_ = decals;
+ selectedItemsChanged = true;
+ update();
+}
+
void FPGAViewWidget::resizeGL(int width, int height) {}
void FPGAViewWidget::mousePressEvent(QMouseEvent *event) { lastPos_ = event->pos(); }