sw/source/core/access/accmap.cxx | 1 sw/source/core/tox/toxhlp.cxx | 1 sw/source/core/unocore/unotext.cxx | 8 + sw/source/ui/config/optpage.cxx | 2 writerfilter/debug_setup.mk | 2 writerfilter/inc/resourcemodel/TableManager.hxx | 64 +++++++-------- writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 4 writerfilter/source/dmapper/DomainMapper_Impl.cxx | 15 +-- writerfilter/source/dmapper/DomainMapper_Impl.hxx | 2 9 files changed, 55 insertions(+), 44 deletions(-)
New commits: commit 0e26bd20978cbdd7c59368044c2a21b98ffba164 Author: Cédric Bosdonnat <cedric.bosdonnat....@free.fr> Date: Tue Nov 8 14:39:31 2011 +0100 writerfilter import, fixed the shapes import In some cases like an OLE object inside a textbox, the imported document was empty. This was due to unremoved text context in dmapper. diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index b65cb21..0f90573 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -188,7 +188,7 @@ DomainMapper_Impl::DomainMapper_Impl( m_bIsColumnBreakDeferred( false ), m_bIsPageBreakDeferred( false ), m_bIsInShape( false ), - m_bShapeContextAdded( false ), + m_bRemovedLastAnchored( false ), m_pLastSectionContext( ), m_nCurrentTabStopIndex( 0 ), m_sCurrentParaStyleId(), @@ -928,6 +928,8 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap ) // this is normal: the shape is already attached } m_aAnchoredStack.pop( ); + m_aTextAppendStack.pop( ); + m_bRemovedLastAnchored = true; } // Get the end of paragraph character inserted @@ -1065,10 +1067,10 @@ void DomainMapper_Impl::appendOLE( const ::rtl::OUString& rStreamName, OLEHandle // gives a better ( visually ) result xOLEProperties->setPropertyValue(PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_ANCHOR_TYPE ), uno::makeAny( text::TextContentAnchorType_AS_CHARACTER ) ); // remove ( if valid ) associated shape ( used for graphic replacement ) - if ( m_bShapeContextAdded ) + if ( m_aAnchoredStack.size() > 0 ) { if ( lcl_removeShape( m_xTextDocument, pOLEHandler->getShape(), m_aAnchoredStack, m_aTextAppendStack ) ) - m_bShapeContextAdded = false; // ensure PopShapeContext processing doesn't pop the append stack + m_bRemovedLastAnchored = true; // ensure PopShapeContext processing doesn't pop the append stack } // @@ -1080,7 +1082,6 @@ void DomainMapper_Impl::appendOLE( const ::rtl::OUString& rStreamName, OLEHandle (void)rEx; OSL_FAIL( "Exception in creation of OLE object" ); } - } @@ -1373,7 +1374,7 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape { // Add the shape to the text append stack m_aTextAppendStack.push( uno::Reference< text::XTextAppend >( xShape, uno::UNO_QUERY_THROW ) ); - m_bShapeContextAdded = true; + m_bRemovedLastAnchored = false; // Add the shape to the anchored objects stack uno::Reference< text::XTextContent > xTxtContent( xShape, uno::UNO_QUERY_THROW ); @@ -1418,11 +1419,11 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape void DomainMapper_Impl::PopShapeContext() { - if ( m_bShapeContextAdded ) + if ( !m_bRemovedLastAnchored && m_aAnchoredStack.size() > 0 ) { RemoveLastParagraph(); m_aTextAppendStack.pop(); - m_bShapeContextAdded = false; + m_aAnchoredStack.pop(); } m_bIsInShape = false; } diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index b9e9af1..e3b3fa1 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -295,7 +295,7 @@ private: bool m_bIsColumnBreakDeferred; bool m_bIsPageBreakDeferred; bool m_bIsInShape; - bool m_bShapeContextAdded; + bool m_bRemovedLastAnchored; LineNumberSettings m_aLineNumberSettings; commit b32bcaf10a0dd0b901c6c330097b88fa1c2e9675 Author: Cédric Bosdonnat <cedric.bosdonnat....@free.fr> Date: Fri Nov 4 12:23:59 2011 +0100 sw, writerfilter: fixed debug builds and output dmapper table messages diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 4c03c4c..0b1916c 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -31,6 +31,7 @@ #include <rtl/ref.hxx> +#include <rtl/strbuf.hxx> #include <cppuhelper/weakref.hxx> #include <vcl/window.hxx> #include <svx/svdmodel.hxx> diff --git a/sw/source/core/tox/toxhlp.cxx b/sw/source/core/tox/toxhlp.cxx index e283232..9e9b261 100644 --- a/sw/source/core/tox/toxhlp.cxx +++ b/sw/source/core/tox/toxhlp.cxx @@ -33,6 +33,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <comphelper/processfactory.hxx> #include <com/sun/star/i18n/XExtendedIndexEntrySupplier.hpp> +#include <rtl/strbuf.hxx> #include <tools/string.hxx> #include <toxwrap.hxx> diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 8c35224..77e89af 100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -1775,7 +1775,7 @@ SwTestTabPage::SwTestTabPage( Window* pParent, lcl_SetPosSize(aTest9CBox , Point(116, 53), Size(74 , 10)); lcl_SetPosSize(aTest10CBox , Point(116, 66), Size(74 , 10)); - aTestFL.SetText(rtl::OUString(RTL_CONSTASCII_STRINGPARAM("Settings only for testpurposes", RTL_TEXTENCODING_ASCII_US)); + aTestFL.SetText(rtl::OUString::createFromAscii("Settings only for testpurposes")); aTest1CBox .SetText( C2S("unused")); aTest2CBox .SetText( C2S("dynamic")); aTest3CBox .SetText( C2S("No calm" )); diff --git a/writerfilter/debug_setup.mk b/writerfilter/debug_setup.mk index e1d0a08..a618171 100644 --- a/writerfilter/debug_setup.mk +++ b/writerfilter/debug_setup.mk @@ -10,5 +10,7 @@ $(if $(filter-out 0 1,$(strip $(gb_DEBUGLEVEL))),\ -DDEBUG_IMPORT \ -DDEBUG_LOGGING \ -DDEBUG_DMAPPER_PROPERTY_MAP \ + -DDEBUG_DMAPPER_TABLE_HANDLER \ + -DDEBUG_TABLE \ ) endef diff --git a/writerfilter/inc/resourcemodel/TableManager.hxx b/writerfilter/inc/resourcemodel/TableManager.hxx index 36a9b86..04084d7 100644 --- a/writerfilter/inc/resourcemodel/TableManager.hxx +++ b/writerfilter/inc/resourcemodel/TableManager.hxx @@ -625,11 +625,11 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::cellDepth(sal_uInt32 nDepth) { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) { mpTableLogger->startElement("tablemanager.cellDepth"); mpTableLogger->attribute("depth", nDepth); - mpTableLogger->endElement("tablemanager.cellDepth"); + mpTableLogger->endElement(); } #endif @@ -640,7 +640,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::inCell() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->element("tablemanager.inCell"); #endif setInCell(true); @@ -653,7 +653,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::endCell() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->element("tablemanager.endCell"); #endif @@ -664,7 +664,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::endRow() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->element("tablemanager.endRow"); #endif @@ -682,11 +682,11 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::handle(const T & rHandle) { #ifdef DEBUG_TABLE - if (mpTableLogger.get()) + if (mpTableLogger) { mpTableLogger->startElement("tablemanager.handle"); mpTableLogger->chars(toString(rHandle)); - mpTableLogger->endElement("tablemanager.handle"); + mpTableLogger->endElement(); } #endif @@ -697,7 +697,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::startLevel() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) { typename TableData<T, PropertiesPointer>::Pointer_t pTableData; @@ -711,7 +711,7 @@ void TableManager<T, PropertiesPointer>::startLevel() mpTableLogger->attribute("openCell", pTableData->isCellOpen() ? "yes" : "no"); - mpTableLogger->endElement("tablemanager.startLevel"); + mpTableLogger->endElement(); } #endif @@ -732,7 +732,7 @@ void TableManager<T, PropertiesPointer>::endLevel() mTableDataStack.pop(); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) { typename TableData<T, PropertiesPointer>::Pointer_t pTableData; @@ -746,7 +746,7 @@ void TableManager<T, PropertiesPointer>::endLevel() mpTableLogger->attribute("openCell", pTableData->isCellOpen() ? "yes" : "no"); - mpTableLogger->endElement("tablemanager.endLevel"); + mpTableLogger->endElement(); } #endif } @@ -845,7 +845,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::handle0x7() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.handle0x7"); #endif @@ -858,8 +858,8 @@ void TableManager<T, PropertiesPointer>::handle0x7() endRow(); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.handle0x7"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -891,7 +891,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::cellProps(PropertiesPointer pProps) { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.cellProps"); #endif @@ -901,8 +901,8 @@ void TableManager<T, PropertiesPointer>::cellProps(PropertiesPointer pProps) setCellProps(pProps); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.cellProps"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -911,15 +911,15 @@ void TableManager<T, PropertiesPointer>::cellPropsByCell (unsigned int i, PropertiesPointer pProps) { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.cellPropsByCell"); #endif mTableDataStack.top()->insertCellProperties(i, pProps); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.cellPropsByCell"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -927,7 +927,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::insertRowProps(PropertiesPointer pProps) { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.insertRowProps"); #endif @@ -937,8 +937,8 @@ void TableManager<T, PropertiesPointer>::insertRowProps(PropertiesPointer pProps setRowProps(pProps); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.insertRowProps"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -946,7 +946,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::insertTableProps(PropertiesPointer pProps) { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.insertTableProps"); #endif @@ -956,8 +956,8 @@ void TableManager<T, PropertiesPointer>::insertTableProps(PropertiesPointer pPro setTableProps(pProps); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.insertTableProps"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -965,7 +965,7 @@ template <typename T, typename PropertiesPointer> void TableManager<T, PropertiesPointer>::resolveCurrentTable() { #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) + if (mpTableLogger != NULL) mpTableLogger->startElement("tablemanager.resolveCurrentTable"); #endif @@ -1016,8 +1016,8 @@ void TableManager<T, PropertiesPointer>::resolveCurrentTable() clearData(); #ifdef DEBUG_TABLE - if (mpTableLogger.get() != NULL) - mpTableLogger->endElement("tablemanager.resolveCurrentTable"); + if (mpTableLogger != NULL) + mpTableLogger->endElement(); #endif } @@ -1049,7 +1049,7 @@ void TableManager<T, PropertiesPointer>::openCell #ifdef DEBUG_TABLE mpTableLogger->startElement("tablemanager.openCell"); mpTableLogger->chars(toString(rHandle)); - mpTableLogger->endElement("tablemanager.openCell"); + mpTableLogger->endElement(); #endif if (mTableDataStack.size() > 0) @@ -1068,7 +1068,7 @@ void TableManager<T, PropertiesPointer>::closeCell #ifdef DEBUG_TABLE mpTableLogger->startElement("tablemanager.closeCell"); mpTableLogger->chars(toString(rHandle)); - mpTableLogger->endElement("tablemanager.closeCell"); + mpTableLogger->endElement(); #endif if (mTableDataStack.size() > 0) @@ -1101,7 +1101,7 @@ void TableManager<T, PropertiesPointer>::ensureOpenCell(PropertiesPointer pProp } } #ifdef DEBUG_TABLE - mpTableLogger->endElement("tablemanager.ensureOpenCell"); + mpTableLogger->endElement(); #endif } diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 31f8c20..55ae016 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -719,9 +719,11 @@ void DomainMapperTableHandler::endTable() m_xTableRange = xTable->getAnchor( ); } } - catch (lang::IllegalArgumentException) + catch ( lang::IllegalArgumentException &e ) { #ifdef DEBUG_DMAPPER_TABLE_HANDLER + fprintf( stderr, "Conversion to table error: %s\n", + rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr() ); dmapper_logger->chars("failed to import table!"); #endif } commit 0ec5a0d1829ee201bc634699fc19259bfd6ffd10 Author: Cédric Bosdonnat <cedric.bosdonnat....@free.fr> Date: Fri Nov 4 12:23:09 2011 +0100 Added some messages to exceptions to make them usable for debugging diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 594c3cf..2886b36 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -1794,7 +1794,9 @@ void SwXText::Impl::ConvertCell( { if (rCell.getLength() != 2) { - throw lang::IllegalArgumentException(); + throw lang::IllegalArgumentException( + rtl::OUString::createFromAscii( "rCell needs to contain 2 elements" ), + uno::Reference< text::XTextCopy >( &m_rThis ), sal_Int16( 2 ) ); } const uno::Reference<text::XTextRange> xStartRange = rCell[0]; const uno::Reference<text::XTextRange> xEndRange = rCell[1]; @@ -1807,7 +1809,9 @@ void SwXText::Impl::ConvertCell( if (!::sw::XTextRangeToSwPaM(aStartCellPam, xStartRange) || !::sw::XTextRangeToSwPaM(aEndCellPam, xEndRange)) { - throw lang::IllegalArgumentException(); + throw lang::IllegalArgumentException( + rtl::OUString::createFromAscii( "Start or End range cannot be resolved to a SwPaM" ), + uno::Reference< text::XTextCopy >( &m_rThis ), sal_Int16( 2 ) ); } SwNodeRange aTmpRange(aStartCellPam.Start()->nNode,
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits