summaryrefslogtreecommitdiff
path: root/xmloff/source/draw/propimp0.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xmloff/source/draw/propimp0.cxx')
-rw-r--r--xmloff/source/draw/propimp0.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/xmloff/source/draw/propimp0.cxx b/xmloff/source/draw/propimp0.cxx
index 75d8b93aa461..3d6dc4a59d83 100644
--- a/xmloff/source/draw/propimp0.cxx
+++ b/xmloff/source/draw/propimp0.cxx
@@ -56,9 +56,9 @@ sal_Bool XMLDurationPropertyHdl::importXML(
util::Duration aDuration;
::sax::Converter::convertDuration(aDuration, rStrImpValue);
- const sal_Int32 nSeconds = ((aDuration.Days * 24 + aDuration.Hours) * 60
- + aDuration.Minutes) * 60 + aDuration.Seconds;
- rValue <<= nSeconds;
+ const double fSeconds = ((aDuration.Days * 24 + aDuration.Hours) * 60
+ + aDuration.Minutes) * 60 + aDuration.Seconds + aDuration.MilliSeconds / 1000.0;
+ rValue <<= fSeconds;
return sal_True;
}
@@ -68,12 +68,13 @@ sal_Bool XMLDurationPropertyHdl::exportXML(
const ::com::sun::star::uno::Any& rValue,
const SvXMLUnitConverter& ) const
{
- sal_Int32 nVal = 0;
+ double nVal = 0;
if(rValue >>= nVal)
{
util::Duration aDuration;
aDuration.Seconds = static_cast<sal_uInt16>(nVal);
+ aDuration.MilliSeconds = static_cast<sal_uInt32>(nVal * 1000.0) % 1000 ;
OUStringBuffer aOut;
::sax::Converter::convertDuration(aOut, aDuration);