summaryrefslogtreecommitdiff
path: root/sw/source/uibase/shells/textfld.cxx
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2024-05-21 14:27:04 +0200
committerThorsten Behrens <thorsten.behrens@allotropia.de>2025-03-17 15:39:22 +0100
commite846c8e5ed07e6b67a4375dd8ab4d4ca30fd9066 (patch)
tree28f3338cc8e96ce75ad9860d76043a77c0fa3e5f /sw/source/uibase/shells/textfld.cxx
parent288ad65ee8ef93dbcac3334249a39a09ebe4b660 (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.cxx33
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: