diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/msfilter/eschesdo.cxx | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/filter/source/msfilter/eschesdo.cxx b/filter/source/msfilter/eschesdo.cxx index d325345254cb..c011ec3a05a1 100644 --- a/filter/source/msfilter/eschesdo.cxx +++ b/filter/source/msfilter/eschesdo.cxx @@ -868,32 +868,27 @@ ImplEscherExSdr::~ImplEscherExSdr() bool ImplEscherExSdr::ImplInitPage( const SdrPage& rPage ) { - do + SvxDrawPage* pSvxDrawPage; + if ( mpSdrPage != &rPage || !mXDrawPage.is() ) { - SvxDrawPage* pSvxDrawPage; - if ( mpSdrPage != &rPage || !mXDrawPage.is() ) - { - // eventually write SolverContainer of current page, deletes the Solver - ImplFlushSolverContainer(); - - mpSdrPage = nullptr; - mXDrawPage = pSvxDrawPage = new SvxFmDrawPage( const_cast<SdrPage*>(&rPage) ); - mXShapes.set( mXDrawPage, UNO_QUERY ); - if ( !mXShapes.is() ) - break; - if ( !ImplInitPageValues() ) // ImplEESdrWriter - break; - mpSdrPage = &rPage; - - mpSolverContainer = new EscherSolverContainer; - } - else - pSvxDrawPage = SvxDrawPage::getImplementation(mXDrawPage); - - return pSvxDrawPage != nullptr; - } while ( false ); + // eventually write SolverContainer of current page, deletes the Solver + ImplFlushSolverContainer(); + + mpSdrPage = nullptr; + mXDrawPage = pSvxDrawPage = new SvxFmDrawPage( const_cast<SdrPage*>(&rPage) ); + mXShapes.set( mXDrawPage, UNO_QUERY ); + if ( !mXShapes.is() ) + return false; + if ( !ImplInitPageValues() ) // ImplEESdrWriter + return false; + mpSdrPage = &rPage; + + mpSolverContainer = new EscherSolverContainer; + } + else + pSvxDrawPage = SvxDrawPage::getImplementation(mXDrawPage); - return false; + return pSvxDrawPage != nullptr; } bool ImplEscherExSdr::ImplInitUnoShapes( const Reference< XShapes >& rxShapes ) |