#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)
{
if (m_rimAnnotation.isNull()) return;
if (!m_rimAnnotation->isActive()) return;
if (!validateAnnotation(m_rimAnnotation)) return;
buildParts(displayXf, false, 0.0);

View File

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

View File

@ -33,6 +33,9 @@ RimLineBasedAnnotation::RimLineBasedAnnotation()
m_appearance = new RimAnnotationLineAppearance();
m_appearance.uiCapability()->setUiTreeHidden(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;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimLineBasedAnnotation::isActive()
{
return m_isActive();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimLineBasedAnnotation::objectToggleField()
{
return &m_isActive;
}

View File

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

View File

@ -35,9 +35,6 @@ RimPolylinesAnnotation::RimPolylinesAnnotation()
{
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();
bool isActive();
virtual cvf::ref<RigPolyLinesData> polyLinesData() = 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_InitFieldNoDefault(&m_polyLinesFileName, "PolyLineFilePath", "File Path", "", "", "");
m_polyLinesFileName.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
CAF_PDM_InitFieldNoDefault(&m_polyLinesFileName, "PolyLineFilePath", "File", "", "", "");
CAF_PDM_InitField(&m_userDescription, "PolyLineDescription", QString(""), "Name", "", "", "");
}

View File

@ -101,23 +101,3 @@ caf::PdmFieldHandle* RimReachCircleAnnotation::userDescriptionField()
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;
caf::PdmFieldHandle* userDescriptionField() override;
private:
std::vector<RimGridView*> gridViewsContainingAnnotations() const;
private:
caf::PdmField<Vec3d> m_centerPointXyd;
caf::PdmField<double> m_radius;

View File

@ -21,6 +21,7 @@
#include "RimAnnotationInViewCollection.h"
#include "RimGridView.h"
#include "RimProject.h"
#include "RimAnnotationCollection.h"
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_labelPointXyd, "LabelPointXyd", Vec3d::ZERO, "Label Point", "", "", "");
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& newValue)
{
auto views = gridViewsContainingAnnotations();
if (!views.empty())
{
if (changedField == &m_text || changedField == &m_anchorPointXyd || changedField == &m_labelPointXyd)
{
for (auto& view : views)
{
view->scheduleCreateDisplayModelAndRedraw();
}
}
}
RimAnnotationCollection* annColl = nullptr;
this->firstAncestorOrThisOfTypeAsserted(annColl);
annColl->scheduleRedrawOfRelevantViews();
}
//--------------------------------------------------------------------------------------------------
@ -115,22 +121,20 @@ caf::PdmFieldHandle* RimTextAnnotation::userDescriptionField()
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
std::vector<RimGridView*> RimTextAnnotation::gridViewsContainingAnnotations() const
bool RimTextAnnotation::isActive()
{
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;
return m_isActive();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimTextAnnotation::objectToggleField()
{
return &m_isActive;
}

View File

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