editeng/source/items/flditem.cxx | 43 +++++++++----------- editeng/source/uno/unofield.cxx | 7 +-- filter/source/msfilter/svdfppt.cxx | 16 +++---- filter/source/svg/svgexport.cxx | 74 +++++++++++++++++------------------ filter/source/svg/svgfilter.hxx | 5 +- include/editeng/flditem.hxx | 29 +++++++------ oox/source/export/drawingml.cxx | 13 +++--- sc/source/ui/unoobj/fielduno.cxx | 2 sd/inc/sdpage.hxx | 4 + sd/source/core/sdpage.cxx | 6 +- sd/source/filter/eppt/eppt.cxx | 8 +-- sd/source/filter/ppt/pptin.cxx | 3 - sd/source/ui/app/sdmod2.cxx | 3 - sd/source/ui/app/sdpopup.cxx | 16 +++---- sd/source/ui/dlg/dlgfield.cxx | 18 ++++---- sd/source/ui/dlg/headerfooterdlg.cxx | 56 ++++++++++++++------------ sd/source/ui/unoidl/unomodel.cxx | 4 + sd/source/ui/unoidl/unopage.cxx | 9 +++- 18 files changed, 171 insertions(+), 145 deletions(-)
New commits: commit 7d14555ef7e867c5b1a0e195e3ef056885697c59 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Sep 15 13:55:39 2017 +0200 convert SvxDateFormat to scoped enum And simplify the code in sd/headerfooterdlg, no need for the complex encoding of date and time when we can just index into a static array. Change-Id: I677400bf1f956c81eba665b71dbda9183b63f55c Reviewed-on: https://gerrit.libreoffice.org/42346 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx index 50061b0d4bef..f69fcf4fbb12 100644 --- a/editeng/source/items/flditem.cxx +++ b/editeng/source/items/flditem.cxx @@ -71,7 +71,8 @@ SvxFieldData* SvxFieldData::Create(const uno::Reference<text::XTextContent>& xTe SvxDateField* pData = new SvxDateField(aDate, bIsFixed ? SvxDateType::Fix : SvxDateType::Var); sal_Int32 nNumFmt = -1; xPropSet->getPropertyValue(UNO_TC_PROP_NUMFORMAT) >>= nNumFmt; - if (nNumFmt >= SVXDATEFORMAT_APPDEFAULT && nNumFmt <= SVXDATEFORMAT_F) + if (static_cast<SvxDateFormat>(nNumFmt) >= SvxDateFormat::AppDefault && + static_cast<SvxDateFormat>(nNumFmt) <= SvxDateFormat::F) pData->SetFormat(static_cast<SvxDateFormat>(nNumFmt)); return pData; @@ -314,7 +315,7 @@ SvxDateField::SvxDateField() { nFixDate = Date( Date::SYSTEM ).GetDate(); eType = SvxDateType::Var; - eFormat = SVXDATEFORMAT_STDSMALL; + eFormat = SvxDateFormat::StdSmall; } @@ -358,50 +359,50 @@ OUString SvxDateField::GetFormatted( SvNumberFormatter& rFormatter, LanguageType OUString SvxDateField::GetFormatted( Date const & aDate, SvxDateFormat eFormat, SvNumberFormatter& rFormatter, LanguageType eLang ) { - if ( eFormat == SVXDATEFORMAT_SYSTEM ) + if ( eFormat == SvxDateFormat::System ) { - OSL_FAIL( "SVXDATEFORMAT_SYSTEM not implemented!" ); - eFormat = SVXDATEFORMAT_STDSMALL; + OSL_FAIL( "SvxDateFormat::System not implemented!" ); + eFormat = SvxDateFormat::StdSmall; } - else if ( eFormat == SVXDATEFORMAT_APPDEFAULT ) + else if ( eFormat == SvxDateFormat::AppDefault ) { - OSL_FAIL( "SVXDATEFORMAT_APPDEFAULT: take them from where? "); - eFormat = SVXDATEFORMAT_STDSMALL; + OSL_FAIL( "SvxDateFormat::AppDefault: take them from where? "); + eFormat = SvxDateFormat::StdSmall; } sal_uInt32 nFormatKey; switch( eFormat ) { - case SVXDATEFORMAT_STDSMALL: + case SvxDateFormat::StdSmall: // short nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYSTEM_SHORT, eLang ); break; - case SVXDATEFORMAT_STDBIG: + case SvxDateFormat::StdBig: // long nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYSTEM_LONG, eLang ); break; - case SVXDATEFORMAT_A: + case SvxDateFormat::A: // 13.02.96 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_DDMMYY, eLang ); break; - case SVXDATEFORMAT_B: + case SvxDateFormat::B: // 13.02.1996 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_DDMMYYYY, eLang ); break; - case SVXDATEFORMAT_C: + case SvxDateFormat::C: // 13. Feb 1996 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_DMMMYYYY, eLang ); break; - case SVXDATEFORMAT_D: + case SvxDateFormat::D: // 13. February 1996 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_DMMMMYYYY, eLang ); break; - case SVXDATEFORMAT_E: + case SvxDateFormat::E: // The, 13. February 1996 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_NNDMMMMYYYY, eLang ); break; - case SVXDATEFORMAT_F: + case SvxDateFormat::F: // Tuesday, 13. February 1996 nFormatKey = rFormatter.GetFormatIndex( NF_DATE_SYS_NNNNDMMMMYYYY, eLang ); break; @@ -925,19 +926,17 @@ bool SvxDateTimeField::operator==( const SvxFieldData& rCmp ) const SvxDateTimeField::SvxDateTimeField() {} OUString SvxDateTimeField::GetFormatted( - Date const & rDate, tools::Time const & rTime, int eFormat, SvNumberFormatter& rFormatter, LanguageType eLanguage ) + Date const & rDate, tools::Time const & rTime, + SvxDateFormat eDateFormat, SvxTimeFormat eTimeFormat, + SvNumberFormatter& rFormatter, LanguageType eLanguage ) { OUString aRet; - SvxDateFormat eDateFormat = (SvxDateFormat)(eFormat & 0x0f); - - if(eDateFormat) + if(eDateFormat != SvxDateFormat::AppDefault) { aRet = SvxDateField::GetFormatted( rDate, eDateFormat, rFormatter, eLanguage ); } - SvxTimeFormat eTimeFormat = (SvxTimeFormat)((eFormat >> 4) & 0x0f); - if(eTimeFormat != SvxTimeFormat::AppDefault) { OUStringBuffer aBuf(aRet); diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx index 194781fc9a95..5c57179ac3c9 100644 --- a/editeng/source/uno/unofield.cxx +++ b/editeng/source/uno/unofield.cxx @@ -251,7 +251,7 @@ SvxUnoTextField::SvxUnoTextField( sal_Int32 nServiceId ) throw() { case text::textfield::Type::DATE: mpImpl->mbBoolean2 = true; - mpImpl->mnInt32 = SVXDATEFORMAT_STDSMALL; + mpImpl->mnInt32 = static_cast<sal_Int32>(SvxDateFormat::StdSmall); mpImpl->mbBoolean1 = false; break; @@ -319,7 +319,7 @@ SvxUnoTextField::SvxUnoTextField( uno::Reference< text::XTextRange > const & xAn mpImpl->maDateTime = getDate( bFixed ? static_cast<const SvxDateField*>(pData)->GetFixDate() : Date( Date::SYSTEM ).GetDate() ); - mpImpl->mnInt32 = static_cast<const SvxDateField*>(pData)->GetFormat(); + mpImpl->mnInt32 = static_cast<sal_Int32>(static_cast<const SvxDateField*>(pData)->GetFormat()); mpImpl->mbBoolean1 = bFixed; } break; @@ -392,7 +392,8 @@ SvxFieldData* SvxUnoTextField::CreateFieldData() const throw() { Date aDate( setDate( mpImpl->maDateTime ) ); pData = new SvxDateField( aDate, mpImpl->mbBoolean1?SvxDateType::Fix:SvxDateType::Var ); - if( mpImpl->mnInt32 >= SVXDATEFORMAT_APPDEFAULT && mpImpl->mnInt32 <= SVXDATEFORMAT_F ) + if( mpImpl->mnInt32 >= static_cast<sal_Int32>(SvxDateFormat::AppDefault) && + mpImpl->mnInt32 <= static_cast<sal_Int32>(SvxDateFormat::F) ) static_cast<SvxDateField*>(pData)->SetFormat( (SvxDateFormat)mpImpl->mnInt32 ); } else diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 1678fbf0efec..f39a726413e0 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -6409,34 +6409,34 @@ PPTFieldEntry::~PPTFieldEntry() void PPTFieldEntry::GetDateTime( const sal_uInt32 nVal, SvxDateFormat& eDateFormat, SvxTimeFormat& eTimeFormat ) { - eDateFormat = SVXDATEFORMAT_APPDEFAULT; + eDateFormat = SvxDateFormat::AppDefault; eTimeFormat = SvxTimeFormat::AppDefault; // evaluate ID switch( nVal ) { case 0: case 6: - eDateFormat = SVXDATEFORMAT_A; + eDateFormat = SvxDateFormat::A; break; case 1: - eDateFormat = SVXDATEFORMAT_F; + eDateFormat = SvxDateFormat::F; break; case 2: case 3: - eDateFormat = SVXDATEFORMAT_D; + eDateFormat = SvxDateFormat::D; break; case 4: case 5: - eDateFormat = SVXDATEFORMAT_C; + eDateFormat = SvxDateFormat::C; break; case 7: - eDateFormat = SVXDATEFORMAT_A; + eDateFormat = SvxDateFormat::A; SAL_FALLTHROUGH; case 9: eTimeFormat = SvxTimeFormat::HH24_MM; break; case 8: - eDateFormat = SVXDATEFORMAT_A; + eDateFormat = SvxDateFormat::A; SAL_FALLTHROUGH; case 11: eTimeFormat = SvxTimeFormat::HH12_MM; @@ -6455,7 +6455,7 @@ void PPTFieldEntry::SetDateTime( sal_uInt32 nVal ) SvxDateFormat eDateFormat; SvxTimeFormat eTimeFormat; GetDateTime( nVal, eDateFormat, eTimeFormat ); - if ( eDateFormat != SVXDATEFORMAT_APPDEFAULT ) + if ( eDateFormat != SvxDateFormat::AppDefault ) xField1.reset(new SvxFieldItem(SvxDateField( Date( Date::SYSTEM ), SvxDateType::Var, eDateFormat ), EE_FEATURE_FIELD)); if ( eTimeFormat != SvxTimeFormat::AppDefault ) { diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx index c50cddde7d16..d2b42b94719a 100644 --- a/filter/source/svg/svgexport.cxx +++ b/filter/source/svg/svgexport.cxx @@ -221,29 +221,29 @@ public: VariableTextField::elementExport( pSVGExport ); OUString sDateFormat, sTimeFormat; SvxDateFormat eDateFormat = (SvxDateFormat)( format & 0x0f ); - if( eDateFormat ) + if( eDateFormat != SvxDateFormat::AppDefault ) { switch( eDateFormat ) { - case SVXDATEFORMAT_STDSMALL: - case SVXDATEFORMAT_A: // 13.02.96 + case SvxDateFormat::StdSmall: + case SvxDateFormat::A: // 13.02.96 sDateFormat.clear(); break; - case SVXDATEFORMAT_C: // 13.Feb 1996 + case SvxDateFormat::C: // 13.Feb 1996 sDateFormat.clear(); break; - case SVXDATEFORMAT_D: // 13.February 1996 + case SvxDateFormat::D: // 13.February 1996 sDateFormat.clear(); break; - case SVXDATEFORMAT_E: // Tue, 13.February 1996 + case SvxDateFormat::E: // Tue, 13.February 1996 sDateFormat.clear(); break; - case SVXDATEFORMAT_STDBIG: - case SVXDATEFORMAT_F: // Tuesday, 13.February 1996 + case SvxDateFormat::StdBig: + case SvxDateFormat::F: // Tuesday, 13.February 1996 sDateFormat.clear(); break; // default case - case SVXDATEFORMAT_B: // 13.02.1996 + case SvxDateFormat::B: // 13.02.1996 default: sDateFormat.clear(); break; @@ -1359,7 +1359,7 @@ void SVGFilter::implGetPagePropSet( const Reference< XDrawPage > & rxPage ) mVisiblePagePropSet.bIsFooterFieldVisible = true; mVisiblePagePropSet.bIsDateTimeFieldVisible = true; mVisiblePagePropSet.bIsDateTimeFieldFixed = true; - mVisiblePagePropSet.nDateTimeFormat = SVXDATEFORMAT_B; + mVisiblePagePropSet.nDateTimeFormat = SvxDateFormat::B; mVisiblePagePropSet.nPageNumberingType = css::style::NumberingType::ARABIC; // We collect info on master page elements visibility, and placeholder text shape content. @@ -1377,7 +1377,9 @@ void SVGFilter::implGetPagePropSet( const Reference< XDrawPage > & rxPage ) implSafeGetPagePropSet( "IsDateTimeVisible", xPropSet, xPropSetInfo ) >>= mVisiblePagePropSet.bIsDateTimeFieldVisible; implSafeGetPagePropSet( "IsDateTimeFixed", xPropSet, xPropSetInfo ) >>= mVisiblePagePropSet.bIsDateTimeFieldFixed; - implSafeGetPagePropSet( "DateTimeFormat", xPropSet, xPropSetInfo ) >>= mVisiblePagePropSet.nDateTimeFormat; + sal_Int32 nTmp; + if (implSafeGetPagePropSet( "DateTimeFormat", xPropSet, xPropSetInfo ) >>= nTmp) + mVisiblePagePropSet.nDateTimeFormat = static_cast<SvxDateFormat>(nTmp); if( mVisiblePagePropSet.bIsPageNumberFieldVisible ) { @@ -2161,7 +2163,7 @@ IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo, void ) } if( bHasCharSetMap && ( pCharSetMap->find( aVariableDateTimeId ) != pCharSetMap->end() ) && !(*pCharSetMap)[ aVariableDateTimeId ].empty() ) { - SvxDateFormat eDateFormat = SVXDATEFORMAT_B, eCurDateFormat; + SvxDateFormat eDateFormat = SvxDateFormat::B, eCurDateFormat; const UCharSet & aCharSet = (*pCharSetMap)[ aVariableDateTimeId ]; UCharSet::const_iterator aChar = aCharSet.begin(); // we look for the most verbose date format @@ -2170,29 +2172,29 @@ IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo, void ) eCurDateFormat = (SvxDateFormat)( (int)( *aChar ) & 0x0f ); switch( eDateFormat ) { - case SVXDATEFORMAT_STDSMALL: - case SVXDATEFORMAT_A: // 13.02.96 - case SVXDATEFORMAT_B: // 13.02.1996 + case SvxDateFormat::StdSmall: + case SvxDateFormat::A: // 13.02.96 + case SvxDateFormat::B: // 13.02.1996 switch( eCurDateFormat ) { - case SVXDATEFORMAT_C: // 13.Feb 1996 - case SVXDATEFORMAT_D: // 13.February 1996 - case SVXDATEFORMAT_E: // Tue, 13.February 1996 - case SVXDATEFORMAT_STDBIG: - case SVXDATEFORMAT_F: // Tuesday, 13.February 1996 + case SvxDateFormat::C: // 13.Feb 1996 + case SvxDateFormat::D: // 13.February 1996 + case SvxDateFormat::E: // Tue, 13.February 1996 + case SvxDateFormat::StdBig: + case SvxDateFormat::F: // Tuesday, 13.February 1996 eDateFormat = eCurDateFormat; break; default: break; } break; - case SVXDATEFORMAT_C: // 13.Feb 1996 - case SVXDATEFORMAT_D: // 13.February 1996 + case SvxDateFormat::C: // 13.Feb 1996 + case SvxDateFormat::D: // 13.February 1996 switch( eCurDateFormat ) { - case SVXDATEFORMAT_E: // Tue, 13.February 1996 - case SVXDATEFORMAT_STDBIG: - case SVXDATEFORMAT_F: // Tuesday, 13.February 1996 + case SvxDateFormat::E: // Tue, 13.February 1996 + case SvxDateFormat::StdBig: + case SvxDateFormat::F: // Tuesday, 13.February 1996 eDateFormat = eCurDateFormat; break; default: @@ -2207,28 +2209,28 @@ IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo, void ) // They should be enough to cover every time format. aRepresentation += "0123456789.:/-APM"; - if( eDateFormat ) + if( eDateFormat != SvxDateFormat::AppDefault ) { OUString sDate; LanguageType eLang = pInfo->GetOutliner()->GetLanguage( pInfo->GetPara(), pInfo->GetPos() ); SvNumberFormatter * pNumberFormatter = new SvNumberFormatter( ::comphelper::getProcessComponentContext(), LANGUAGE_SYSTEM ); - // We always collect the characters obtained by using the SVXDATEFORMAT_B (as: 13.02.1996) + // We always collect the characters obtained by using the SvxDateFormat::B (as: 13.02.1996) // so we are sure to include any unusual day|month|year separator. Date aDate( 1, 1, 1996 ); - sDate += SvxDateField::GetFormatted( aDate, SVXDATEFORMAT_B, *pNumberFormatter, eLang ); + sDate += SvxDateField::GetFormatted( aDate, SvxDateFormat::B, *pNumberFormatter, eLang ); switch( eDateFormat ) { - case SVXDATEFORMAT_E: // Tue, 13.February 1996 - case SVXDATEFORMAT_STDBIG: - case SVXDATEFORMAT_F: // Tuesday, 13.February 1996 + case SvxDateFormat::E: // Tue, 13.February 1996 + case SvxDateFormat::StdBig: + case SvxDateFormat::F: // Tuesday, 13.February 1996 for( sal_uInt16 i = 1; i <= 7; ++i ) // we get all days in a week { aDate.SetDay( i ); sDate += SvxDateField::GetFormatted( aDate, eDateFormat, *pNumberFormatter, eLang ); } SAL_FALLTHROUGH; // We need months too! - case SVXDATEFORMAT_C: // 13.Feb 1996 - case SVXDATEFORMAT_D: // 13.February 1996 + case SvxDateFormat::C: // 13.Feb 1996 + case SvxDateFormat::D: // 13.February 1996 for( sal_uInt16 i = 1; i <= 12; ++i ) // we get all months in a year { aDate.SetMonth( i ); @@ -2236,9 +2238,9 @@ IMPL_LINK( SVGFilter, CalcFieldHdl, EditFieldInfo*, pInfo, void ) } break; // coverity[dead_error_begin] - following conditions exist to avoid compiler warning - case SVXDATEFORMAT_STDSMALL: - case SVXDATEFORMAT_A: // 13.02.96 - case SVXDATEFORMAT_B: // 13.02.1996 + case SvxDateFormat::StdSmall: + case SvxDateFormat::A: // 13.02.96 + case SvxDateFormat::B: // 13.02.1996 default: // nothing to do here, we always collect the characters needed for these cases. break; diff --git a/filter/source/svg/svgfilter.hxx b/filter/source/svg/svgfilter.hxx index 1920d063f103..34b7b20a47c1 100644 --- a/filter/source/svg/svgfilter.hxx +++ b/filter/source/svg/svgfilter.hxx @@ -38,6 +38,7 @@ #include <basegfx/polygon/b2dpolygonclipper.hxx> #include <basegfx/polygon/b2dpolypolygontools.hxx> #include <comphelper/processfactory.hxx> +#include <editeng/flditem.hxx> #include <unotools/tempfile.hxx> #include <unotools/ucbstreamhelper.hxx> #include <unotools/streamwrap.hxx> @@ -132,7 +133,7 @@ struct PagePropertySet bool bIsHeaderFieldVisible; sal_Int32 nPageNumberingType; bool bIsDateTimeFieldFixed; - sal_Int32 nDateTimeFormat; + SvxDateFormat nDateTimeFormat; PagePropertySet() : bIsBackgroundVisible(false) , bAreBackgroundObjectsVisible(false) @@ -142,7 +143,7 @@ struct PagePropertySet , bIsHeaderFieldVisible(false) , nPageNumberingType(0) , bIsDateTimeFieldFixed(false) - , nDateTimeFormat(0) + , nDateTimeFormat(SvxDateFormat::AppDefault) { } }; diff --git a/include/editeng/flditem.hxx b/include/editeng/flditem.hxx index addb6974493e..06424ee34418 100644 --- a/include/editeng/flditem.hxx +++ b/include/editeng/flditem.hxx @@ -83,17 +83,18 @@ public: enum class SvxDateType { Fix, Var }; -enum SvxDateFormat { SVXDATEFORMAT_APPDEFAULT = 0, // Set as in App - SVXDATEFORMAT_SYSTEM, // Set as in System - SVXDATEFORMAT_STDSMALL, - SVXDATEFORMAT_STDBIG, - SVXDATEFORMAT_A, // 13.02.96 - SVXDATEFORMAT_B, // 13.02.1996 - SVXDATEFORMAT_C, // 13.Feb 1996 - SVXDATEFORMAT_D, // 13.February 1996 - SVXDATEFORMAT_E, // Tue, 13.February 1996 - SVXDATEFORMAT_F // Tuesday, 13.February 1996 - }; +enum class SvxDateFormat { + AppDefault = 0, // Set as in App + System, // Set as in System + StdSmall, + StdBig, + A, // 13.02.96 + B, // 13.02.1996 + C, // 13.Feb 1996 + D, // 13.February 1996 + E, // Tue, 13.February 1996 + F // Tuesday, 13.February 1996 +}; class EDITENG_DLLPUBLIC SvxDateField : public SvxFieldData { @@ -107,7 +108,7 @@ public: SvxDateField(); explicit SvxDateField( const Date& rDate, SvxDateType eType, - SvxDateFormat eFormat = SVXDATEFORMAT_STDSMALL ); + SvxDateFormat eFormat = SvxDateFormat::StdSmall ); sal_Int32 GetFixDate() const { return nFixDate; } void SetFixDate( const Date& rDate ) { nFixDate = rDate.GetDate(); } @@ -407,7 +408,9 @@ public: SV_DECL_PERSIST1( SvxDateTimeField, css::text::textfield::Type::PRESENTATION_DATE_TIME ) SvxDateTimeField(); - static OUString GetFormatted( Date const & rDate, tools::Time const & rTime, int eFormat, SvNumberFormatter& rFormatter, LanguageType eLanguage ); + static OUString GetFormatted( Date const & rDate, tools::Time const & rTime, + SvxDateFormat eDateFormat, SvxTimeFormat eTimeFormat, + SvNumberFormatter& rFormatter, LanguageType eLanguage ); virtual SvxFieldData* Clone() const override; virtual bool operator==( const SvxFieldData& ) const override; diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 7ca7d765ec6a..1ce02a7e2b53 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -1654,16 +1654,17 @@ OUString DrawingML::GetFieldValue( const css::uno::Reference< css::text::XTextRa { sal_Int32 nNumFmt = -1; rXPropSet->getPropertyValue(UNO_TC_PROP_NUMFORMAT) >>= nNumFmt; - switch(nNumFmt) + switch(static_cast<SvxDateFormat>(nNumFmt)) { - case SVXDATEFORMAT_STDSMALL: - case SVXDATEFORMAT_A: aFieldValue = "datetime"; // 13/02/96 + case SvxDateFormat::StdSmall: + case SvxDateFormat::A: aFieldValue = "datetime"; // 13/02/96 break; - case SVXDATEFORMAT_B: aFieldValue = "datetime1"; // 13/02/1996 + case SvxDateFormat::B: aFieldValue = "datetime1"; // 13/02/1996 break; - case SVXDATEFORMAT_STDBIG: - case SVXDATEFORMAT_D: aFieldValue = "datetime3"; // 13 February 1996 + case SvxDateFormat::StdBig: + case SvxDateFormat::D: aFieldValue = "datetime3"; // 13 February 1996 break; + default: break; } } else if(aFieldKind == "ExtTime") diff --git a/sc/source/ui/unoobj/fielduno.cxx b/sc/source/ui/unoobj/fielduno.cxx index 257bf8fa31df..d87bd6f1aa8d 100644 --- a/sc/source/ui/unoobj/fielduno.cxx +++ b/sc/source/ui/unoobj/fielduno.cxx @@ -947,7 +947,7 @@ uno::Any ScEditFieldObj::getPropertyValueDateTime(const OUString& rName) } if (rName == SC_UNONAME_NUMFMT) - return uno::makeAny<sal_Int32>(p->GetFormat()); + return uno::makeAny<sal_Int32>(static_cast<sal_Int32>(p->GetFormat())); } break; case text::textfield::Type::TIME: diff --git a/sd/inc/sdpage.hxx b/sd/inc/sdpage.hxx index 800cb24d7661..9e7c178437aa 100644 --- a/sd/inc/sdpage.hxx +++ b/sd/inc/sdpage.hxx @@ -28,6 +28,7 @@ #include <list> #include <memory> #include <vector> +#include <editeng/flditem.hxx> #include <svx/svdobj.hxx> #include <svx/fmpage.hxx> #include <xmloff/autolayout.hxx> @@ -71,7 +72,8 @@ namespace sd { bool mbDateTimeVisible; bool mbDateTimeIsFixed; OUString maDateTimeText; - int meDateTimeFormat; + SvxDateFormat meDateFormat; + SvxTimeFormat meTimeFormat; HeaderFooterSettings(); diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 9ef9fee3c543..57f11cdebf51 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -3126,7 +3126,8 @@ HeaderFooterSettings::HeaderFooterSettings() mbSlideNumberVisible = false; mbDateTimeVisible = true; mbDateTimeIsFixed = true; - meDateTimeFormat = SVXDATEFORMAT_A; + meDateFormat = SvxDateFormat::A; + meTimeFormat = SvxTimeFormat::AppDefault; } bool HeaderFooterSettings::operator==( const HeaderFooterSettings& rSettings ) const @@ -3138,7 +3139,8 @@ bool HeaderFooterSettings::operator==( const HeaderFooterSettings& rSettings ) c (mbSlideNumberVisible == rSettings.mbSlideNumberVisible) && (mbDateTimeVisible == rSettings.mbDateTimeVisible) && (mbDateTimeIsFixed == rSettings.mbDateTimeIsFixed) && - (meDateTimeFormat == rSettings.meDateTimeFormat) && + (meDateFormat == rSettings.meDateFormat) && + (meTimeFormat == rSettings.meTimeFormat) && (maDateTimeText == rSettings.maDateTimeText); } diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx index 24fad7dd7bd8..2bd1fcb2e2ae 100644 --- a/sd/source/filter/eppt/eppt.cxx +++ b/sd/source/filter/eppt/eppt.cxx @@ -619,17 +619,17 @@ void PPTWriter::ImplCreateHeaderFooters( css::uno::Reference< css::beans::XPrope SvxTimeFormat eTimeFormat = (SvxTimeFormat)( ( nFormat >> 4 ) & 0xf ); switch( eDateFormat ) { - case SVXDATEFORMAT_F : + case SvxDateFormat::F : nFormat = 1; break; - case SVXDATEFORMAT_D : + case SvxDateFormat::D : nFormat = 2; break; - case SVXDATEFORMAT_C : + case SvxDateFormat::C : nFormat = 4; break; default: - case SVXDATEFORMAT_A : + case SvxDateFormat::A : nFormat = 0; } switch( eTimeFormat ) diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index fe102637b60e..263e27deb041 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -1460,7 +1460,8 @@ void ImplSdPPTImport::SetHeaderFooterPageSettings( SdPage* pPage, const PptSlide SvxDateFormat eDateFormat; SvxTimeFormat eTimeFormat; PPTFieldEntry::GetDateTime( pHFE->nAtom & 0xff, eDateFormat, eTimeFormat ); - rHeaderFooterSettings.meDateTimeFormat = eDateFormat | ( static_cast<int>(eTimeFormat) << 4 ); + rHeaderFooterSettings.meDateFormat = eDateFormat; + rHeaderFooterSettings.meTimeFormat = eTimeFormat; } break; case 1 : diff --git a/sd/source/ui/app/sdmod2.cxx b/sd/source/ui/app/sdmod2.cxx index 89f0285abca0..f7c76b3e54b1 100644 --- a/sd/source/ui/app/sdmod2.cxx +++ b/sd/source/ui/app/sdmod2.cxx @@ -391,7 +391,8 @@ IMPL_LINK(SdModule, CalcFieldValueHdl, EditFieldInfo*, pInfo, void) Date aDate( Date::SYSTEM ); tools::Time aTime( tools::Time::SYSTEM ); LanguageType eLang = pInfo->GetOutliner()->GetLanguage( pInfo->GetPara(), pInfo->GetPos() ); - aRepresentation = SvxDateTimeField::GetFormatted( aDate, aTime, (SvxDateFormat)rSettings.meDateTimeFormat, *GetNumberFormatter(), eLang ); + aRepresentation = SvxDateTimeField::GetFormatted( aDate, aTime, + rSettings.meDateFormat, rSettings.meTimeFormat, *GetNumberFormatter(), eLang ); } } } diff --git a/sd/source/ui/app/sdpopup.cxx b/sd/source/ui/app/sdpopup.cxx index 2a9f8d9615bb..19d63c06b452 100644 --- a/sd/source/ui/app/sdpopup.cxx +++ b/sd/source/ui/app/sdpopup.cxx @@ -65,24 +65,24 @@ void SdFieldPopup::Fill( LanguageType eLanguage ) else CheckItem( 2 ); - //SVXDATEFORMAT_APPDEFAULT, // is not used - //SVXDATEFORMAT_SYSTEM, // is not used + //SvxDateFormat::AppDefault, // is not used + //SvxDateFormat::System, // is not used InsertItem( nID++, SdResId( STR_STANDARD_SMALL ), nStyle ); InsertItem( nID++, SdResId( STR_STANDARD_BIG ), nStyle ); SvNumberFormatter* pNumberFormatter = SD_MOD()->GetNumberFormatter(); - aDateField.SetFormat( SVXDATEFORMAT_A ); // 13.02.96 + aDateField.SetFormat( SvxDateFormat::A ); // 13.02.96 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); - aDateField.SetFormat( SVXDATEFORMAT_B ); // 13.02.1996 + aDateField.SetFormat( SvxDateFormat::B ); // 13.02.1996 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); - aDateField.SetFormat( SVXDATEFORMAT_C ); // 13.Feb 1996 + aDateField.SetFormat( SvxDateFormat::C ); // 13.Feb 1996 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); - aDateField.SetFormat( SVXDATEFORMAT_D ); // 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::D ); // 13.Februar 1996 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); - aDateField.SetFormat( SVXDATEFORMAT_E ); // Die, 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::E ); // Die, 13.Februar 1996 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); - aDateField.SetFormat( SVXDATEFORMAT_F ); // Dienstag, 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::F ); // Dienstag, 13.Februar 1996 InsertItem( nID++, aDateField.GetFormatted( *pNumberFormatter, eLanguage ), nStyle ); CheckItem( (sal_uInt16) ( pDateField->GetFormat() ) + 1 ); // - 2 + 3 ! diff --git a/sd/source/ui/dlg/dlgfield.cxx b/sd/source/ui/dlg/dlgfield.cxx index 188dfbded6e9..726a852f1305 100644 --- a/sd/source/ui/dlg/dlgfield.cxx +++ b/sd/source/ui/dlg/dlgfield.cxx @@ -177,26 +177,26 @@ void SdModifyFieldDlg::FillFormatList() const SvxDateField* pDateField = static_cast<const SvxDateField*>( pField ); SvxDateField aDateField( *pDateField ); - //SVXDATEFORMAT_APPDEFAULT, // not used - //SVXDATEFORMAT_SYSTEM, // not used + //SvxDateFormat::AppDefault, // not used + //SvxDateFormat::System, // not used m_pLbFormat->InsertEntry( SdResId( STR_STANDARD_SMALL ) ); m_pLbFormat->InsertEntry( SdResId( STR_STANDARD_BIG ) ); SvNumberFormatter* pNumberFormatter = SD_MOD()->GetNumberFormatter(); - aDateField.SetFormat( SVXDATEFORMAT_A ); // 13.02.96 + aDateField.SetFormat( SvxDateFormat::A ); // 13.02.96 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - aDateField.SetFormat( SVXDATEFORMAT_B ); // 13.02.1996 + aDateField.SetFormat( SvxDateFormat::B ); // 13.02.1996 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - aDateField.SetFormat( SVXDATEFORMAT_C ); // 13.Feb 1996 + aDateField.SetFormat( SvxDateFormat::C ); // 13.Feb 1996 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - aDateField.SetFormat( SVXDATEFORMAT_D ); // 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::D ); // 13.Februar 1996 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - aDateField.SetFormat( SVXDATEFORMAT_E ); // Die, 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::E ); // Die, 13.Februar 1996 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - aDateField.SetFormat( SVXDATEFORMAT_F ); // Dienstag, 13.Februar 1996 + aDateField.SetFormat( SvxDateFormat::F ); // Dienstag, 13.Februar 1996 m_pLbFormat->InsertEntry( aDateField.GetFormatted( *pNumberFormatter, eLangType ) ); - m_pLbFormat->SelectEntryPos( (sal_uInt16) ( pDateField->GetFormat() - 2 ) ); + m_pLbFormat->SelectEntryPos( static_cast<sal_uInt16>(pDateField->GetFormat()) - 2 ); } else if( dynamic_cast< const SvxExtTimeField *>( pField ) != nullptr ) { diff --git a/sd/source/ui/dlg/headerfooterdlg.cxx b/sd/source/ui/dlg/headerfooterdlg.cxx index 922aa47c027f..2cc869c8e3ab 100644 --- a/sd/source/ui/dlg/headerfooterdlg.cxx +++ b/sd/source/ui/dlg/headerfooterdlg.cxx @@ -91,23 +91,27 @@ namespace sd { const int nDateTimeFormatsCount = 12; -int const nDateTimeFormats[nDateTimeFormatsCount] = +struct DateAndTimeFormat { + SvxDateFormat meDateFormat; + SvxTimeFormat meTimeFormat; +}; +DateAndTimeFormat const nDateTimeFormats[nDateTimeFormatsCount] = { - SVXDATEFORMAT_A, - SVXDATEFORMAT_B, - SVXDATEFORMAT_C, - SVXDATEFORMAT_D, - SVXDATEFORMAT_E, - SVXDATEFORMAT_F, + { SvxDateFormat::A, SvxTimeFormat::AppDefault }, + { SvxDateFormat::B, SvxTimeFormat::AppDefault }, + { SvxDateFormat::C, SvxTimeFormat::AppDefault }, + { SvxDateFormat::D, SvxTimeFormat::AppDefault }, + { SvxDateFormat::E, SvxTimeFormat::AppDefault }, + { SvxDateFormat::F, SvxTimeFormat::AppDefault }, - SVXDATEFORMAT_A | (static_cast<int>(SvxTimeFormat::HH24_MM) << 4), - SVXDATEFORMAT_A | (static_cast<int>(SvxTimeFormat::HH12_MM) << 4), + { SvxDateFormat::A, SvxTimeFormat::HH24_MM }, + { SvxDateFormat::A, SvxTimeFormat::HH12_MM }, - static_cast<int>(SvxTimeFormat::HH24_MM) << 4, - static_cast<int>(SvxTimeFormat::HH24_MM_SS) << 4, + { SvxDateFormat::AppDefault, SvxTimeFormat::HH24_MM }, + { SvxDateFormat::AppDefault, SvxTimeFormat::HH24_MM_SS }, - static_cast<int>(SvxTimeFormat::HH12_MM) << 4, - static_cast<int>(SvxTimeFormat::HH12_MM_SS) << 4 + { SvxDateFormat::AppDefault, SvxTimeFormat::HH12_MM }, + { SvxDateFormat::AppDefault, SvxTimeFormat::HH12_MM_SS }, }; class HeaderFooterTabPage : public TabPage @@ -146,7 +150,7 @@ private: DECL_LINK( UpdateOnClickHdl, Button*, void ); DECL_LINK( LanguageChangeHdl, ListBox&, void ); - void FillFormatList(int eFormat); + void FillFormatList(sal_Int32 nSelectedPos); void GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet ); void GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet, SdPage* pPage ); @@ -439,7 +443,7 @@ HeaderFooterTabPage::HeaderFooterTabPage( vcl::Window* pWindow, SdDrawDocument* meOldLanguage = MsLangId::getRealLanguage( meOldLanguage ); mpCBDateTimeLanguage->SelectLanguage( meOldLanguage ); - FillFormatList(SVXDATEFORMAT_A); + FillFormatList(0); } HeaderFooterTabPage::~HeaderFooterTabPage() @@ -471,10 +475,10 @@ void HeaderFooterTabPage::dispose() IMPL_LINK_NOARG(HeaderFooterTabPage, LanguageChangeHdl, ListBox&, void) { - FillFormatList( (int)reinterpret_cast<sal_IntPtr>(mpCBDateTimeFormat->GetSelectEntryData()) ); + FillFormatList( mpCBDateTimeFormat->GetSelectEntryPos() ); } -void HeaderFooterTabPage::FillFormatList( int eFormat ) +void HeaderFooterTabPage::FillFormatList( sal_Int32 nSelectedPos ) { LanguageType eLanguage = mpCBDateTimeLanguage->GetSelectLanguage(); @@ -483,15 +487,14 @@ void HeaderFooterTabPage::FillFormatList( int eFormat ) Date aDate( Date::SYSTEM ); tools::Time aTime( tools::Time::SYSTEM ); - int nFormat; - for( nFormat = 0; nFormat < nDateTimeFormatsCount; nFormat++ ) + for( int nFormat = 0; nFormat < nDateTimeFormatsCount; nFormat++ ) { OUString aStr( SvxDateTimeField::GetFormatted( - aDate, aTime, nDateTimeFormats[nFormat], + aDate, aTime, + nDateTimeFormats[nFormat].meDateFormat, nDateTimeFormats[nFormat].meTimeFormat, *(SD_MOD()->GetNumberFormatter()), eLanguage ) ); const sal_Int32 nEntry = mpCBDateTimeFormat->InsertEntry( aStr ); - mpCBDateTimeFormat->SetEntryData( nEntry, reinterpret_cast<void*>((sal_IntPtr)nDateTimeFormats[nFormat] )); - if( nDateTimeFormats[nFormat] == eFormat ) + if( nFormat == nSelectedPos ) { mpCBDateTimeFormat->SelectEntryPos( nEntry ); mpCBDateTimeFormat->SetText( aStr ); @@ -520,8 +523,7 @@ void HeaderFooterTabPage::init( const HeaderFooterSettings& rSettings, bool bNot for( sal_Int32 nPos = 0; nPos < mpCBDateTimeFormat->GetEntryCount(); nPos++ ) { - int nFormat = (int)reinterpret_cast<sal_IntPtr>(mpCBDateTimeFormat->GetEntryData( nPos )); - if( nFormat == rSettings.meDateTimeFormat ) + if( nDateTimeFormats[nPos].meDateFormat == rSettings.meDateFormat && nDateTimeFormats[nPos].meTimeFormat == rSettings.meTimeFormat ) { mpCBDateTimeFormat->SelectEntryPos( nPos ); mpCBDateTimeFormat->SetText( mpCBDateTimeFormat->GetEntry(nPos) ); @@ -544,7 +546,11 @@ void HeaderFooterTabPage::getData( HeaderFooterSettings& rSettings, bool& rNotOn rSettings.maHeaderText = mpTBHeader->GetText(); if( mpCBDateTimeFormat->GetSelectEntryCount() == 1 ) - rSettings.meDateTimeFormat = (int)reinterpret_cast<sal_IntPtr>(mpCBDateTimeFormat->GetSelectEntryData()); + { + sal_Int32 nPos = mpCBDateTimeFormat->GetSelectEntryPos(); + rSettings.meDateFormat = nDateTimeFormats[nPos].meDateFormat; + rSettings.meTimeFormat = nDateTimeFormats[nPos].meTimeFormat; + } LanguageType eLanguage = mpCBDateTimeLanguage->GetSelectLanguage(); if( eLanguage != meOldLanguage ) diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 341a74dd8c62..cc129aa487f3 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -1590,7 +1590,9 @@ void ImplPDFExportComments( const uno::Reference< drawing::XDrawPage >& xPage, v Date aDate( aDateTime.Day, aDateTime.Month, aDateTime.Year ); ::tools::Time aTime( ::tools::Time::EMPTY ); - OUString aStr( SvxDateTimeField::GetFormatted( aDate, aTime, SVXDATEFORMAT_B, *(SD_MOD()->GetNumberFormatter()), eLanguage ) ); + OUString aStr = SvxDateTimeField::GetFormatted( aDate, aTime, + SvxDateFormat::B, SvxTimeFormat::AppDefault, + *(SD_MOD()->GetNumberFormatter()), eLanguage ); vcl::PDFNote aNote; OUString sTitle( xAnnotation->getAuthor() ); diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx index 84f7a8399f36..76167735cf7b 100644 --- a/sd/source/ui/unoidl/unopage.cxx +++ b/sd/source/ui/unoidl/unopage.cxx @@ -922,7 +922,8 @@ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName if( ! ( aValue >>= nValue ) ) throw lang::IllegalArgumentException(); - aHeaderFooterSettings.meDateTimeFormat = nValue; + aHeaderFooterSettings.meDateFormat = static_cast<SvxDateFormat>(nValue & 0x0f); + aHeaderFooterSettings.meTimeFormat = static_cast<SvxTimeFormat>((nValue >> 4) & 0x0f); break; } } @@ -1289,7 +1290,11 @@ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName ) } break; case WID_PAGE_DATETIMEFORMAT: - aAny <<= (sal_Int32)GetPage()->getHeaderFooterSettings().meDateTimeFormat; + { + auto const & rSettings = GetPage()->getHeaderFooterSettings(); + sal_Int32 x = static_cast<sal_Int32>(rSettings.meDateFormat) & (static_cast<sal_Int32>(rSettings.meTimeFormat) << 4); + aAny <<= x; + } break; case WID_TRANSITION_TYPE: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits