[TD]fix Dim selection fails to clear prev selection

This commit is contained in:
wandererfan
2020-07-25 20:24:18 -04:00
committed by WandererFan
parent a6df94e37f
commit 9dac347fc7
2 changed files with 4 additions and 41 deletions

View File

@@ -1260,31 +1260,6 @@ void MDIViewPage::setTreeToSceneSelect(void)
continue;
}
QGIDatumLabel *dimLabel = dynamic_cast<QGIDatumLabel*>(*it);
if(dimLabel) {
QGraphicsItem*dimParent = dimLabel->QGraphicsItem::parentItem();
if(!dimParent)
continue;
QGIView *dimItem = dynamic_cast<QGIView *>(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<void> (Gui::Selection().addSelection(dimObj->getDocument()->getName(),dimObj->getNameInDocument()));
}
QGMText *mText = dynamic_cast<QGMText*>(*it);
if(mText) {
// Base::Console().Message("MDIVP::setTreeToScene - mTextSelected!\n");

View File

@@ -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;
}