20 #include <config_features.h>
22 #include <osl/diagnose.h>
49 return static_cast<sal_uInt16
>(pFieldTypes->size());
54 for(
const auto & pFieldType : *pFieldTypes)
57 if(pFieldType->Which() == nResId)
70 return (*pFieldTypes)[nField].get();
74 for(
const auto & pFieldType : *pFieldTypes)
77 if(pFieldType->Which() == nResId)
80 return pFieldType.get();
103 const SwFieldTypes::size_type nSize = pFieldTypes->size();
108 for(SwFieldTypes::size_type
i = 0;
i < nSize; ++
i)
112 if( pFieldType->
Which() == nResId )
155 OSL_ENSURE( bSuccess,
"Doc->Insert(Field) failed");
174 auto pFormatField =
dynamic_cast<const SwFormatField*
>(pItem);
175 if( pFormatField && pFormatField->GetField() == &rField )
177 pTField =
const_cast<SwFormatField*
>(pFormatField)->GetTextField();
187 auto pFormatField =
dynamic_cast<const SwFormatField*
>(pItem);
188 if( pFormatField && pFormatField->GetField() == &rField )
190 pTField =
const_cast<SwFormatField*
>(pFormatField)->GetTextField();
208 pMsgHint = &aRefMkHt;
221 if (pTextField !=
nullptr)
229 bool bTableSelBreak =
false;
236 if( rPaM.HasMark() && bOkay )
239 SwPaM aCurPam( *rPaM.GetMark(), *rPaM.GetPoint() );
240 SwPaM aPam( *rPaM.GetPoint() );
242 SwPosition *pCurStt = aCurPam.Start(), *pCurEnd =
252 && pCurStt->nContent != pCurEnd->nContent
258 if( aPam.Start()->nContent != pCurStt->nContent )
262 if(
nullptr != pTextField )
305 std::vector<OUString>
const * pAllDBNames )
311 const OUString& rNewName )
324 #if HAVE_FEATURE_DBCONNECTIVITY
333 #if HAVE_FEATURE_DBCONNECTIVITY
389 for(
const auto & pFieldType : *pFieldTypes)
393 switch(pFieldType->Which())
400 std::vector<SwFormatField*> vFields;
401 pFieldType->GatherFields(vFields);
402 return vFields.size();
SwFieldType * GetFieldType(size_t nField, SwFieldIds nResId=SwFieldIds::Unknown) const
get field types with a ResId, if 0 get all
SwRefMarkFieldUpdate is sent when the referencemarks should be updated.
vcl::RenderContext * GetOut() const
Instances of SwFields and those derived from it occur 0 to n times.
void ChgDBData(const SwDBData &SwDBData)
void ChgDBData(const SwDBData &rNewData)
Marks a position in the document model.
bool IsMultiSelection() const
SwPaM * GetCursor(bool bMakeTableCursor=true) const
Return pointer to the current shell cursor.
virtual SwFieldType * GetFieldType(SwFieldIds nResId, const OUString &rName, bool bDbFieldMatching) const =0
virtual void SetModified()=0
Must be called manually at changes of format.
Base class of all fields.
virtual void set(DocumentSettingId id, bool value) override
Set the specified document setting.
virtual void setFieldUpdateFlags(SwFieldUpdateFlags nMode)=0
Set the current field update mode.
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
const IDocumentSettingAccess & getIDocumentSettingAccess() const
Provides access to the document setting interface.
static SwTextField * lcl_FindInputField(SwDoc *pDoc, SwField &rField)
Are the PaMs positioned on fields?
void SetLabelDoc(bool bFlag)
Labels: Synchronize ranges.
bool HasWriterListeners() const
constexpr TypedWhichId< SwFormatField > RES_TXTATR_ANNOTATION(59)
For old documents the Field-Which IDs must be preserved !!!
virtual bool UpdateField(SwTextField *rDstFormatField, SwField &rSrcField, SwMsgPoolItem *pMsgHint, bool bUpdateTableFields)=0
Updates a field.
void ChangeAuthorityData(const SwAuthEntry *pNewData)
SwFieldUpdateFlags GetFieldUpdateFlags() const
virtual void LockExpFields()=0
virtual void UpdateExpFields(SwTextField *pField, bool bUpdateRefFields)=0
IDocumentContentOperations & getIDocumentContentOperations()
Provides access to the content operations interface.
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
bool IsUsed(const sw::BroadcastingModify &) const
Query if the paragraph-/character-/frame-/page-style is used.
virtual bool IsExpFieldsLocked() const =0
const SwFormatField & GetFormatField() const
virtual SwFieldUpdateFlags getFieldUpdateFlags(bool bGlobalSettings) const =0
Get the current field update mode.
const SwDBData & GetDBDesc()
bool FindAttrImpl(SwPaM &rSearchPam, const SfxPoolItem &rAttr, SwMoveFnCollection const &fnMove, const SwPaM &rRegion, bool bInReadOnly, SwRootFrame const *const pLayout)
SwDBManager * GetDBManager() const
For evaluation of DB fields (new DB-manager).
PaM is Point and Mark: a selection of the document model.
constexpr TypedWhichId< SwFormatField > RES_TXTATR_FIELD(RES_TXTATR_NOEND_BEGIN)
void GetAllUsedDB(std::vector< OUString > &rDBNameList, std::vector< OUString > const *pAllDBNames)
SwDBData const & GetDBData()
void Insert2(const OUString &, const bool bForceExpandHints=false)
SwFieldType * InsertFieldType(const SwFieldType &)
insert field type
void Push()
store a copy of the current cursor on the cursor stack
void GetAllUsedDB(std::vector< OUString > &rDBNameList, const std::vector< OUString > *pAllDBNames=nullptr)
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
size_t GetFieldTypeCount(SwFieldIds nResId=SwFieldIds::Unknown) const
count field types with a ResId, if SwFieldIds::Unknown count all
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
Force hint expand (only matters for hints with CH_TXTATR).
void CloseAll(bool bIncludingMerge=true)
close all data sources - after fields were updated
SwDBData const & GetDBData() const
Database information.
const SwDBData & GetDBDesc() const
IDocumentState const & getIDocumentState() const
virtual const SwFieldTypes * GetFieldTypes() const =0
ring_container GetRingContainer()
OUString lowercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
void UpdateOneField(SwField &)
One single field.
const SwPosition * Start() const
SwFieldType * GetTyp() const
void FieldToText(SwFieldType const *pType)
void UpdateExpFields(bool bCloseDB=false)
only every expression fields update
bool IsAnyDatabaseFieldInDoc() const
SwFieldIds Which() const
ResId.
virtual OUString GetName() const
Only in derived classes.
virtual SwFieldType * InsertFieldType(const SwFieldType &)=0
SwMoveFnCollection const & fnMoveForward
SwPam::Move()/Find() default argument.
void ChangeDBFields(const std::vector< OUString > &rOldNames, const OUString &rNewName)
void RemoveFieldType(size_t nField)
delete field type
Item2Range GetItemSurrogates(sal_uInt16 nWhich) const
::sw::DocumentSettingManager & GetDocumentSettingManager()
void SetFieldUpdateFlags(SwFieldUpdateFlags eFlags)
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
constexpr TypedWhichId< SwFormatField > RES_TXTATR_INPUTFIELD(55)
virtual void CallSwClientNotify(const SfxHint &rHint) const override
const SwGetSetExpType GSE_STRING
String.
bool Pop(PopMode)
delete cursor
virtual void UnlockExpFields()=0
void ChangeDBFields(const std::vector< OUString > &rOldNames, const OUString &rNewName)
void ChangeAuthorityData(const SwAuthEntry *pNewData)
void StartAllAction()
For all views of this document.
bool IsExpFieldsLocked() const
SwRootFrame * GetLayout() const
CharClass & GetAppCharClass()
SwDBManager * GetDBManager() const
virtual void RemoveFieldType(size_t nField)=0
const SwAttrPool & GetAttrPool() const
static SwTextField * GetTextFieldAtPos(const SwPosition *pPos, const bool bIncludeInputFieldAtStart)