sw/inc/view.hxx | 1 sw/qa/extras/tiledrendering/tiledrendering.cxx | 32 ++++++++++++++++++++++++- sw/source/core/crsr/findtxt.cxx | 5 +++ 3 files changed, 36 insertions(+), 2 deletions(-)
New commits: commit b4e75e8f52c17d02a65022303fb6a0e4f1d97592 Author: Miklos Vajna <[email protected]> Date: Mon Oct 5 15:34:28 2015 +0200 CppunitTest_sw_tiledrendering: testcase for LOK_CALLBACK_SEARCH_RESULT_COUNT Change-Id: I9f517bc2f3dfca9a2dc17a229f54c47b7790a355 diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index e7ab149..c836f4b 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -18,6 +18,7 @@ #include <vcl/svapp.hxx> #include <editeng/editview.hxx> #include <editeng/outliner.hxx> +#include <svl/srchitem.hxx> #include <crsskip.hxx> #include <drawdoc.hxx> #include <ndtxt.hxx> @@ -42,6 +43,7 @@ public: void testSearchTextFrame(); void testSearchTextFrameWrapAround(); void testDocumentSizeChanged(); + void testSearchAll(); CPPUNIT_TEST_SUITE(SwTiledRenderingTest); CPPUNIT_TEST(testRegisterCallback); @@ -56,6 +58,7 @@ public: CPPUNIT_TEST(testSearchTextFrame); CPPUNIT_TEST(testSearchTextFrameWrapAround); CPPUNIT_TEST(testDocumentSizeChanged); + CPPUNIT_TEST(testSearchAll); CPPUNIT_TEST_SUITE_END(); private: @@ -66,10 +69,12 @@ private: Size m_aDocumentSize; OString m_aTextSelection; bool m_bFound; + sal_Int32 m_nSearchResultCount; }; SwTiledRenderingTest::SwTiledRenderingTest() - : m_bFound(true) + : m_bFound(true), + m_nSearchResultCount(0) { } @@ -125,6 +130,11 @@ void SwTiledRenderingTest::callbackImpl(int nType, const char* pPayload) m_bFound = false; } break; + case LOK_CALLBACK_SEARCH_RESULT_COUNT: + { + m_nSearchResultCount = OString(pPayload).toInt32(); + } + break; } } @@ -438,6 +448,26 @@ void SwTiledRenderingTest::testDocumentSizeChanged() #endif } +void SwTiledRenderingTest::testSearchAll() +{ +#if !defined(WNT) && !defined(MACOSX) + comphelper::LibreOfficeKit::setActive(); + + SwXTextDocument* pXTextDocument = createDoc("search.odt"); + pXTextDocument->registerCallback(&SwTiledRenderingTest::callback, this); + uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence( + { + {"SearchItem.SearchString", uno::makeAny(OUString("shape"))}, + {"SearchItem.Backward", uno::makeAny(false)}, + {"SearchItem.Command", uno::makeAny(static_cast<sal_uInt16>(SvxSearchCmd::FIND_ALL))}, + })); + comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues); + // This was 0; should be 2 results in the body text. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), m_nSearchResultCount); + + comphelper::LibreOfficeKit::setActive(false); +#endif +} CPPUNIT_TEST_SUITE_REGISTRATION(SwTiledRenderingTest); CPPUNIT_PLUGIN_IMPLEMENT(); commit dce533e06d641d15c3171cd543875cb9fe835cd2 Author: Miklos Vajna <[email protected]> Date: Mon Oct 5 15:19:06 2015 +0200 sw: avoid hang with find-all and shape text We can't easily have editeng & sw selection at the same time, so just exlucde shapes in the find-all case for now: better than a hang. Change-Id: I1090595e8c4bc11eb38ffa486885ad5fab67ab86 diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index 8a2d5b7..633d5d2 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -638,6 +638,7 @@ public: SAL_DLLPRIVATE virtual bool HasPrintOptionsPage() const SAL_OVERRIDE; SAL_DLLPRIVATE virtual VclPtr<SfxTabPage> CreatePrintOptionsPage( vcl::Window* pParent, const SfxItemSet& rSet) SAL_OVERRIDE; + static SvxSearchItem* GetSearchItem() { return m_pSrchItem; } }; inline long SwView::GetXScroll() const diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index 02952b4..b2cf56c 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -49,6 +49,7 @@ #include <docsh.hxx> #include <PostItMgr.hxx> #include <viewsh.hxx> +#include <view.hxx> using namespace ::com::sun::star; using namespace util; @@ -342,8 +343,10 @@ bool SwPaM::Find( const SearchOptions& rSearchOpt, bool bSearchInNotes , utl::Te } } + // Writer and editeng selections are not supported in parallel. + SvxSearchItem* pSearchItem = SwView::GetSearchItem(); // If we just finished search in shape text, don't attempt to do that again. - if (!bEndedTextEdit) + if (!bEndedTextEdit && !(pSearchItem && pSearchItem->GetCommand() == SvxSearchCmd::FIND_ALL)) { // If there are any shapes anchored to this node, search there. SwPaM aPaM(pNode->GetDoc()->GetNodes().GetEndOfContent()); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
