From 9dac347fc7f51251e2aed7db73b0fb11a2cbcb18 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Sat, 25 Jul 2020 20:24:18 -0400 Subject: [PATCH] [TD]fix Dim selection fails to clear prev selection --- src/Mod/TechDraw/Gui/MDIViewPage.cpp | 25 ----------------------- src/Mod/TechDraw/Gui/QGIViewDimension.cpp | 20 ++++-------------- 2 files changed, 4 insertions(+), 41 deletions(-) diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index 8c36b09b67..b4cdbfe83c 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -1260,31 +1260,6 @@ void MDIViewPage::setTreeToSceneSelect(void) continue; } - QGIDatumLabel *dimLabel = dynamic_cast(*it); - if(dimLabel) { - QGraphicsItem*dimParent = dimLabel->QGraphicsItem::parentItem(); - if(!dimParent) - continue; - - QGIView *dimItem = dynamic_cast(dimParent); - - if(!dimItem) - continue; - - TechDraw::DrawView *dimObj = dimItem->getViewObject(); - if (!dimObj) { - continue; - } - const char* name = dimObj->getNameInDocument(); - if (!name) { //can happen during undo/redo if Dim is selected??? - //Base::Console().Log("INFO - MDIVP::sceneSelectionChanged - dimObj name is null!\n"); - continue; - } - - //bool accepted = - static_cast (Gui::Selection().addSelection(dimObj->getDocument()->getName(),dimObj->getNameInDocument())); - } - QGMText *mText = dynamic_cast(*it); if(mText) { // Base::Console().Message("MDIVP::setTreeToScene - mTextSelected!\n"); diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp index 5eab949ef7..5f4a80839e 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp @@ -104,7 +104,6 @@ QGIDatumLabel::QGIDatumLabel() setFlag(ItemIsMovable, true); setFlag(ItemIsSelectable, true); setAcceptHoverEvents(true); - setFiltersChildEvents(true); m_dimText = new QGCustomText(); m_dimText->setParentItem(this); @@ -125,8 +124,10 @@ QVariant QGIDatumLabel::itemChange(GraphicsItemChange change, const QVariant &va { if (change == ItemSelectedHasChanged && scene()) { if(isSelected()) { + Q_EMIT selected(true); setPrettySel(); } else { + Q_EMIT selected(false); setPrettyNormal(); } update(); @@ -433,8 +434,6 @@ QGIViewDimension::QGIViewDimension() : { setHandlesChildEvents(false); setFlag(QGraphicsItem::ItemIsMovable, false); - setFlag(QGraphicsItem::ItemIsSelectable, false); - setAcceptHoverEvents(false); setCacheMode(QGraphicsItem::NoCache); datumLabel = new QGIDatumLabel(); @@ -457,9 +456,6 @@ QGIViewDimension::QGIViewDimension() : dimLines->setZValue(ZVALUE::DIMENSION); dimLines->setStyle(Qt::SolidLine); - //centerMark = new QGICMark(); - //addToGroup(centerMark); - // connecting the needed slots and signals QObject::connect( datumLabel, SIGNAL(dragging(bool)), @@ -489,7 +485,6 @@ QVariant QGIViewDimension::itemChange(GraphicsItemChange change, const QVariant { if (change == ItemSelectedHasChanged && scene()) { if(isSelected()) { - setSelected(false); datumLabel->setSelected(true); } else { datumLabel->setSelected(false); @@ -512,13 +507,8 @@ void QGIViewDimension::setGroupSelection(bool b) void QGIViewDimension::select(bool state) { -// Base::Console().Message("QGIVD::select(%d)\n", state); - if (state) { -// setPrettySel(); - } else { -// setPrettyNormal(); - } -// draw(); + setSelected(state); + draw(); } //surrogate for hover enter (true), hover leave (false) events @@ -671,7 +661,6 @@ QString QGIViewDimension::getLabelText(void) { QString result; QString first = datumLabel->getDimText()->toPlainText(); -// QString second = datumLabel->getTolText()->toPlainText(); QString second = datumLabel->getTolTextOver()->toPlainText(); QString third = datumLabel->getTolTextUnder()->toPlainText(); if (second.length() > third.length()) { @@ -680,7 +669,6 @@ QString QGIViewDimension::getLabelText(void) result = first + third; } -// result = first + second; return result; }