#3776 Add toggle to text and reach circles annotations

This commit is contained in:
Jacob Støren 2018-11-28 14:18:10 +01:00
parent 30b34bbe67
commit 04754d394f
11 changed files with 71 additions and 70 deletions

View File

@ -124,6 +124,8 @@ void RivReachCircleAnnotationPartMgr::appendDynamicGeometryPartsToModel(cvf::Mod
const caf::DisplayCoordTransform* displayXf) const caf::DisplayCoordTransform* displayXf)
{ {
if (m_rimAnnotation.isNull()) return; if (m_rimAnnotation.isNull()) return;
if (!m_rimAnnotation->isActive()) return;
if (!validateAnnotation(m_rimAnnotation)) return; if (!validateAnnotation(m_rimAnnotation)) return;
buildParts(displayXf, false, 0.0); buildParts(displayXf, false, 0.0);

View File

@ -155,6 +155,8 @@ void RivTextAnnotationPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasic
const caf::DisplayCoordTransform * displayXf) const caf::DisplayCoordTransform * displayXf)
{ {
if (m_rimAnnotation.isNull()) return; if (m_rimAnnotation.isNull()) return;
if (!m_rimAnnotation->isActive()) return;
if (!validateAnnotation(m_rimAnnotation)) return; if (!validateAnnotation(m_rimAnnotation)) return;
buildParts(displayXf, false, 0.0); buildParts(displayXf, false, 0.0);

View File

@ -33,6 +33,9 @@ RimLineBasedAnnotation::RimLineBasedAnnotation()
m_appearance = new RimAnnotationLineAppearance(); m_appearance = new RimAnnotationLineAppearance();
m_appearance.uiCapability()->setUiTreeHidden(true); m_appearance.uiCapability()->setUiTreeHidden(true);
m_appearance.uiCapability()->setUiTreeChildrenHidden(true); m_appearance.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitField(&m_isActive, "IsActive", true, "Is Active", "", "", "");
m_isActive.uiCapability()->setUiHidden(true);
} }
@ -43,3 +46,21 @@ RimAnnotationLineAppearance* RimLineBasedAnnotation::appearance() const
{ {
return m_appearance; return m_appearance;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimLineBasedAnnotation::isActive()
{
return m_isActive();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimLineBasedAnnotation::objectToggleField()
{
return &m_isActive;
}

View File

@ -21,6 +21,7 @@
#include "cafPdmObject.h" #include "cafPdmObject.h"
#include "cafPdmChildField.h" #include "cafPdmChildField.h"
#include "cafPdmField.h"
class RimGridView; class RimGridView;
class RimAnnotationLineAppearance; class RimAnnotationLineAppearance;
@ -37,6 +38,14 @@ public:
RimLineBasedAnnotation(); RimLineBasedAnnotation();
RimAnnotationLineAppearance* appearance() const; RimAnnotationLineAppearance* appearance() const;
bool isActive();
protected:
virtual caf::PdmFieldHandle* objectToggleField() override;
private:
caf::PdmField<bool> m_isActive;
private: private:
caf::PdmChildField<RimAnnotationLineAppearance*> m_appearance; caf::PdmChildField<RimAnnotationLineAppearance*> m_appearance;
}; };

View File

@ -35,9 +35,6 @@ RimPolylinesAnnotation::RimPolylinesAnnotation()
{ {
CAF_PDM_InitObject("PolylineAnnotation", ":/WellCollection.png", "", ""); CAF_PDM_InitObject("PolylineAnnotation", ":/WellCollection.png", "", "");
CAF_PDM_InitField(&m_isActive, "IsActive", true, "Is Active", "", "", "");
m_isActive.uiCapability()->setUiHidden(true);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -48,12 +45,3 @@ RimPolylinesAnnotation::~RimPolylinesAnnotation()
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimPolylinesAnnotation::isActive()
{
return m_isActive();
}

View File

@ -39,11 +39,8 @@ public:
RimPolylinesAnnotation(); RimPolylinesAnnotation();
~RimPolylinesAnnotation(); ~RimPolylinesAnnotation();
bool isActive();
virtual cvf::ref<RigPolyLinesData> polyLinesData() = 0; virtual cvf::ref<RigPolyLinesData> polyLinesData() = 0;
virtual bool isEmpty() = 0; virtual bool isEmpty() = 0;
private:
caf::PdmField<bool> m_isActive;
}; };

View File

@ -37,8 +37,7 @@ RimPolylinesFromFileAnnotation::RimPolylinesFromFileAnnotation()
{ {
CAF_PDM_InitObject("PolyLines Annotation", ":/WellCollection.png", "", ""); CAF_PDM_InitObject("PolyLines Annotation", ":/WellCollection.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_polyLinesFileName, "PolyLineFilePath", "File Path", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_polyLinesFileName, "PolyLineFilePath", "File", "", "", "");
m_polyLinesFileName.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
CAF_PDM_InitField(&m_userDescription, "PolyLineDescription", QString(""), "Name", "", "", ""); CAF_PDM_InitField(&m_userDescription, "PolyLineDescription", QString(""), "Name", "", "", "");
} }

View File

@ -101,23 +101,3 @@ caf::PdmFieldHandle* RimReachCircleAnnotation::userDescriptionField()
return &m_name; return &m_name;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimGridView*> RimReachCircleAnnotation::gridViewsContainingAnnotations() const
{
std::vector<RimGridView*> views;
RimProject* project = nullptr;
this->firstAncestorOrThisOfType(project);
if (!project) return views;
std::vector<RimGridView*> visibleGridViews;
project->allVisibleGridViews(visibleGridViews);
for (auto& gridView : visibleGridViews)
{
if (gridView->annotationCollection()->isActive()) views.push_back(gridView);
}
return views;
}

View File

@ -64,9 +64,6 @@ protected:
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
caf::PdmFieldHandle* userDescriptionField() override; caf::PdmFieldHandle* userDescriptionField() override;
private:
std::vector<RimGridView*> gridViewsContainingAnnotations() const;
private: private:
caf::PdmField<Vec3d> m_centerPointXyd; caf::PdmField<Vec3d> m_centerPointXyd;
caf::PdmField<double> m_radius; caf::PdmField<double> m_radius;

View File

@ -21,6 +21,7 @@
#include "RimAnnotationInViewCollection.h" #include "RimAnnotationInViewCollection.h"
#include "RimGridView.h" #include "RimGridView.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimAnnotationCollection.h"
CAF_PDM_SOURCE_INIT(RimTextAnnotation, "RimTextAnnotation"); CAF_PDM_SOURCE_INIT(RimTextAnnotation, "RimTextAnnotation");
@ -36,6 +37,18 @@ RimTextAnnotation::RimTextAnnotation()
CAF_PDM_InitField(&m_anchorPointXyd, "AnchorPointXyd", Vec3d::ZERO, "Anchor Point", "", "", ""); CAF_PDM_InitField(&m_anchorPointXyd, "AnchorPointXyd", Vec3d::ZERO, "Anchor Point", "", "", "");
CAF_PDM_InitField(&m_labelPointXyd, "LabelPointXyd", Vec3d::ZERO, "Label Point", "", "", ""); CAF_PDM_InitField(&m_labelPointXyd, "LabelPointXyd", Vec3d::ZERO, "Label Point", "", "", "");
CAF_PDM_InitField(&m_text, "Text", QString("(New text)"), "Text", "", "", ""); CAF_PDM_InitField(&m_text, "Text", QString("(New text)"), "Text", "", "", "");
CAF_PDM_InitField(&m_isActive, "IsActive", true, "Is Active", "", "", "");
m_isActive.uiCapability()->setUiHidden(true);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimTextAnnotation::~RimTextAnnotation()
{
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -93,17 +106,10 @@ void RimTextAnnotation::fieldChangedByUi(const caf::PdmFieldHandle* changedField
const QVariant& oldValue, const QVariant& oldValue,
const QVariant& newValue) const QVariant& newValue)
{ {
auto views = gridViewsContainingAnnotations(); RimAnnotationCollection* annColl = nullptr;
if (!views.empty()) this->firstAncestorOrThisOfTypeAsserted(annColl);
{
if (changedField == &m_text || changedField == &m_anchorPointXyd || changedField == &m_labelPointXyd) annColl->scheduleRedrawOfRelevantViews();
{
for (auto& view : views)
{
view->scheduleCreateDisplayModelAndRedraw();
}
}
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -115,22 +121,20 @@ caf::PdmFieldHandle* RimTextAnnotation::userDescriptionField()
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<RimGridView*> RimTextAnnotation::gridViewsContainingAnnotations() const bool RimTextAnnotation::isActive()
{ {
std::vector<RimGridView*> views; return m_isActive();
RimProject* project = nullptr;
this->firstAncestorOrThisOfType(project);
if (!project) return views;
std::vector<RimGridView*> visibleGridViews;
project->allVisibleGridViews(visibleGridViews);
for (auto& gridView : visibleGridViews)
{
if (gridView->annotationCollection()->isActive()) views.push_back(gridView);
}
return views;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimTextAnnotation::objectToggleField()
{
return &m_isActive;
}

View File

@ -51,23 +51,25 @@ class RimTextAnnotation : public caf::PdmObject
public: public:
RimTextAnnotation(); RimTextAnnotation();
~RimTextAnnotation();
Vec3d anchorPoint() const; Vec3d anchorPoint() const;
Vec3d labelPoint() const; Vec3d labelPoint() const;
void setText(const QString& text); void setText(const QString& text);
const QString& text() const; const QString& text() const;
bool isActive();
protected: protected:
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
caf::PdmFieldHandle* userDescriptionField() override; caf::PdmFieldHandle* userDescriptionField() override;
virtual caf::PdmFieldHandle* objectToggleField() override;
private:
std::vector<RimGridView*> gridViewsContainingAnnotations() const;
private: private:
caf::PdmField<Vec3d> m_anchorPointXyd; caf::PdmField<Vec3d> m_anchorPointXyd;
caf::PdmField<Vec3d> m_labelPointXyd; caf::PdmField<Vec3d> m_labelPointXyd;
caf::PdmField<QString> m_text; caf::PdmField<QString> m_text;
caf::PdmField<bool> m_isActive;
}; };