#3814 Annotations. Multiline text annotation support

This commit is contained in:
Bjørn Erik Jensen
2018-12-05 15:27:07 +01:00
parent 7b9520a8cc
commit 9d4bcd457d
2 changed files with 22 additions and 2 deletions

View File

@@ -27,6 +27,7 @@
#include "AnnotationCommands/RicTextAnnotation3dEditor.h"
#include "cafPdmUiTextEditor.h"
CAF_PDM_SOURCE_INIT(RimTextAnnotation, "RimTextAnnotation");
@@ -43,12 +44,19 @@ 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", "", "", "");
m_text.uiCapability()->setUiEditorTypeName(caf::PdmUiTextEditor::uiEditorTypeName());
CAF_PDM_InitField(&m_isActive, "IsActive", true, "Is Active", "", "", "");
m_isActive.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_textAppearance, "TextAppearance", "Text Appearance", "", "", "");
m_textAppearance = new RimAnnotationTextAppearance();
CAF_PDM_InitFieldNoDefault(&m_nameProxy, "NameProxy", "Name Proxy", "", "", "");
m_nameProxy.registerGetMethod(this, &RimTextAnnotation::extractNameFromText);
m_nameProxy.uiCapability()->setUiReadOnly(true);
m_nameProxy.xmlCapability()->disableIO();
}
//--------------------------------------------------------------------------------------------------
@@ -146,7 +154,7 @@ void RimTextAnnotation::fieldChangedByUi(const caf::PdmFieldHandle* changedField
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimTextAnnotation::userDescriptionField()
{
return &m_text;
return &m_nameProxy;
}
//--------------------------------------------------------------------------------------------------
@@ -187,5 +195,12 @@ caf::PdmFieldHandle* RimTextAnnotation::objectToggleField()
return &m_isActive;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimTextAnnotation::extractNameFromText() const
{
return m_text().split("\n").front();
}

View File

@@ -29,6 +29,7 @@
#include "cafPdmFieldCvfColor.h"
#include "cafPdmChildField.h"
#include "cafPdmFieldCvfVec3d.h"
#include "cafPdmProxyValueField.h"
#include "cvfObject.h"
#include "cvfVector3.h"
@@ -73,7 +74,9 @@ protected:
virtual caf::PdmFieldHandle* objectToggleField() override;
private:
friend class RicTextAnnotation3dEditor;
friend class RicTextAnnotation3dEditor;
QString extractNameFromText() const;
caf::PdmField<Vec3d> m_anchorPointXyd;
caf::PdmField<Vec3d> m_labelPointXyd;
@@ -81,5 +84,7 @@ friend class RicTextAnnotation3dEditor;
caf::PdmField<bool> m_isActive;
caf::PdmChildField<RimAnnotationTextAppearance*> m_textAppearance;
caf::PdmProxyValueField<QString> m_nameProxy;
};