tdf#148706: map value prop in numericfield to text
Change-Id: Ifc37b0aa8dc657d7a7f05199c8132896d03eb437 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134240 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
@@ -313,10 +313,18 @@ namespace toolkitform
|
||||
Any aText;
|
||||
static constexpr OUStringLiteral FM_PROP_TEXT = u"Text";
|
||||
static constexpr OUStringLiteral FM_PROP_LABEL = u"Label";
|
||||
static constexpr OUStringLiteral FM_PROP_VALUE = u"Value";
|
||||
if ( xPSI->hasPropertyByName( FM_PROP_TEXT ) )
|
||||
aText = xModelProps->getPropertyValue( FM_PROP_TEXT );
|
||||
else if ( xPSI->hasPropertyByName( FM_PROP_LABEL ) )
|
||||
aText = xModelProps->getPropertyValue( FM_PROP_LABEL );
|
||||
else if ( xPSI->hasPropertyByName( FM_PROP_VALUE ) )
|
||||
{
|
||||
double aValue;
|
||||
if (xModelProps->getPropertyValue( FM_PROP_VALUE ) >>= aValue)
|
||||
aText <<= OUString::number(aValue);
|
||||
}
|
||||
|
||||
if ( aText.hasValue() ) {
|
||||
if( ! (aText >>= Descriptor->Text) ) {
|
||||
SAL_WARN("toolkit.helper", "describePDFControl: unable to assign aText to Descriptor->Text");
|
||||
|
BIN
vcl/qa/cppunit/pdfexport/data/tdf148706.odt
Normal file
BIN
vcl/qa/cppunit/pdfexport/data/tdf148706.odt
Normal file
Binary file not shown.
@@ -610,6 +610,41 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf107018)
|
||||
CPPUNIT_ASSERT_EQUAL(OString("Pages"), pName->GetValue());
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf148706)
|
||||
{
|
||||
// Import the bugdoc and export as PDF.
|
||||
aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
|
||||
saveAsPDF(u"tdf148706.odt");
|
||||
|
||||
// Parse the export result with pdfium.
|
||||
std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parseExport();
|
||||
CPPUNIT_ASSERT(pPdfDocument);
|
||||
|
||||
// The document has one page.
|
||||
CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount());
|
||||
std::unique_ptr<vcl::pdf::PDFiumPage> pPdfPage = pPdfDocument->openPage(/*nIndex=*/0);
|
||||
CPPUNIT_ASSERT(pPdfPage);
|
||||
|
||||
// The page has one annotation.
|
||||
CPPUNIT_ASSERT_EQUAL(1, pPdfPage->getAnnotationCount());
|
||||
std::unique_ptr<vcl::pdf::PDFiumAnnotation> pAnnot = pPdfPage->getAnnotation(0);
|
||||
|
||||
CPPUNIT_ASSERT(pAnnot->hasKey("V"));
|
||||
CPPUNIT_ASSERT_EQUAL(vcl::pdf::PDFObjectType::String, pAnnot->getValueType("V"));
|
||||
OUString aV = pAnnot->getString("V");
|
||||
|
||||
// Without the fix in place, this test would have failed with
|
||||
// - Expected: 1821.84
|
||||
// - Actual :
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1821.84"), aV);
|
||||
|
||||
CPPUNIT_ASSERT(pAnnot->hasKey("DV"));
|
||||
CPPUNIT_ASSERT_EQUAL(vcl::pdf::PDFObjectType::String, pAnnot->getValueType("DV"));
|
||||
OUString aDV = pAnnot->getString("DV");
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1821.84"), aDV);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf107089)
|
||||
{
|
||||
vcl::filter::PDFDocument aDocument;
|
||||
|
Reference in New Issue
Block a user