[Libreoffice-commits] core.git: 2 commits - include/sfx2 include/svl sfx2/sdi svl/source sw/qa sw/source
Jan Holesovsky
kendy at collabora.com
Thu Mar 17 17:11:17 UTC 2016
include/sfx2/msg.hxx | 2 +-
include/svl/memberid.hrc | 1 -
include/svl/srchitem.hxx | 4 ----
sfx2/sdi/sfxitems.sdi | 1 -
svl/source/items/srchitem.cxx | 16 ++--------------
sw/qa/extras/tiledrendering/tiledrendering.cxx | 3 +--
sw/source/core/crsr/findtxt.cxx | 14 +++++---------
7 files changed, 9 insertions(+), 32 deletions(-)
New commits:
commit 8d754e8609f918c2c08a6c6b91a8e12b99efba52
Author: Jan Holesovsky <kendy at collabora.com>
Date: Thu Mar 17 15:51:42 2016 +0100
tdf#98458 sw: Fix performance problem when searching in large documents.
Change-Id: I0056a411d7a3bb018401d87bdd4a0112fed31df6
diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx
index 1a8924c..0011605 100644
--- a/sw/source/core/crsr/findtxt.cxx
+++ b/sw/source/core/crsr/findtxt.cxx
@@ -244,6 +244,10 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T
rSearchOpt.searchString == "$^" );
const bool bChkParaEnd = bRegSearch && rSearchOpt.searchString == "$";
+ SvxSearchItem aSearchItem(SID_SEARCH_ITEM); // this is a very expensive operation (calling configmgr etc.)
+ aSearchItem.SetSearchOptions(rSearchOpt);
+ aSearchItem.SetBackward(!bSrchForward);
+
// LanguageType eLastLang = 0;
while( nullptr != ( pNode = ::GetNode( *pPam, bFirst, fnMove, bInReadOnly ) ))
{
@@ -301,10 +305,6 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T
SwWrtShell *const pWrtShell = (pDocShell) ? pDocShell->GetWrtShell() : nullptr;
SwPostItMgr *const pPostItMgr = (pWrtShell) ? pWrtShell->GetPostItMgr() : nullptr;
- SvxSearchItem aSearchItem(SID_SEARCH_ITEM);
- aSearchItem.SetSearchOptions(rSearchOpt);
- aSearchItem.SetBackward(!bSrchForward);
-
// If there is an active text edit, then search there.
bool bEndedTextEdit = false;
SdrView* pSdrView = pWrtShell->GetDrawView();
commit 43c64fa24d3d9922b080b5cb7bb5df249a759c1a
Author: Jan Holesovsky <kendy at collabora.com>
Date: Thu Mar 17 15:43:32 2016 +0100
Revert "tdf#98458 sw: make search in shape text optional"
Actually there seems to be a simpler solution to the immediate performance
problem which I'll commit next.
It still might be necessary to introduce the search switch at some stage, but
first let's see if there are complaints.
This reverts commit 8e0b08c3053ed5472409b1ea7e02653aad38f7d6.
diff --git a/include/sfx2/msg.hxx b/include/sfx2/msg.hxx
index 03972d5..6753181 100644
--- a/include/sfx2/msg.hxx
+++ b/include/sfx2/msg.hxx
@@ -146,7 +146,7 @@ SFX_DECL_TYPE(13); // for SwAddPrinterItem, Sd...
SFX_DECL_TYPE(14);
SFX_DECL_TYPE(16); // for SwDocDisplayItem
SFX_DECL_TYPE(17); // for SvxAddressItem
-SFX_DECL_TYPE(24); // for SvxSearchItem
+SFX_DECL_TYPE(23); // for SvxSearchItem
// all SfxTypes must be in this header
#undef SFX_DECL_TYPE
diff --git a/include/svl/memberid.hrc b/include/svl/memberid.hrc
index fb467b3..b5a2262 100644
--- a/include/svl/memberid.hrc
+++ b/include/svl/memberid.hrc
@@ -61,7 +61,6 @@
#define MID_SEARCH_STARTPOINTY 21
#define MID_SEARCH_SEARCHFORMATTED 22
#define MID_SEARCH_ALGORITHMTYPE2 23
-#define MID_SEARCH_INSHAPES 24
#endif
diff --git a/include/svl/srchitem.hxx b/include/svl/srchitem.hxx
index d67fff8..472f1ac 100644
--- a/include/svl/srchitem.hxx
+++ b/include/svl/srchitem.hxx
@@ -90,9 +90,6 @@ class SVL_DLLPUBLIC SvxSearchItem :
sal_Int32 m_nStartPointX;
sal_Int32 m_nStartPointY;
- /// Writer-specific: search in shape text.
- bool m_bSearchInShapes;
-
virtual void ImplCommit() override;
public:
@@ -201,7 +198,6 @@ public:
sal_Int32 GetStartPointY() const;
/// Either x or y start point is set.
bool HasStartPoint() const;
- bool IsSearchInShapes() const;
};
const OUString& SvxSearchItem::GetSearchString() const
diff --git a/sfx2/sdi/sfxitems.sdi b/sfx2/sdi/sfxitems.sdi
index 1900868..ab1b3fd 100644
--- a/sfx2/sdi/sfxitems.sdi
+++ b/sfx2/sdi/sfxitems.sdi
@@ -91,7 +91,6 @@
INT32 SearchStartPointY MID_SEARCH_STARTPOINTY;
BOOL SearchFormatted MID_SEARCH_SEARCHFORMATTED;
INT16 AlgorithmType2 MID_SEARCH_ALGORITHMTYPE2;
- BOOL SearchInShapes MID_SEARCH_INSHAPES;
};
item SvxSearch SvxSearchItem;
diff --git a/svl/source/items/srchitem.cxx b/svl/source/items/srchitem.cxx
index 752a888..881c464 100644
--- a/svl/source/items/srchitem.cxx
+++ b/svl/source/items/srchitem.cxx
@@ -127,8 +127,7 @@ SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) :
m_bContent ( false ),
m_bAsianOptions ( false ),
m_nStartPointX(0),
- m_nStartPointY(0),
- m_bSearchInShapes(false)
+ m_nStartPointY(0)
{
EnableNotification( lcl_GetNotifyNames() );
@@ -227,8 +226,7 @@ SvxSearchItem::SvxSearchItem( const SvxSearchItem& rItem ) :
m_bContent ( rItem.m_bContent ),
m_bAsianOptions ( rItem.m_bAsianOptions ),
m_nStartPointX(rItem.m_nStartPointX),
- m_nStartPointY(rItem.m_nStartPointY),
- m_bSearchInShapes(rItem.m_bSearchInShapes)
+ m_nStartPointY(rItem.m_nStartPointY)
{
EnableNotification( lcl_GetNotifyNames() );
}
@@ -672,11 +670,6 @@ bool SvxSearchItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
bRet = (rVal >>= m_nStartPointY);
break;
}
- case MID_SEARCH_INSHAPES:
- {
- bRet = (rVal >>= m_bSearchInShapes);
- break;
- }
default:
OSL_FAIL( "Unknown MemberId" );
}
@@ -699,9 +692,4 @@ bool SvxSearchItem::HasStartPoint() const
return m_nStartPointX > 0 || m_nStartPointY > 0;
}
-bool SvxSearchItem::IsSearchInShapes() const
-{
- return m_bSearchInShapes;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 62be3e6..cf0afae 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -328,8 +328,7 @@ void lcl_search(bool bBackward)
uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence(
{
{"SearchItem.SearchString", uno::makeAny(OUString("shape"))},
- {"SearchItem.Backward", uno::makeAny(bBackward)},
- {"SearchItem.SearchInShapes", uno::makeAny(true)}
+ {"SearchItem.Backward", uno::makeAny(bBackward)}
}));
comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues);
}
diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx
index 62f4e8c..1a8924c 100644
--- a/sw/source/core/crsr/findtxt.cxx
+++ b/sw/source/core/crsr/findtxt.cxx
@@ -301,10 +301,6 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T
SwWrtShell *const pWrtShell = (pDocShell) ? pDocShell->GetWrtShell() : nullptr;
SwPostItMgr *const pPostItMgr = (pWrtShell) ? pWrtShell->GetPostItMgr() : nullptr;
- SvxSearchItem* pSearchItem = SwView::GetSearchItem();
- if (pSearchItem && pSearchItem->IsSearchInShapes())
- {
- // Search in shapes only if explicitly requested.
SvxSearchItem aSearchItem(SID_SEARCH_ITEM);
aSearchItem.SetSearchOptions(rSearchOpt);
aSearchItem.SetBackward(!bSrchForward);
@@ -348,6 +344,7 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T
}
// 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 && !(pSearchItem && pSearchItem->GetCommand() == SvxSearchCmd::FIND_ALL))
{
@@ -378,7 +375,6 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T
}
}
}
- }
sal_Int32 aStart = 0;
// do we need to finish a note?
More information about the Libreoffice-commits
mailing list