diff options
author | Vitaliy Anderson <vanderson@smartru.com> | 2017-01-19 02:09:04 -0800 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-27 07:35:47 +0000 |
commit | 91ccb4dbf7cbe7e684c7a8183863e597d7205e57 (patch) | |
tree | 6e6a942e91e2c12fe30a9a7222324493ba9a75e3 /sw | |
parent | 78f5923e7cec0f6a0b3dbcbe29bad1980593454c (diff) |
Compatibility options refactoring. Part 1
It relate to reduce the nubmer of copy-paste the same code
and simplify adding compability options.
Also using enum class instead enum can eliminate to occurrence
an error relate to access to out of range an array.
Change-Id: I07b862aac5f88da4a98e2273cb14daa09e70eacb
Reviewed-on: https://gerrit.libreoffice.org/33543
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/doc/DocumentSettingManager.cxx | 24 | ||||
-rw-r--r-- | sw/source/ui/config/optcomp.cxx | 338 |
2 files changed, 127 insertions, 235 deletions
diff --git a/sw/source/core/doc/DocumentSettingManager.cxx b/sw/source/core/doc/DocumentSettingManager.cxx index 22a258189580..ec0eb827e701 100644 --- a/sw/source/core/doc/DocumentSettingManager.cxx +++ b/sw/source/core/doc/DocumentSettingManager.cxx @@ -98,18 +98,18 @@ sw::DocumentSettingManager::DocumentSettingManager(SwDoc &rDoc) if (!utl::ConfigManager::IsAvoidConfig()) { const SvtCompatibilityOptions aOptions; - mbParaSpaceMax = aOptions.IsAddSpacing(); - mbParaSpaceMaxAtPages = aOptions.IsAddSpacingAtPages(); - mbTabCompat = !aOptions.IsUseOurTabStops(); - mbUseVirtualDevice = !aOptions.IsUsePrtDevice(); - mbAddExternalLeading = !aOptions.IsNoExtLeading(); - mbOldLineSpacing = aOptions.IsUseLineSpacing(); - mbAddParaSpacingToTableCells = aOptions.IsAddTableSpacing(); - mbUseFormerObjectPos = aOptions.IsUseObjectPositioning(); - mbUseFormerTextWrapping = aOptions.IsUseOurTextWrapping(); - mbConsiderWrapOnObjPos = aOptions.IsConsiderWrappingStyle(); - mbDoNotJustifyLinesWithManualBreak = !aOptions.IsExpandWordSpace(); - mbMsWordCompTrailingBlanks = aOptions.IsMsWordCompTrailingBlanks(); + mbParaSpaceMax = aOptions.GetDefault( SvtCompatibilityEntry::Index::AddSpacing ); + mbParaSpaceMaxAtPages = aOptions.GetDefault( SvtCompatibilityEntry::Index::AddSpacingAtPages ); + mbTabCompat = !aOptions.GetDefault( SvtCompatibilityEntry::Index::UseOurTabStops ); + mbUseVirtualDevice = !aOptions.GetDefault( SvtCompatibilityEntry::Index::UsePrtMetrics ); + mbAddExternalLeading = !aOptions.GetDefault( SvtCompatibilityEntry::Index::NoExtLeading ); + mbOldLineSpacing = aOptions.GetDefault( SvtCompatibilityEntry::Index::UseLineSpacing ); + mbAddParaSpacingToTableCells = aOptions.GetDefault( SvtCompatibilityEntry::Index::AddTableSpacing ); + mbUseFormerObjectPos = aOptions.GetDefault( SvtCompatibilityEntry::Index::UseObjectPositioning ); + mbUseFormerTextWrapping = aOptions.GetDefault( SvtCompatibilityEntry::Index::UseOurTextWrapping ); + mbConsiderWrapOnObjPos = aOptions.GetDefault( SvtCompatibilityEntry::Index::ConsiderWrappingStyle ); + mbDoNotJustifyLinesWithManualBreak = !aOptions.GetDefault( SvtCompatibilityEntry::Index::ExpandWordSpace ); + mbMsWordCompTrailingBlanks = aOptions.GetDefault( SvtCompatibilityEntry::Index::MsWordTrailingBlanks ); } else { diff --git a/sw/source/ui/config/optcomp.cxx b/sw/source/ui/config/optcomp.cxx index 69e54a3bbcf7..59d71431ba47 100644 --- a/sw/source/ui/config/optcomp.cxx +++ b/sw/source/ui/config/optcomp.cxx @@ -41,60 +41,15 @@ using namespace ::com::sun::star::document; using namespace ::com::sun::star::uno; using namespace ::std; -struct CompatibilityItem -{ - OUString m_sName; - OUString m_sModule; - bool m_bUsePrtMetrics; - bool m_bAddSpacing; - bool m_bAddSpacingAtPages; - bool m_bUseOurTabStops; - bool m_bNoExtLeading; - bool m_bUseLineSpacing; - bool m_bAddTableSpacing; - bool m_bUseObjPos; - bool m_bUseOurTextWrapping; - bool m_bConsiderWrappingStyle; - bool m_bExpandWordSpace; - bool m_bProtectForm; - bool m_bMsWordCompTrailingBlanks; - bool m_bIsDefault; - - CompatibilityItem( const OUString& _rName, const OUString& _rModule, - bool _bUsePrtMetrics, bool _bAddSpacing, bool _bAddSpacingAtPages, - bool _bUseOurTabStops, bool _bNoExtLeading, bool _bUseLineSpacing, - bool _bAddTableSpacing, bool _bUseObjPos, bool _bUseOurTextWrapping, - bool _bConsiderWrappingStyle, bool _bExpandWordSpace, bool _bProtectForm, - bool _bMsWordCompTrailingBlanks, bool _bIsDefault ) : - - m_sName ( _rName ), - m_sModule ( _rModule ), - m_bUsePrtMetrics ( _bUsePrtMetrics ), - m_bAddSpacing ( _bAddSpacing ), - m_bAddSpacingAtPages ( _bAddSpacingAtPages ), - m_bUseOurTabStops ( _bUseOurTabStops ), - m_bNoExtLeading ( _bNoExtLeading ), - m_bUseLineSpacing ( _bUseLineSpacing ), - m_bAddTableSpacing ( _bAddTableSpacing ), - m_bUseObjPos ( _bUseObjPos ), - m_bUseOurTextWrapping ( _bUseOurTextWrapping ), - m_bConsiderWrappingStyle( _bConsiderWrappingStyle ), - m_bExpandWordSpace ( _bExpandWordSpace ), - m_bProtectForm ( _bProtectForm), - m_bMsWordCompTrailingBlanks( _bMsWordCompTrailingBlanks), - m_bIsDefault ( _bIsDefault ) {} -}; - struct SwCompatibilityOptPage_Impl { - typedef vector< CompatibilityItem > SwCompatibilityItemList; + typedef vector< SvtCompatibilityEntry > SwCompatibilityItemList; - SwCompatibilityItemList m_aList; + SwCompatibilityItemList m_aList; }; SwCompatibilityOptPage::SwCompatibilityOptPage(vcl::Window* pParent, const SfxItemSet& rSet) - : SfxTabPage(pParent, "OptCompatPage", - "modules/swriter/ui/optcompatpage.ui", &rSet) + : SfxTabPage(pParent, "OptCompatPage", "modules/swriter/ui/optcompatpage.ui", &rSet) , m_pWrtShell(nullptr) , m_pImpl(new SwCompatibilityOptPage_Impl) , m_nSavedOptions(0) @@ -104,15 +59,18 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(vcl::Window* pParent, const SfxIt get(m_pOptionsLB, "options"); get(m_pDefaultPB, "default"); - for (sal_Int32 nId = COPT_USE_PRINTERDEVICE; nId <= COPT_MS_WORD_COMP_TRAILING_BLANKS; ++nId) + for ( int i = (static_cast<int>(SvtCompatibilityEntry::Index::Module) + 1); i < static_cast<int>(SvtCompatibilityEntry::Index::INVALID); ++i ) { - const OUString sEntry = m_pFormattingLB->GetEntry(nId); + int nCoptIdx = i - 2; /* Do not consider "Name" & "Module" indexes */ + + const OUString sEntry = m_pFormattingLB->GetEntry( nCoptIdx ); SvTreeListEntry* pEntry = m_pOptionsLB->SvTreeListBox::InsertEntry( sEntry ); if ( pEntry ) { m_pOptionsLB->SetCheckButtonState( pEntry, SvButtonState::Unchecked ); } } + m_sUserEntry = m_pFormattingLB->GetEntry(m_pFormattingLB->GetEntryCount()-1); m_pFormattingLB->Clear(); @@ -227,21 +185,10 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet ) // loading file formats Sequence< Sequence< PropertyValue > > aList = m_aConfigItem.GetList(); - OUString sName; - OUString sModule; - bool bUsePrtMetrics = false; - bool bAddSpacing = false; - bool bAddSpacingAtPages = false; - bool bUseOurTabStops = false; - bool bNoExtLeading = false; - bool bUseLineSpacing = false; - bool bAddTableSpacing = false; - bool bUseObjPos = false; - bool bUseOurTextWrapping = false; - bool bConsiderWrappingStyle = false; - bool bExpandWordSpace = false; - bool bProtectForm = false; - bool bMsWordCompTrailingBlanks = false; + + SvtCompatibilityEntry aEntry; + aEntry.setValue<bool>( SvtCompatibilityEntry::Index::ExpandWordSpace, false ); + const sal_Int32 nCount = aList.getLength(); for ( sal_Int32 i = 0; i < nCount; ++i ) { @@ -250,73 +197,51 @@ void SwCompatibilityOptPage::InitControls( const SfxItemSet& rSet ) for ( sal_Int32 j = 0; j < nEntries; j++ ) { PropertyValue aValue = rEntry[j]; - if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_NAME ) - aValue.Value >>= sName; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_MODULE ) - aValue.Value >>= sModule; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_USEPRTMETRICS ) - aValue.Value >>= bUsePrtMetrics; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_ADDSPACING ) - aValue.Value >>= bAddSpacing; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_ADDSPACINGATPAGES ) - aValue.Value >>= bAddSpacingAtPages; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_USEOURTABSTOPS ) - aValue.Value >>= bUseOurTabStops; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_NOEXTLEADING ) - aValue.Value >>= bNoExtLeading; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_USELINESPACING ) - aValue.Value >>= bUseLineSpacing; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_ADDTABLESPACING ) - aValue.Value >>= bAddTableSpacing; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_USEOBJECTPOSITIONING ) - aValue.Value >>= bUseObjPos; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_USEOURTEXTWRAPPING ) - aValue.Value >>= bUseOurTextWrapping; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_CONSIDERWRAPPINGSTYLE ) - aValue.Value >>= bConsiderWrappingStyle; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE ) - aValue.Value >>= bExpandWordSpace; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_PROTECTFORM ) - aValue.Value >>= bProtectForm; - else if ( aValue.Name == COMPATIBILITY_PROPERTYNAME_MSWORDTRAILINGBLANKS ) - aValue.Value >>= bMsWordCompTrailingBlanks; + aEntry.setValue( SvtCompatibilityEntry::getIndex(aValue.Name), aValue.Value ); } - const bool bIsUserEntry = sName == "_user"; - const bool bIsDefaultEntry = sName == COMPATIBILITY_DEFAULT_NAME; + const OUString sEntryName = aEntry.getValue<OUString>( SvtCompatibilityEntry::Index::Name ); + + const bool bIsUserEntry = ( sEntryName == SvtCompatibilityEntry::getUserEntryName() ); + const bool bIsDefaultEntry = ( sEntryName == SvtCompatibilityEntry::getDefaultEntryName() ); + + aEntry.setDefaultEntry( bIsDefaultEntry ); - CompatibilityItem aItem( - sName, sModule, bUsePrtMetrics, bAddSpacing, - bAddSpacingAtPages, bUseOurTabStops, bNoExtLeading, - bUseLineSpacing, bAddTableSpacing, bUseObjPos, - bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace, - bProtectForm, bMsWordCompTrailingBlanks, bIsDefaultEntry ); - m_pImpl->m_aList.push_back( aItem ); + m_pImpl->m_aList.push_back( aEntry ); - if ( aItem.m_bIsDefault ) + if ( aEntry.isDefaultEntry() ) continue; OUString sNewEntry; if ( bIsUserEntry ) sNewEntry = m_sUserEntry; - else if ( pObjShell && !sName.isEmpty() ) + + else if ( pObjShell && !sEntryName.isEmpty() ) { SfxFilterContainer* pFacCont = pObjShell->GetFactory().GetFilterContainer(); - std::shared_ptr<const SfxFilter> pFilter = pFacCont->GetFilter4FilterName( sName ); + std::shared_ptr<const SfxFilter> pFilter = pFacCont->GetFilter4FilterName( sEntryName ); if ( pFilter ) sNewEntry = pFilter->GetUIName(); } if ( sNewEntry.isEmpty() ) - sNewEntry = sName; + sNewEntry = sEntryName; const sal_Int32 nPos = m_pFormattingLB->InsertEntry( sNewEntry ); sal_uLong nOptions = convertBools2Ulong_Impl( - bUsePrtMetrics, bAddSpacing, bAddSpacingAtPages, - bUseOurTabStops, bNoExtLeading, bUseLineSpacing, - bAddTableSpacing, bUseObjPos, bUseOurTextWrapping, - bConsiderWrappingStyle, bExpandWordSpace, bProtectForm, - bMsWordCompTrailingBlanks ); + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::UsePrtMetrics ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::AddSpacing ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::AddSpacingAtPages ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::UseOurTabStops ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::NoExtLeading ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::UseLineSpacing ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::AddTableSpacing ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::UseObjectPositioning ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::UseOurTextWrapping ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::ConsiderWrappingStyle ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::ExpandWordSpace ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::ProtectForm ), + aEntry.getValue<bool>( SvtCompatibilityEntry::Index::MsWordTrailingBlanks ) ); m_pFormattingLB->SetEntryData( nPos, reinterpret_cast<void*>((sal_IntPtr)nOptions) ); } @@ -336,36 +261,18 @@ IMPL_LINK_NOARG(SwCompatibilityOptPage, UseAsDefaultHdl, Button*, void) "modules/swriter/ui/querydefaultcompatdialog.ui"); if (aQuery->Execute() == RET_YES) { - for ( vector< CompatibilityItem >::iterator pItem = m_pImpl->m_aList.begin(); + for ( vector< SvtCompatibilityEntry >::iterator pItem = m_pImpl->m_aList.begin(); pItem != m_pImpl->m_aList.end(); ++pItem ) { - if ( pItem->m_bIsDefault ) + if ( pItem->isDefaultEntry() ) { const sal_Int32 nCount = m_pOptionsLB->GetEntryCount(); for ( sal_Int32 i = 0; i < nCount; ++i ) { bool bChecked = m_pOptionsLB->IsChecked(static_cast< sal_uLong >( i )); - CompatibilityOptions eOption = static_cast< CompatibilityOptions >(i); - switch ( eOption ) - { - case COPT_USE_PRINTERDEVICE : pItem->m_bUsePrtMetrics = bChecked; break; - case COPT_ADD_SPACING : pItem->m_bAddSpacing = bChecked; break; - case COPT_ADD_SPACING_AT_PAGES : pItem->m_bAddSpacingAtPages = bChecked; break; - case COPT_USE_OUR_TABSTOPS : pItem->m_bUseOurTabStops = bChecked; break; - case COPT_NO_EXTLEADING : pItem->m_bNoExtLeading = bChecked; break; - case COPT_USE_LINESPACING : pItem->m_bUseLineSpacing = bChecked; break; - case COPT_ADD_TABLESPACING : pItem->m_bAddTableSpacing = bChecked; break; - case COPT_USE_OBJECTPOSITIONING: pItem->m_bUseObjPos = bChecked; break; - case COPT_USE_OUR_TEXTWRAPPING: pItem->m_bUseOurTextWrapping = bChecked; break; - case COPT_CONSIDER_WRAPPINGSTYLE: pItem->m_bConsiderWrappingStyle = bChecked; break; - case COPT_EXPAND_WORDSPACE: pItem->m_bExpandWordSpace = bChecked; break; - case COPT_PROTECT_FORM: pItem->m_bProtectForm = bChecked; break; - case COPT_MS_WORD_COMP_TRAILING_BLANKS: pItem->m_bMsWordCompTrailingBlanks = bChecked; break; - default: - { - OSL_FAIL("SwCompatibilityOptPage::UseAsDefaultHdl(): wrong option" ); - } - } + + int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */ + pItem->setValue<bool>( SvtCompatibilityEntry::Index(nCoptIdx), bChecked ); } break; } @@ -394,19 +301,19 @@ sal_uLong SwCompatibilityOptPage::GetDocumentOptions() const { const IDocumentSettingAccess& rIDocumentSettingAccess = m_pWrtShell->getIDocumentSettingAccess(); nRet = convertBools2Ulong_Impl( - !rIDocumentSettingAccess.get(DocumentSettingId::USE_VIRTUAL_DEVICE), - rIDocumentSettingAccess.get(DocumentSettingId::PARA_SPACE_MAX), - rIDocumentSettingAccess.get(DocumentSettingId::PARA_SPACE_MAX_AT_PAGES), - !rIDocumentSettingAccess.get(DocumentSettingId::TAB_COMPAT), - !rIDocumentSettingAccess.get(DocumentSettingId::ADD_EXT_LEADING), - rIDocumentSettingAccess.get(DocumentSettingId::OLD_LINE_SPACING), - rIDocumentSettingAccess.get(DocumentSettingId::ADD_PARA_SPACING_TO_TABLE_CELLS), - rIDocumentSettingAccess.get(DocumentSettingId::USE_FORMER_OBJECT_POS), - rIDocumentSettingAccess.get(DocumentSettingId::USE_FORMER_TEXT_WRAPPING), - rIDocumentSettingAccess.get(DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION), - !rIDocumentSettingAccess.get(DocumentSettingId::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK), - rIDocumentSettingAccess.get(DocumentSettingId::PROTECT_FORM), - rIDocumentSettingAccess.get(DocumentSettingId::MS_WORD_COMP_TRAILING_BLANKS)); + !rIDocumentSettingAccess.get( DocumentSettingId::USE_VIRTUAL_DEVICE ), + rIDocumentSettingAccess.get( DocumentSettingId::PARA_SPACE_MAX ), + rIDocumentSettingAccess.get( DocumentSettingId::PARA_SPACE_MAX_AT_PAGES ), + !rIDocumentSettingAccess.get( DocumentSettingId::TAB_COMPAT ), + !rIDocumentSettingAccess.get( DocumentSettingId::ADD_EXT_LEADING ), + rIDocumentSettingAccess.get( DocumentSettingId::OLD_LINE_SPACING ), + rIDocumentSettingAccess.get( DocumentSettingId::ADD_PARA_SPACING_TO_TABLE_CELLS ), + rIDocumentSettingAccess.get( DocumentSettingId::USE_FORMER_OBJECT_POS ), + rIDocumentSettingAccess.get( DocumentSettingId::USE_FORMER_TEXT_WRAPPING ), + rIDocumentSettingAccess.get( DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION ), + !rIDocumentSettingAccess.get( DocumentSettingId::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK ), + rIDocumentSettingAccess.get( DocumentSettingId::PROTECT_FORM ), + rIDocumentSettingAccess.get( DocumentSettingId::MS_WORD_COMP_TRAILING_BLANKS ) ); } return nRet; } @@ -414,16 +321,9 @@ sal_uLong SwCompatibilityOptPage::GetDocumentOptions() const void SwCompatibilityOptPage::WriteOptions() { m_aConfigItem.Clear(); - for ( vector< CompatibilityItem >::const_iterator pItem = m_pImpl->m_aList.begin(); + for ( vector< SvtCompatibilityEntry >::const_iterator pItem = m_pImpl->m_aList.begin(); pItem != m_pImpl->m_aList.end(); ++pItem ) - m_aConfigItem.AppendItem( - pItem->m_sName, pItem->m_sModule, pItem->m_bUsePrtMetrics, pItem->m_bAddSpacing, - pItem->m_bAddSpacingAtPages, pItem->m_bUseOurTabStops, - pItem->m_bNoExtLeading, pItem->m_bUseLineSpacing, - pItem->m_bAddTableSpacing, pItem->m_bUseObjPos, - pItem->m_bUseOurTextWrapping, pItem->m_bConsiderWrappingStyle, - pItem->m_bExpandWordSpace, pItem->m_bProtectForm, - pItem->m_bMsWordCompTrailingBlanks ); + m_aConfigItem.AppendItem(*pItem); } VclPtr<SfxTabPage> SwCompatibilityOptPage::Create( vcl::Window* pParent, const SfxItemSet* rAttrSet ) @@ -440,83 +340,75 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* ) const sal_uLong nCount = m_pOptionsLB->GetEntryCount(); OSL_ENSURE( nCount <= 32, "SwCompatibilityOptPage::Reset(): entry overflow" ); - bool bSetParaSpaceMax = false; - for ( sal_uLong i = 0; i < nCount; ++i ) { - CompatibilityOptions nOption = static_cast< CompatibilityOptions >(i); bool bChecked = m_pOptionsLB->IsChecked(i); bool bSavedChecked = ( ( nSavedOptions & 0x00000001 ) == 0x00000001 ); if ( bChecked != bSavedChecked ) { - if ( COPT_USE_PRINTERDEVICE == nOption ) - { - m_pWrtShell->SetUseVirDev( !bChecked ); - bModified = true; - } - else if ( ( COPT_ADD_SPACING == nOption || COPT_ADD_SPACING_AT_PAGES == nOption ) && !bSetParaSpaceMax ) - bSetParaSpaceMax = true; - else if ( COPT_USE_OUR_TABSTOPS == nOption ) - { - m_pWrtShell->SetTabCompat( !bChecked ); - bModified = true; - } - else if ( COPT_NO_EXTLEADING == nOption ) - { - m_pWrtShell->SetAddExtLeading( !bChecked ); - bModified = true; - } - else if ( COPT_USE_LINESPACING == nOption ) - { - m_pWrtShell->SetUseFormerLineSpacing( bChecked ); - bModified = true; - } - else if ( COPT_ADD_TABLESPACING == nOption ) - { - m_pWrtShell->SetAddParaSpacingToTableCells( bChecked ); - bModified = true; - } - else if ( COPT_USE_OBJECTPOSITIONING == nOption ) - { - m_pWrtShell->SetUseFormerObjectPositioning( bChecked ); - bModified = true; - } - else if ( COPT_USE_OUR_TEXTWRAPPING == nOption ) + int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */ + switch ( SvtCompatibilityEntry::Index(nCoptIdx) ) { - m_pWrtShell->SetUseFormerTextWrapping( bChecked ); - bModified = true; - } - else if ( COPT_CONSIDER_WRAPPINGSTYLE == nOption ) - { - m_pWrtShell->SetConsiderWrapOnObjPos( bChecked ); - bModified = true; - } - else if ( COPT_EXPAND_WORDSPACE == nOption ) - { - m_pWrtShell->SetDoNotJustifyLinesWithManualBreak( !bChecked ); - bModified = true; - } - else if ( COPT_PROTECT_FORM == nOption ) - { - m_pWrtShell->SetProtectForm( bChecked ); - bModified = true; - } - else if ( COPT_MS_WORD_COMP_TRAILING_BLANKS == nOption ) - { - m_pWrtShell->SetMsWordCompTrailingBlanks( bChecked ); - bModified = true; + case SvtCompatibilityEntry::Index::UsePrtMetrics: + m_pWrtShell->SetUseVirDev( !bChecked ); + break; + + case SvtCompatibilityEntry::Index::AddSpacing: + m_pWrtShell->SetParaSpaceMax( bChecked ); + break; + + case SvtCompatibilityEntry::Index::AddSpacingAtPages: + m_pWrtShell->SetParaSpaceMaxAtPages( bChecked ); + break; + + case SvtCompatibilityEntry::Index::UseOurTabStops: + m_pWrtShell->SetTabCompat( !bChecked ); + break; + + case SvtCompatibilityEntry::Index::NoExtLeading: + m_pWrtShell->SetAddExtLeading( !bChecked ); + break; + + case SvtCompatibilityEntry::Index::UseLineSpacing: + m_pWrtShell->SetUseFormerLineSpacing( bChecked ); + break; + + case SvtCompatibilityEntry::Index::AddTableSpacing: + m_pWrtShell->SetAddParaSpacingToTableCells( bChecked ); + break; + + case SvtCompatibilityEntry::Index::UseObjectPositioning: + m_pWrtShell->SetUseFormerObjectPositioning( bChecked ); + break; + + case SvtCompatibilityEntry::Index::UseOurTextWrapping: + m_pWrtShell->SetUseFormerTextWrapping( bChecked ); + break; + + case SvtCompatibilityEntry::Index::ConsiderWrappingStyle: + m_pWrtShell->SetConsiderWrapOnObjPos( bChecked ); + break; + + case SvtCompatibilityEntry::Index::ExpandWordSpace: + m_pWrtShell->SetDoNotJustifyLinesWithManualBreak( !bChecked ); + break; + + case SvtCompatibilityEntry::Index::ProtectForm: + m_pWrtShell->SetProtectForm( bChecked ); + break; + + case SvtCompatibilityEntry::Index::MsWordTrailingBlanks: + m_pWrtShell->SetMsWordCompTrailingBlanks( bChecked ); + break; + + default: + break; } + bModified = true; } nSavedOptions = nSavedOptions >> 1; } - - if ( bSetParaSpaceMax ) - { - m_pWrtShell->SetParaSpaceMax( m_pOptionsLB->IsChecked( (sal_uLong)COPT_ADD_SPACING ) ); - m_pWrtShell->SetParaSpaceMaxAtPages( m_pOptionsLB->IsChecked( (sal_uLong)COPT_ADD_SPACING_AT_PAGES ) ); - bModified = true; - } } if ( bModified ) |