diff options
author | Oliver Specht <oliver.specht@cib.de> | 2024-05-21 14:27:04 +0200 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2025-03-17 15:39:22 +0100 |
commit | e846c8e5ed07e6b67a4375dd8ab4d4ca30fd9066 (patch) | |
tree | 28f3338cc8e96ce75ad9860d76043a77c0fa3e5f /sw/source/uibase/shells/textfld.cxx | |
parent | 288ad65ee8ef93dbcac3334249a39a09ebe4b660 (diff) |
tdf#45946 Add function to convert field to text
The current field can be converted to it's representing text.
Exceptions are fields in header or footer that have multiple representations
like page number or chapter fields.
Change-Id: I62b92b2d0b2ed766a2722ffd804496008b72e792
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167900
Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Diffstat (limited to 'sw/source/uibase/shells/textfld.cxx')
-rw-r--r-- | sw/source/uibase/shells/textfld.cxx | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/sw/source/uibase/shells/textfld.cxx b/sw/source/uibase/shells/textfld.cxx index 4a9a11eba7f2..968bceac3c2d 100644 --- a/sw/source/uibase/shells/textfld.cxx +++ b/sw/source/uibase/shells/textfld.cxx @@ -229,6 +229,15 @@ void SwTextShell::ExecField(SfxRequest &rReq) } break; } + case FN_CONVERT_SEL_FIELD: + { + SwField* pField = rSh.GetCurField(); + if (pField) + { + rSh.ConvertOneFieldToText(*pField); + } + break; + } case FN_EXECUTE_MACROFIELD: { SwField* pField = rSh.GetCurField(); @@ -1631,11 +1640,31 @@ void SwTextShell::StateField( SfxItemSet &rSet ) case FN_UPDATE_SEL_FIELD: { pField = rSh.GetCurField(); - if (!pField) rSet.DisableItem( nWhich ); } - + break; + case FN_CONVERT_SEL_FIELD: + { + pField = rSh.GetCurField(); + SwFieldIds eFieldIds = pField ? pField->GetTyp()->Which() : SwFieldIds::Unknown; + bool bInHeaderFooter = rSh.IsInHeaderFooter(); + if (!pField || + eFieldIds == SwFieldIds::Postit || + eFieldIds == SwFieldIds::SetRef || + eFieldIds == SwFieldIds::SetExp || + eFieldIds == SwFieldIds::RefPageSet|| + eFieldIds == SwFieldIds::Input || + eFieldIds == SwFieldIds::JumpEdit || + (bInHeaderFooter && + (eFieldIds == SwFieldIds::PageNumber || + eFieldIds == SwFieldIds::Chapter || + eFieldIds == SwFieldIds::GetExp || + eFieldIds == SwFieldIds::RefPageGet || + eFieldIds == SwFieldIds::GetRef + ))) + rSet.DisableItem( nWhich ); + } break; case FN_EXECUTE_MACROFIELD: |