Skip to content
Snippets Groups Projects
Commit 84f1a7b3 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov Committed by Wuttke, Joachim
Browse files

restore visibility after applying masks

parent 1ed90ece
No related branches found
No related tags found
No related merge requests found
...@@ -265,6 +265,7 @@ void MaskItem::readFrom(QXmlStreamReader* r) ...@@ -265,6 +265,7 @@ void MaskItem::readFrom(QXmlStreamReader* r)
// is visible? // is visible?
} else if (tag == Tag::IsVisible) { } else if (tag == Tag::IsVisible) {
XML::readAttribute(r, XML::Attrib::value, &m_isVisible); XML::readAttribute(r, XML::Attrib::value, &m_isVisible);
m_wasVisible = m_isVisible;
XML::gotoEndElementOfTag(r, tag); XML::gotoEndElementOfTag(r, tag);
} else } else
......
...@@ -54,6 +54,9 @@ public: ...@@ -54,6 +54,9 @@ public:
bool isVisibleValue() const; bool isVisibleValue() const;
void setIsVisibleValue(bool visible); void setIsVisibleValue(bool visible);
bool wasVisible() const { return m_wasVisible; }
void setWasVisible(bool v) { m_wasVisible = v; }
virtual void writeTo(QXmlStreamWriter* w) const; virtual void writeTo(QXmlStreamWriter* w) const;
virtual void readFrom(QXmlStreamReader* r); virtual void readFrom(QXmlStreamReader* r);
...@@ -62,6 +65,7 @@ protected: ...@@ -62,6 +65,7 @@ protected:
QString m_maskName = "nameless by default"; QString m_maskName = "nameless by default";
bool m_maskValue = true; bool m_maskValue = true;
bool m_isVisible = true; bool m_isVisible = true;
bool m_wasVisible = m_isVisible; // do not serialize
}; };
class RectangleItem : public MaskItem { class RectangleItem : public MaskItem {
......
...@@ -82,9 +82,9 @@ void MaskEditorCanvas::onPresentationTypeRequest(MaskEditorFlags::PresentationTy ...@@ -82,9 +82,9 @@ void MaskEditorCanvas::onPresentationTypeRequest(MaskEditorFlags::PresentationTy
m_resultsPresenter->updatePresenter(presentationType); m_resultsPresenter->updatePresenter(presentationType);
if (auto* container = m_intensityDataItem->maskContainerItem()) { if (auto* container = m_intensityDataItem->maskContainerItem()) {
bool isVisible = presentationType.testFlag(MaskEditorFlags::MASK_EDITOR); bool tempVisible = presentationType.testFlag(MaskEditorFlags::MASK_EDITOR);
for (MaskItem* mask : container->maskItems()) for (MaskItem* mask : container->maskItems())
mask->setIsVisibleValue(isVisible); mask->setIsVisibleValue(tempVisible && mask->wasVisible());
} }
} }
......
...@@ -181,6 +181,7 @@ void MaskEditorPropertyPanel::createMaskEditorUI() ...@@ -181,6 +181,7 @@ void MaskEditorPropertyPanel::createMaskEditorUI()
const auto visibilityValueSetter = [this, maskItem](bool b) { const auto visibilityValueSetter = [this, maskItem](bool b) {
m_inhibitSelectionChange = true; m_inhibitSelectionChange = true;
maskItem->setIsVisibleValue(b); maskItem->setIsVisibleValue(b);
maskItem->setWasVisible(b);
m_inhibitSelectionChange = false; m_inhibitSelectionChange = false;
}; };
addMaskCheckBox("Show", visibilityValueGetter, visibilityValueSetter); addMaskCheckBox("Show", visibilityValueGetter, visibilityValueSetter);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment