diff --git a/GUI/Views/MaskWidgets/IShape2DView.cpp b/GUI/Views/MaskWidgets/IShape2DView.cpp index 93911cea17f79630ccad01b42249c78cae09f4e5..b1fde367dba23486f31162ba0eced83651970c81 100644 --- a/GUI/Views/MaskWidgets/IShape2DView.cpp +++ b/GUI/Views/MaskWidgets/IShape2DView.cpp @@ -21,6 +21,15 @@ #include <QMenu> #include <QPainter> +namespace { +bool itemMaskValue(const SessionItem* item) +{ + if (const MaskItem* maskItem = dynamic_cast<const MaskItem*>(item)) + return maskItem->maskValue(); + return false; +} +} // namespace + IShape2DView::IShape2DView(SessionItem* item) : m_adaptor(nullptr), m_block_on_property_change(false) { @@ -57,7 +66,7 @@ void IShape2DView::setSceneAdaptor(const ISceneAdaptor* adaptor) void IShape2DView::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { - const bool isMasked = itemMaskValue(); + const bool isMasked = itemMaskValue(parameterizedItem()); painter->setBrush(MaskEditorHelper::getMaskBrush(isMasked)); painter->setPen(MaskEditorHelper::getMaskPen(isMasked)); painter->setRenderHints(QPainter::Antialiasing); @@ -77,7 +86,7 @@ QPainterPath IShape2DView::maskedShape() const || !relevantMaskTypes.contains((MaskEditorHelper::EViewTypes)maskItem->type())) continue; - const bool isMaskingItem = itemMaskValue(); + const bool isMaskingItem = itemMaskValue(maskItem->parameterizedItem()); const bool isOnTop = maskItem->zValue() > zValue(); if (isMaskingItem || !isOnTop) continue; @@ -94,14 +103,6 @@ QPainterPath IShape2DView::maskedShape() const return mapFromScene(resultingShape); } -bool IShape2DView::itemMaskValue() const -{ - bool maskValue = false; - if (MaskItem* maskItem = dynamic_cast<MaskItem*>(parameterizedItem())) - maskValue = maskItem->maskValue(); - return maskValue; -} - qreal IShape2DView::toSceneX(qreal value) const { return m_adaptor ? m_adaptor->toSceneX(value) : value; diff --git a/GUI/Views/MaskWidgets/IShape2DView.h b/GUI/Views/MaskWidgets/IShape2DView.h index 47a7fdd91df87057c4971258947fdcb1ac7b957a..7902371381f3aac67240b9bf31b584bd97b1880b 100644 --- a/GUI/Views/MaskWidgets/IShape2DView.h +++ b/GUI/Views/MaskWidgets/IShape2DView.h @@ -53,8 +53,6 @@ protected: //! Returns the shape with all masking already applied. QPainterPath maskedShape() const; - bool itemMaskValue() const; - qreal toSceneX(qreal value) const; qreal toSceneY(qreal value) const; diff --git a/GUI/Views/MaskWidgets/LineViews.cpp b/GUI/Views/MaskWidgets/LineViews.cpp index 7d3c253160c901f98bf5dc10cad55e49467b638e..799929420da1b1be2ae6c07dc61e49864a01964f 100644 --- a/GUI/Views/MaskWidgets/LineViews.cpp +++ b/GUI/Views/MaskWidgets/LineViews.cpp @@ -75,7 +75,7 @@ void VerticalLineView::update_view() void VerticalLineView::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { - bool mask_value = itemMaskValue(); + bool mask_value = static_cast<VerticalLineItem*>(m_item)->maskValue(); painter->setBrush(MaskEditorHelper::getMaskBrush(mask_value)); painter->setPen(MaskEditorHelper::getMaskPen(mask_value)); painter->drawRect( @@ -162,7 +162,7 @@ void HorizontalLineView::update_view() void HorizontalLineView::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { - bool mask_value = itemMaskValue(); + bool mask_value = static_cast<HorizontalLineItem*>(m_item)->maskValue(); painter->setBrush(MaskEditorHelper::getMaskBrush(mask_value)); painter->setPen(MaskEditorHelper::getMaskPen(mask_value)); painter->drawRect( diff --git a/GUI/Views/MaskWidgets/MaskEditorActions.cpp b/GUI/Views/MaskWidgets/MaskEditorActions.cpp index c72927f2b3ab01cd5493c20770733e566f07407e..8bc56cef50781313c4e4b89f55812f349fea4371 100644 --- a/GUI/Views/MaskWidgets/MaskEditorActions.cpp +++ b/GUI/Views/MaskWidgets/MaskEditorActions.cpp @@ -124,8 +124,7 @@ void MaskEditorActions::onToggleMaskValueAction() ASSERT(m_selectionModel); for (auto itemIndex : m_selectionModel->selectedIndexes()) { if (MaskItem* item = dynamic_cast<MaskItem*>(m_maskModel->itemForIndex(itemIndex))) { - bool old_value = item->maskValue(); - item->setMaskValue(!old_value); + item->setMaskValue(!item->maskValue()); } } } diff --git a/GUI/Views/MaskWidgets/MaskGraphicsScene.cpp b/GUI/Views/MaskWidgets/MaskGraphicsScene.cpp index 918043196a8606ea6975c10f65762890b1841f94..ce79f7977a3dc83e93baf6bfd92d9c44df0ac6d8 100644 --- a/GUI/Views/MaskWidgets/MaskGraphicsScene.cpp +++ b/GUI/Views/MaskWidgets/MaskGraphicsScene.cpp @@ -640,8 +640,9 @@ void MaskGraphicsScene::processPolygonItem(QGraphicsSceneMouseEvent* event) if (!m_currentItem) { setDrawingInProgress(true); - m_currentItem = m_maskModel->insertItem<PolygonItem>(m_maskContainerIndex, 0); - static_cast<MaskItem*>(m_currentItem)->setMaskValue(m_context.getMaskValue()); + PolygonItem* new_poly = m_maskModel->insertItem<PolygonItem>(m_maskContainerIndex, 0); + new_poly->setMaskValue(m_context.getMaskValue()); + m_currentItem = new_poly; m_selectionModel->clearSelection(); m_selectionModel->select(m_maskModel->indexOfItem(m_currentItem), QItemSelectionModel::Select); diff --git a/GUI/Views/MaskWidgets/PolygonView.cpp b/GUI/Views/MaskWidgets/PolygonView.cpp index 1cef22c58861dc39f384c79e8811f1fbbb0c9f7d..b7ee2109524df3727b510df469006ab91f561082 100644 --- a/GUI/Views/MaskWidgets/PolygonView.cpp +++ b/GUI/Views/MaskWidgets/PolygonView.cpp @@ -114,7 +114,7 @@ void PolygonView::paint(QPainter* painter, const QStyleOptionGraphicsItem* o, QW IShape2DView::paint(painter, o, w); else { ASSERT(m_item); - const bool mask_value = itemMaskValue(); + const bool mask_value = static_cast<PolygonItem*>(m_item)->maskValue(); painter->setRenderHints(QPainter::Antialiasing); painter->setPen(MaskEditorHelper::getMaskPen(mask_value)); painter->drawPolyline(m_polygon.toPolygon());