sd/source/core/stlsheet.cxx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-)
New commits: commit e955433c3574cb602dedba96bc645898f97858bf Author: Tobias Lippert <d...@fastmail.fm> Date: Wed Mar 5 19:51:58 2014 +0100 Use SfxStyleSheetIterator to iterate over style sheets in sd/stlsheet.cxx It is not possible to access n#708518. We must hope that this is not a regression Change-Id: I4500d72cc7d6fc488fb015aa8b7907238fa09ac0 Reviewed-on: https://gerrit.libreoffice.org/8484 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx index 3611ce2..ce7fbf1 100644 --- a/sd/source/core/stlsheet.cxx +++ b/sd/source/core/stlsheet.cxx @@ -56,6 +56,7 @@ #include "../ui/inc/ViewShellBase.hxx" #include <editeng/boxitem.hxx> +#include <boost/make_shared.hpp> using ::osl::MutexGuard; using ::osl::ClearableMutexGuard; @@ -970,19 +971,17 @@ void SAL_CALL SdStyleSheet::setParentStyle( const OUString& rParentName ) throw if( !rParentName.isEmpty() ) { - const SfxStyles& rStyles = mxPool->GetStyles(); - - /* Use reverse iterator to find the parents quicker - most probably its inserted recently. - * Also avoids/fixes the issue n#708518 - * To fix it completely its probably wiser to compare this->GetName() and pStyle->GetName() or use complete names for styles (?) - */ - for( SfxStyles::const_reverse_iterator iter( rStyles.rbegin() ); iter != rStyles.rend(); ++iter ) + SfxStyleSheetIteratorPtr aSSSI = boost::make_shared<SfxStyleSheetIterator>(mxPool.get(), nFamily, SFX_STYLE_FAMILY_ALL); + for (SfxStyleSheetBase *pStyle = aSSSI->First(); pStyle; pStyle = aSSSI->Next()) { - SdStyleSheet* pStyle = static_cast< SdStyleSheet* >( (*iter).get() ); - if( pStyle && (pStyle->nFamily == nFamily) && (pStyle->msApiName == rParentName) ) + // we hope that we have only sd style sheets + SdStyleSheet* pSdStyleSheet = static_cast<SdStyleSheet*>(pStyle); + if (pSdStyleSheet->msApiName == rParentName) { if( pStyle != this ) + { SetParent( pStyle->GetName() ); + } return; } }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits