Bug 116214 - Custom properties: value type is changed from Number to Text
Summary: Custom properties: value type is changed from Number to Text
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium minor
Assignee: Bartosz
URL:
Whiteboard: target:7.1.0 target:7.0.4
Keywords:
Depends on:
Blocks: File-Properties
  Show dependency treegraph
 
Reported: 2018-03-05 19:15 UTC by Thomas Lendo
Modified: 2020-10-28 15:42 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Lendo 2018-03-05 19:15:15 UTC
Open a new document, go on File > Properties, in the custom properties tab press add, then give it a name and choose "number" in the type box. Now in the value box insert a big number (for example with 17 digits), then close the properties window. Open it again.

After that the number 12345678912345789123456789 is converted to 1,23456789123458E+025. I can't edit the number as a warning message opens saying "The value entered does not match the specified type. The value will be stored as text." and the value type is changed from Number to Text automatically.

Seems the automatic converting to a float number is causing problems. I don't want that an entered value is changed by the program anyway.

Version: 6.1.0.0.alpha0+ (x64) Build ID: d64ce643275e0b2b0dea9e532fc261391dc8793c CPU threads: 8; OS: Windows 10.0; UI render: GL; TinderBox: Win-x86_64@42, Branch:master, Time: 2018-03-01_03:24:30 Locale: de-AT (de_AT); Calc: CL
Comment 1 Buovjaga 2018-03-05 19:21:00 UTC
I reproduced as part of bug 100933, so setting to NEW
Comment 2 QA Administrators 2019-03-06 03:43:01 UTC Comment hidden (obsolete)
Comment 3 Bartosz 2020-10-20 14:51:44 UTC
The validation is made in method:

bool CustomPropertiesWindow::IsLineValid( CustomPropertyLine* pLine ) const
in sfx2/source/dialog/dinfdlg.cxx:1403

it seems that if data type is CUSTOM_TYPE_NUMBER, then we are always checking if the format is NF_NUMBER_SYSTEM ( #,##0.00 )

    if ( CUSTOM_TYPE_NUMBER == nType )
        nIndex = const_cast< SvNumberFormatter& >(
            m_aNumberFormatter ).GetFormatIndex( NF_NUMBER_SYSTEM );

but also valid format is also  NF_SCIENTIFIC_000E00 ( 0.00E+00 ).
Comment 4 Commit Notification 2020-10-27 15:05:34 UTC
Bartosz Kosiorek committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/b73151c8f8fd4e67dc5674ebb6538783bdfb91df

tdf#116214 Allow for scientific notation in Custom Properties

It will be available in 7.1.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Commit Notification 2020-10-28 08:40:10 UTC
Bartosz Kosiorek committed a patch related to this issue.
It has been pushed to "libreoffice-7-0":

https://git.libreoffice.org/core/commit/966880403f6b9b58d53b7b6e0da9520cdfdc0baa

tdf#116214 Allow for scientific notation in Custom Properties

It will be available in 7.0.4.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 Buovjaga 2020-10-28 15:42:19 UTC
Verified

Arch Linux 64-bit
Version: 7.1.0.0.alpha1+
Build ID: 38dd55f6022a6ec217a2a54459a2875f1bef1f5e
CPU threads: 8; OS: Linux 5.9; UI render: default; VCL: kf5
Locale: fi-FI (fi_FI.UTF-8); UI: en-US
Calc: threaded
Built on 28 October 2020