dbaccess/source/core/api/RowSetCacheIterator.cxx | 5 dbaccess/source/core/api/RowSetCacheIterator.hxx | 1 sc/source/ui/unoobj/celllistsource.cxx | 16 - sc/source/ui/unoobj/celllistsource.hxx | 6 sc/source/ui/unoobj/cellvaluebinding.cxx | 19 -- sc/source/ui/unoobj/cellvaluebinding.hxx | 6 sw/CppunitTest_sw_tox.mk | 84 --------- sw/CppunitTest_sw_uwriter.mk | 3 sw/Module_sw.mk | 4 sw/inc/ToxLinkProcessor.hxx | 2 sw/inc/ToxTabStopTokenHandler.hxx | 4 sw/inc/ToxTextGenerator.hxx | 2 sw/inc/ToxWhitespaceStripper.hxx | 2 sw/inc/modeltoviewhelper.hxx | 25 ++ sw/qa/core/test_ToxLinkProcessor.cxx | 140 ++++++++++++++++ sw/qa/core/test_ToxTextGenerator.cxx | 195 +++++++++++++++++++++++ sw/qa/core/test_ToxWhitespaceStripper.cxx | 147 +++++++++++++++++ sw/qa/core/uwriter.cxx | 34 +++- sw/qa/extras/tox/test_ToxLinkProcessor.cxx | 140 ---------------- sw/qa/extras/tox/test_ToxTextGenerator.cxx | 195 ----------------------- sw/qa/extras/tox/test_ToxWhitespaceStripper.cxx | 150 ----------------- sw/source/core/inc/txmsrt.hxx | 2 sw/source/core/text/porlay.cxx | 5 sw/source/core/txtnode/modeltoviewhelper.cxx | 70 +++++--- sw/source/core/txtnode/txtedt.cxx | 2 unusedcode.easy | 3 26 files changed, 585 insertions(+), 677 deletions(-)
New commits: commit 6c52a8b916e52c9ab33461e931a4e75b3dae04f7 Author: Caolán McNamara <[email protected]> Date: Mon Nov 3 13:58:52 2014 +0000 drop SW_DLLPUBLICs for unit-test only exposure seeing as have a uwriter target for the non-exposed symbols case. As a motivating side-effect stops crashing on exit on an optimized build with my x86_64 fedora 20 gcc 4.8.3 build Change-Id: If0240ee02d4899e488b12d2d8d5f9b6bf7cca37d diff --git a/sw/CppunitTest_sw_tox.mk b/sw/CppunitTest_sw_tox.mk deleted file mode 100644 index cca386f..0000000 --- a/sw/CppunitTest_sw_tox.mk +++ /dev/null @@ -1,84 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# - -# This file contains the unit test definition for class in the sources/core/tox subfolder -# The macro which defines the main method is contained in test_ToxWhitespaceStripper.cxx - -$(eval $(call gb_CppunitTest_CppunitTest,sw_tox)) - -$(eval $(call gb_CppunitTest_add_exception_objects,sw_tox, \ - sw/qa/extras/tox/test_ToxWhitespaceStripper \ - sw/qa/extras/tox/test_ToxLinkProcessor \ - sw/qa/extras/tox/test_ToxTextGenerator \ -)) - -$(eval $(call gb_CppunitTest_use_libraries,sw_tox, \ - $(call gb_Helper_optional,AVMEDIA,avmedia) \ - basegfx \ - comphelper \ - cppu \ - cppuhelper \ - drawinglayer \ - editeng \ - i18nlangtag \ - i18nutil \ - lng \ - sal \ - salhelper \ - sax \ - sb \ - sfx \ - sot \ - svl \ - svt \ - svx \ - svxcore \ - sw \ - test \ - unotest \ - vcl \ - tk \ - tl \ - ucbhelper \ - utl \ - xmlreader \ - xo \ - $(gb_UWINAPI) \ -)) - -$(eval $(call gb_CppunitTest_use_externals,sw_tox, \ - boost_headers \ - icuuc \ - libxml2 \ -)) - -$(eval $(call gb_CppunitTest_use_api,sw_tox,\ - offapi \ - udkapi \ -)) - -$(eval $(call gb_CppunitTest_use_components,sw_tox, \ - configmgr/source/configmgr \ - framework/util/fwk \ - i18npool/util/i18npool \ - ucb/source/core/ucb1 \ - ucb/source/ucp/file/ucpfile1 \ -)) - -$(eval $(call gb_CppunitTest_use_configuration,sw_tox)) -$(eval $(call gb_CppunitTest_use_ure,sw_tox)) -$(eval $(call gb_CppunitTest_use_vcl,sw_tox)) - -$(eval $(call gb_CppunitTest_set_include,sw_tox,\ - -I$(SRCDIR)/sw/inc \ - -I$(SRCDIR)/sw/source/core/inc \ - $$(INCLUDE) \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/sw/CppunitTest_sw_uwriter.mk b/sw/CppunitTest_sw_uwriter.mk index 495d088..9f4e9f9 100644 --- a/sw/CppunitTest_sw_uwriter.mk +++ b/sw/CppunitTest_sw_uwriter.mk @@ -14,6 +14,9 @@ $(eval $(call gb_CppunitTest_CppunitTest,sw_uwriter)) $(eval $(call gb_CppunitTest_add_exception_objects,sw_uwriter, \ sw/qa/core/uwriter \ sw/qa/core/Test-BigPtrArray \ + sw/qa/core/test_ToxWhitespaceStripper \ + sw/qa/core/test_ToxLinkProcessor \ + sw/qa/core/test_ToxTextGenerator \ )) $(eval $(call gb_CppunitTest_use_library_objects,sw_uwriter,sw)) diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index d205968..b5809c2 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -46,10 +46,6 @@ $(eval $(call gb_Module_add_targets,sw,\ endif -$(eval $(call gb_Module_add_check_targets,sw,\ - CppunitTest_sw_tox \ -)) - $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_uwriter \ CppunitTest_sw_htmlexport \ diff --git a/sw/inc/ToxLinkProcessor.hxx b/sw/inc/ToxLinkProcessor.hxx index dcf1002..2e439c0 100644 --- a/sw/inc/ToxLinkProcessor.hxx +++ b/sw/inc/ToxLinkProcessor.hxx @@ -24,7 +24,7 @@ namespace sw { /** A helper class for ToxTextGenerator. * It collects information about encountered link tokens and allows access in a processed form. */ -class SW_DLLPUBLIC ToxLinkProcessor { +class ToxLinkProcessor { public: ToxLinkProcessor() {} virtual ~ToxLinkProcessor() {} diff --git a/sw/inc/ToxTabStopTokenHandler.hxx b/sw/inc/ToxTabStopTokenHandler.hxx index 8830de9..a0d9e42 100644 --- a/sw/inc/ToxTabStopTokenHandler.hxx +++ b/sw/inc/ToxTabStopTokenHandler.hxx @@ -28,7 +28,7 @@ namespace sw { * @internal * This is an interface class. It allows to mock the class in unit tests */ -class SW_DLLPUBLIC ToxTabStopTokenHandler +class ToxTabStopTokenHandler { public: virtual ~ToxTabStopTokenHandler() {} @@ -50,7 +50,7 @@ public: }; /** The default implementation of ToxTabStopTokenHandler */ -class SW_DLLPUBLIC DefaultToxTabStopTokenHandler : public ToxTabStopTokenHandler +class DefaultToxTabStopTokenHandler : public ToxTabStopTokenHandler { public: diff --git a/sw/inc/ToxTextGenerator.hxx b/sw/inc/ToxTextGenerator.hxx index a9c9cad..45af131 100644 --- a/sw/inc/ToxTextGenerator.hxx +++ b/sw/inc/ToxTextGenerator.hxx @@ -54,7 +54,7 @@ class ToxTabStopTokenHandler; * * You can control its behavior by calling @link SetTabstopPolicy() and specifying the desired behavior. */ -class SW_DLLPUBLIC ToxTextGenerator +class ToxTextGenerator { public: ToxTextGenerator(const SwForm& toxForm, boost::shared_ptr<ToxTabStopTokenHandler> tabStopHandler); diff --git a/sw/inc/ToxWhitespaceStripper.hxx b/sw/inc/ToxWhitespaceStripper.hxx index bc8e869..dc3e741 100644 --- a/sw/inc/ToxWhitespaceStripper.hxx +++ b/sw/inc/ToxWhitespaceStripper.hxx @@ -30,7 +30,7 @@ namespace sw { * * @note One leading whitespace is preserved. */ -class SW_DLLPUBLIC ToxWhitespaceStripper +class ToxWhitespaceStripper { public: ToxWhitespaceStripper(const OUString&); diff --git a/sw/qa/extras/tox/test_ToxLinkProcessor.cxx b/sw/qa/core/test_ToxLinkProcessor.cxx similarity index 100% rename from sw/qa/extras/tox/test_ToxLinkProcessor.cxx rename to sw/qa/core/test_ToxLinkProcessor.cxx diff --git a/sw/qa/extras/tox/test_ToxTextGenerator.cxx b/sw/qa/core/test_ToxTextGenerator.cxx similarity index 100% rename from sw/qa/extras/tox/test_ToxTextGenerator.cxx rename to sw/qa/core/test_ToxTextGenerator.cxx diff --git a/sw/qa/extras/tox/test_ToxWhitespaceStripper.cxx b/sw/qa/core/test_ToxWhitespaceStripper.cxx similarity index 98% rename from sw/qa/extras/tox/test_ToxWhitespaceStripper.cxx rename to sw/qa/core/test_ToxWhitespaceStripper.cxx index adaffd9..30da0bd 100644 --- a/sw/qa/extras/tox/test_ToxWhitespaceStripper.cxx +++ b/sw/qa/core/test_ToxWhitespaceStripper.cxx @@ -18,7 +18,6 @@ #include <cppunit/TestAssert.h> #include <cppunit/TestFixture.h> #include <cppunit/extensions/HelperMacros.h> -#include <cppunit/plugin/TestPlugIn.h> using namespace sw; @@ -145,6 +144,4 @@ ToxWhitespaceStripperTest::PositionAfterStringCanBeRequested() // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(ToxWhitespaceStripperTest); -CPPUNIT_PLUGIN_IMPLEMENT(); - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/inc/txmsrt.hxx b/sw/source/core/inc/txmsrt.hxx index d2d550a..f1e62ad 100644 --- a/sw/source/core/inc/txmsrt.hxx +++ b/sw/source/core/inc/txmsrt.hxx @@ -118,7 +118,7 @@ public: /** * Class for sorting directories */ -struct SW_DLLPUBLIC SwTOXSortTabBase +struct SwTOXSortTabBase { SwTOXSources aTOXSources; ::com::sun::star::lang::Locale aLocale; commit fa430e6b4e6f5d096bdf59db26e5d7393ca2297b Author: Caolán McNamara <[email protected]> Date: Mon Nov 3 09:49:37 2014 +0000 Resolves: fdo#68347 fix word count with recorded changes also see fdo#46757 a) We need to ignore redline-deleted text, but count redline-added text b) each block of text is denoted by its end position in the model and where that maps to in the view so a hidden portion should record its end point not its starting point, and a non-hidden deleted portion should always record its end point c) when mapping a model position to the view we take the offset of the model pos arg from the block end and use that to offset the mapped block-end view pos to get the final view pos. But for hidden portions that won't make a whole lot of sense, and end up offsetting into prior portions, so map all positions within a hidden portion to the same block-end view pos add regression tests for these cases Change-Id: I45c76bba47fd430bc3bccb5f919502660d415d9e diff --git a/sw/inc/modeltoviewhelper.hxx b/sw/inc/modeltoviewhelper.hxx index 018b67c..d99c9db 100644 --- a/sw/inc/modeltoviewhelper.hxx +++ b/sw/inc/modeltoviewhelper.hxx @@ -65,19 +65,30 @@ class SwTxtNode; #define EXPANDFIELDS 0x0001 #define EXPANDFOOTNOTE 0x0002 #define HIDEINVISIBLE 0x0004 -#define HIDEREDLINED 0x0008 +#define HIDEDELETIONS 0x0008 /// do not expand to content, but replace with ZWSP #define REPLACEMODE 0x0010 class ModelToViewHelper { - /** For each field in the model string, there is an entry in the conversion - map. The first value of the ConversionMapEntry points to the field - position in the model string, the second value points to the associated - position in the view string. The last entry in the conversion map - denotes the lengths of the model resp. view string. + /** For each expanded/hidden portion in the model string, there is an entry in + the conversion map. The first value of the ConversionMapEntry points to + the start position in the model string, the second value points to the + associated start position in the view string. The last entry in the + conversion map denotes the lengths of the model resp. view string. */ - typedef std::pair< sal_Int32 , sal_Int32 > ConversionMapEntry; + struct ConversionMapEntry + { + ConversionMapEntry(sal_Int32 nModelPos, sal_Int32 nViewPos, bool bVisible) + : m_nModelPos(nModelPos) + , m_nViewPos(nViewPos) + , m_bVisible(bVisible) + { + } + sal_Int32 m_nModelPos; + sal_Int32 m_nViewPos; + bool m_bVisible; + }; typedef std::vector< ConversionMapEntry > ConversionMap; typedef std::vector<sal_Int32> Positions; diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx index 8efd1b0..71409b8 100644 --- a/sw/qa/core/uwriter.cxx +++ b/sw/qa/core/uwriter.cxx @@ -406,7 +406,7 @@ void SwDocTest::testModelToViewHelperExpandFieldsHideRedlined() { SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); - ModelToViewHelper aModelToViewHelper(*pTxtNode, HIDEREDLINED); + ModelToViewHelper aModelToViewHelper(*pTxtNode, HIDEDELETIONS); OUString sViewText = aModelToViewHelper.getViewText(); CPPUNIT_ASSERT_EQUAL( OUString("AAAABB " + OUString(CH_TXTATR_BREAKWORD) + " CCCCC " + OUString(CH_TXTATR_BREAKWORD) + " DDDDD"), @@ -444,7 +444,7 @@ void SwDocTest::testModelToViewHelperExpandFieldsHideHideRedlinedExpandFootnote( { SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); - ModelToViewHelper aModelToViewHelper(*pTxtNode, EXPANDFIELDS | HIDEREDLINED | EXPANDFOOTNOTE); + ModelToViewHelper aModelToViewHelper(*pTxtNode, EXPANDFIELDS | HIDEDELETIONS | EXPANDFOOTNOTE); OUString sViewText = aModelToViewHelper.getViewText(); CPPUNIT_ASSERT_EQUAL( OUString("AAAABB foo CCCCC foo DDDDD"), sViewText); @@ -455,7 +455,7 @@ void SwDocTest::testModelToViewHelperExpandFieldsHideHideRedlinedExpandFootnoteR SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); ModelToViewHelper aModelToViewHelper(*pTxtNode, - EXPANDFIELDS | HIDEREDLINED | EXPANDFOOTNOTE | REPLACEMODE); + EXPANDFIELDS | HIDEDELETIONS | EXPANDFOOTNOTE | REPLACEMODE); OUString sViewText = aModelToViewHelper.getViewText(); CPPUNIT_ASSERT_EQUAL( OUString("AAAABB " + OUString(CHAR_ZWSP) + " CCCCC " + OUString(CHAR_ZWSP) + " DDDDD"), @@ -474,7 +474,7 @@ void SwDocTest::testModelToViewHelperHideInvisibleHideRedlined() { SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); - ModelToViewHelper aModelToViewHelper(*pTxtNode, HIDEINVISIBLE | HIDEREDLINED); + ModelToViewHelper aModelToViewHelper(*pTxtNode, HIDEINVISIBLE | HIDEDELETIONS); OUString sViewText = aModelToViewHelper.getViewText(); OUStringBuffer aBuffer; aBuffer.append("AAAACCCCC "); @@ -487,7 +487,7 @@ void SwDocTest::testModelToViewHelperExpandFieldsHideInvisibleHideRedlinedExpand { SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); - ModelToViewHelper aModelToViewHelper(*pTxtNode, EXPANDFIELDS | HIDEINVISIBLE | HIDEREDLINED | EXPANDFOOTNOTE); + ModelToViewHelper aModelToViewHelper(*pTxtNode, EXPANDFIELDS | HIDEINVISIBLE | HIDEDELETIONS | EXPANDFOOTNOTE); OUString sViewText = aModelToViewHelper.getViewText(); CPPUNIT_ASSERT_EQUAL(OUString("AAAACCCCC foo DDDDD"), sViewText); } @@ -497,7 +497,7 @@ void SwDocTest::testModelToViewHelperExpandFieldsHideInvisibleHideRedlinedExpand SwTxtNode* pTxtNode = getModelToViewTestDocument(m_pDoc); ModelToViewHelper aModelToViewHelper(*pTxtNode, - EXPANDFIELDS | HIDEINVISIBLE | HIDEREDLINED | EXPANDFOOTNOTE | REPLACEMODE); + EXPANDFIELDS | HIDEINVISIBLE | HIDEDELETIONS | EXPANDFOOTNOTE | REPLACEMODE); OUString sViewText = aModelToViewHelper.getViewText(); CPPUNIT_ASSERT_EQUAL(sViewText, OUString("AAAACCCCC " + OUString(CHAR_ZWSP) + " DDDDD")); @@ -768,8 +768,26 @@ void SwDocTest::testSwScanner() aDocStat.Reset(); pTxtNode->CountWords(aDocStat, 0, pTxtNode->Len()); //word-counting the text should only count the non-deleted text, and this whole chunk should be ignored - CPPUNIT_ASSERT_EQUAL(aDocStat.nWord, static_cast<sal_uLong>(0)); - CPPUNIT_ASSERT_EQUAL(aDocStat.nChar, static_cast<sal_uLong>(0)); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uLong>(0), aDocStat.nWord); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uLong>(0), aDocStat.nChar); + + // https://bugs.libreoffice.org/show_bug.cgi?id=68347 we do want to count + // redline *added* text though + m_pDoc->getIDocumentRedlineAccess().SetRedlineMode(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_SHOW_DELETE|nsRedlineMode_t::REDLINE_SHOW_INSERT); + aPaM.DeleteMark(); + aPaM.GetPoint()->nContent.Assign(aPaM.GetCntntNode(), 0); + m_pDoc->getIDocumentContentOperations().InsertString(aPaM, "redline-new-text "); + aDocStat.Reset(); + pTxtNode = aPaM.GetNode().GetTxtNode(); + pTxtNode->SetWordCountDirty(true); + pTxtNode->CountWords(aDocStat, 0, pTxtNode->Len()); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uLong>(2), aDocStat.nWord); + //redline-new-text Lorem ipsum + //+++++++++++++++++ ------ + //select start of original text and part of deleted text + aDocStat.Reset(); + pTxtNode->CountWords(aDocStat, 17, 25); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uLong>(5), aDocStat.nChar); } //See https://bugs.libreoffice.org/show_bug.cgi?id=38983 diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx index 8870f58..97af17a 100644 --- a/sw/source/core/text/porlay.cxx +++ b/sw/source/core/text/porlay.cxx @@ -2100,9 +2100,12 @@ void SwScriptInfo::selectRedLineDeleted(const SwTxtNode& rNode, MultiSelection & { const SwRangeRedline* pRed = rIDRA.GetRedlineTbl()[ nAct ]; - if ( pRed->Start()->nNode > rNode.GetIndex() ) + if (pRed->Start()->nNode > rNode.GetIndex()) break; + if (pRed->GetType() != nsRedlineType_t::REDLINE_DELETE) + continue; + sal_Int32 nRedlStart; sal_Int32 nRedlnEnd; pRed->CalcStartEnd( rNode.GetIndex(), nRedlStart, nRedlnEnd ); diff --git a/sw/source/core/txtnode/modeltoviewhelper.cxx b/sw/source/core/txtnode/modeltoviewhelper.cxx index ad268cd..43bab21 100644 --- a/sw/source/core/txtnode/modeltoviewhelper.cxx +++ b/sw/source/core/txtnode/modeltoviewhelper.cxx @@ -94,7 +94,7 @@ ModelToViewHelper::ModelToViewHelper(const SwTxtNode &rNode, sal_uInt16 eMode) if (eMode & HIDEINVISIBLE) SwScriptInfo::selectHiddenTextProperty(rNode, aHiddenMulti); - if (eMode & HIDEREDLINED) + if (eMode & HIDEDELETIONS) SwScriptInfo::selectRedLineDeleted(rNode, aHiddenMulti); std::vector<block> aBlocks; @@ -203,43 +203,55 @@ ModelToViewHelper::ModelToViewHelper(const SwTxtNode &rNode, sal_uInt16 eMode) } } + //store the end of each range in the model and where that end of range + //maps to in the view sal_Int32 nOffset = 0; for (std::vector<block>::iterator i = aBlocks.begin(); i != aBlocks.end(); ++i) { + const sal_Int32 nBlockLen = i->m_nLen; + if (!nBlockLen) + continue; + const sal_Int32 nBlockStart = i->m_nStart; + const sal_Int32 nBlockEnd = nBlockStart + nBlockLen; + if (!i->m_bVisible) { - const sal_Int32 nHiddenStart = i->m_nStart; - const sal_Int32 nHiddenLen = i->m_nLen; + sal_Int32 const modelBlockPos(nBlockEnd); + sal_Int32 const viewBlockPos(nBlockStart + nOffset); + m_aMap.push_back(ConversionMapEntry(modelBlockPos, viewBlockPos, false)); - m_aRetText = m_aRetText.replaceAt( nOffset + nHiddenStart, nHiddenLen, OUString() ); - m_aMap.push_back( ConversionMapEntry( nHiddenStart, nOffset + nHiddenStart ) ); - nOffset -= nHiddenLen; + m_aRetText = m_aRetText.replaceAt(nOffset + nBlockStart, nBlockLen, OUString()); + nOffset -= nBlockLen; } else { for (FieldResultSet::iterator j = i->m_aAttrs.begin(); j != i->m_aAttrs.end(); ++j) { - sal_Int32 const viewPos(nOffset + j->m_nFieldPos); - m_aRetText = m_aRetText.replaceAt(viewPos, 1, j->m_sExpand); - m_aMap.push_back( ConversionMapEntry(j->m_nFieldPos, viewPos) ); + sal_Int32 const modelFieldPos(j->m_nFieldPos); + sal_Int32 const viewFieldPos(j->m_nFieldPos + nOffset); + m_aMap.push_back( ConversionMapEntry(modelFieldPos, viewFieldPos, true) ); + + m_aRetText = m_aRetText.replaceAt(viewFieldPos, 1, j->m_sExpand); + nOffset += j->m_sExpand.getLength() - 1; + switch (j->m_eType) { case FieldResult::FIELD: - m_FieldPositions.push_back(viewPos); + m_FieldPositions.push_back(viewFieldPos); break; case FieldResult::FOOTNOTE: - m_FootnotePositions.push_back(viewPos); + m_FootnotePositions.push_back(viewFieldPos); break; case FieldResult::NONE: /*ignore*/ break; } - nOffset += j->m_sExpand.getLength() - 1; } + + sal_Int32 const modelEndBlock(nBlockEnd); + sal_Int32 const viewFieldPos(nBlockEnd + nOffset); + m_aMap.push_back(ConversionMapEntry(modelEndBlock, viewFieldPos, true)); } } - - if ( !m_aMap.empty() ) - m_aMap.push_back( ConversionMapEntry( rNodeText.getLength()+1, m_aRetText.getLength()+1 ) ); } /** Converts a model position into a view position @@ -248,15 +260,21 @@ sal_Int32 ModelToViewHelper::ConvertToViewPosition( sal_Int32 nModelPos ) const { // Search for entry after nPos: ConversionMap::const_iterator aIter; + for ( aIter = m_aMap.begin(); aIter != m_aMap.end(); ++aIter ) { - if ( (*aIter).first >= nModelPos ) + if (aIter->m_nModelPos >= nModelPos) { - const sal_Int32 nPosModel = (*aIter).first; - const sal_Int32 nPosExpand = (*aIter).second; - - const sal_Int32 nDistToNextModel = nPosModel - nModelPos; - return nPosExpand - nDistToNextModel; + //if it's an invisible portion, map all contained positions + //to the anchor viewpos + if (!aIter->m_bVisible) + return aIter->m_nViewPos; + + //if it's a visible portion, then the view position is the anchor + //viewpos - the offset of the input modelpos from the anchor + //modelpos + const sal_Int32 nOffsetFromEnd = aIter->m_nModelPos - nModelPos; + return aIter->m_nViewPos - nOffsetFromEnd; } } @@ -274,10 +292,10 @@ ModelToViewHelper::ModelPosition ModelToViewHelper::ConvertToModelPosition( sal_ ConversionMap::const_iterator aIter; for ( aIter = m_aMap.begin(); aIter != m_aMap.end(); ++aIter ) { - if ( (*aIter).second > nViewPos ) + if (aIter->m_nViewPos > nViewPos) { - const sal_Int32 nPosModel = (*aIter).first; - const sal_Int32 nPosExpand = (*aIter).second; + const sal_Int32 nPosModel = aIter->m_nModelPos; + const sal_Int32 nPosExpand = aIter->m_nViewPos; // If nViewPos is in front of first field, we are finished. if ( aIter == m_aMap.begin() ) @@ -286,8 +304,8 @@ ModelToViewHelper::ModelPosition ModelToViewHelper::ConvertToModelPosition( sal_ --aIter; // nPrevPosModel is the field position - const sal_Int32 nPrevPosModel = (*aIter).first; - const sal_Int32 nPrevPosExpand = (*aIter).second; + const sal_Int32 nPrevPosModel = aIter->m_nModelPos; + const sal_Int32 nPrevPosExpand = aIter->m_nViewPos; const sal_Int32 nLengthModel = nPosModel - nPrevPosModel; const sal_Int32 nLengthExpand = nPosExpand - nPrevPosExpand; diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index d094b83..2ec09bb 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -1993,7 +1993,7 @@ bool SwTxtNode::CountWords( SwDocStat& rStat, } // ConversionMap to expand fields, remove invisible and redline deleted text for scanner - const ModelToViewHelper aConversionMap(*this, EXPANDFIELDS | EXPANDFOOTNOTE | HIDEINVISIBLE | HIDEREDLINED); + const ModelToViewHelper aConversionMap(*this, EXPANDFIELDS | EXPANDFOOTNOTE | HIDEINVISIBLE | HIDEDELETIONS); OUString aExpandText = aConversionMap.getViewText(); if (aExpandText.isEmpty() && !bCountNumbering) commit 79fcf0b4a86e22e541eecd6e39726fac2016750b Author: Caolán McNamara <[email protected]> Date: Mon Nov 3 09:53:00 2014 +0000 callcatcher: update unused code Change-Id: Ida4221bfbfe30f7e1abd5c367d8cb8b9edd310bb diff --git a/dbaccess/source/core/api/RowSetCacheIterator.cxx b/dbaccess/source/core/api/RowSetCacheIterator.cxx index 555d28b..106893b 100644 --- a/dbaccess/source/core/api/RowSetCacheIterator.cxx +++ b/dbaccess/source/core/api/RowSetCacheIterator.cxx @@ -124,9 +124,4 @@ bool ORowSetCacheIterator::isNull() const return bRet; } -::osl::Mutex* ORowSetCacheIterator::getMutex() const -{ - return m_pRowSet ? m_pRowSet->getMutex() : NULL; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/core/api/RowSetCacheIterator.hxx b/dbaccess/source/core/api/RowSetCacheIterator.hxx index 083a82f..82d118e 100644 --- a/dbaccess/source/core/api/RowSetCacheIterator.hxx +++ b/dbaccess/source/core/api/RowSetCacheIterator.hxx @@ -73,7 +73,6 @@ namespace dbaccess void setBookmark(const ::com::sun::star::uno::Any& _rBookmark); ::com::sun::star::uno::Any getBookmark() const { return m_aIter->second.aBookmark; } - ::osl::Mutex* getMutex() const; ORowSetCacheMap::iterator getIter() const { return m_aIter; } }; diff --git a/sc/source/ui/unoobj/celllistsource.cxx b/sc/source/ui/unoobj/celllistsource.cxx index 574cfda..9191597 100644 --- a/sc/source/ui/unoobj/celllistsource.cxx +++ b/sc/source/ui/unoobj/celllistsource.cxx @@ -42,22 +42,6 @@ namespace calc using namespace ::com::sun::star::util; using namespace ::com::sun::star::form::binding; -#ifdef DBG_UTIL - const char* OCellListSource::checkConsistency_static( const void* _pThis ) - { - return static_cast< const OCellListSource* >( _pThis )->checkConsistency( ); - } - - const char* OCellListSource::checkConsistency( ) const - { - const char* pAssertion = NULL; - - // TODO: place any checks here to ensure consistency of this instance - - return pAssertion; - } -#endif - OCellListSource::OCellListSource( const Reference< XSpreadsheetDocument >& _rxDocument ) :OCellListSource_Base( m_aMutex ) ,OCellListSource_PBase( OCellListSource_Base::rBHelper ) diff --git a/sc/source/ui/unoobj/celllistsource.hxx b/sc/source/ui/unoobj/celllistsource.hxx index fc8a1a9..03b1e67 100644 --- a/sc/source/ui/unoobj/celllistsource.hxx +++ b/sc/source/ui/unoobj/celllistsource.hxx @@ -146,12 +146,6 @@ namespace calc OCellListSource(); // never implemented OCellListSource( const OCellListSource& ); // never implemented OCellListSource& operator=( const OCellListSource& ); // never implemented - -#ifdef DBG_UTIL - private: - static const char* checkConsistency_static( const void* _pThis ); - const char* checkConsistency( ) const; -#endif }; } // namespace calc diff --git a/sc/source/ui/unoobj/cellvaluebinding.cxx b/sc/source/ui/unoobj/cellvaluebinding.cxx index 6a34339..1bce4af 100644 --- a/sc/source/ui/unoobj/cellvaluebinding.cxx +++ b/sc/source/ui/unoobj/cellvaluebinding.cxx @@ -47,25 +47,6 @@ namespace calc using namespace ::com::sun::star::util; using namespace ::com::sun::star::form::binding; -#ifdef DBG_UTIL - const char* OCellValueBinding::checkConsistency_static( const void* _pThis ) - { - return static_cast< const OCellValueBinding* >( _pThis )->checkConsistency( ); - } - - const char* OCellValueBinding::checkConsistency( ) const - { - const char* pAssertion = NULL; - if ( m_xCellText.is() && !m_xCell.is() ) - // there are places (e.g. getSupportedTypes) which rely on the fact - // that m_xCellText.is() implies m_xCell.is() - pAssertion = "cell references inconsistent!"; - - // TODO: place any additional checks here to ensure consistency of this instance - return pAssertion; - } -#endif - OCellValueBinding::OCellValueBinding( const Reference< XSpreadsheetDocument >& _rxDocument, bool _bListPos ) :OCellValueBinding_Base( m_aMutex ) ,OCellValueBinding_PBase( OCellValueBinding_Base::rBHelper ) diff --git a/sc/source/ui/unoobj/cellvaluebinding.hxx b/sc/source/ui/unoobj/cellvaluebinding.hxx index 2e19ac9..4b1ff80 100644 --- a/sc/source/ui/unoobj/cellvaluebinding.hxx +++ b/sc/source/ui/unoobj/cellvaluebinding.hxx @@ -141,12 +141,6 @@ namespace calc OCellValueBinding(); // never implemented OCellValueBinding( const OCellValueBinding& ); // never implemented OCellValueBinding& operator=( const OCellValueBinding& ); // never implemented - -#ifdef DBG_UTIL - private: - static const char* checkConsistency_static( const void* _pThis ); - const char* checkConsistency( ) const; -#endif }; } // namespace calc diff --git a/unusedcode.easy b/unusedcode.easy index ad3ba9c..4379f7f 100644 --- a/unusedcode.easy +++ b/unusedcode.easy @@ -169,14 +169,13 @@ apitest::XTextContent::testAttach() apitest::XTextContent::testGetAnchor() apitest::XTextField::testGetPresentation() basegfx::tools::containsOnlyHorizontalAndVerticalEdges(basegfx::B2DPolyPolygon const&) -calc::OCellListSource::checkConsistency_static(void const*) -calc::OCellValueBinding::checkConsistency_static(void const*) canvas::createSurfaceProxyManager(boost::shared_ptr<canvas::IRenderModule> const&) chart::BaseGFXHelper::B2IRectangleToAWTRectangle(basegfx::B2IRange const&) chart::ChartTypeUnoDlg::Create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) chart::InternalData::isDefaultData() chart::ShapeToolbarController::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) comphelper::OAccessibleImplementationAccess::setStateBit(short, bool) +comphelper::ThreadPool::getSharedOptimalPool() comphelper::detail::ConfigurationWrapper::getGroupReadWrite(boost::shared_ptr<comphelper::ConfigurationChanges> const&, rtl::OUString const&) const comphelper::detail::ConfigurationWrapper::getLocalizedPropertyValue(rtl::OUString const&) const comphelper::detail::ConfigurationWrapper::setLocalizedPropertyValue(boost::shared_ptr<comphelper::ConfigurationChanges> const&, rtl::OUString const&, com::sun::star::uno::Any const&) const
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
