[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - 4 commits - sd/source sw/inc sw/qa sw/source
Miklos Vajna
vmiklos at collabora.co.uk
Wed Oct 7 03:11:10 PDT 2015
sd/source/core/drawdoc.cxx | 4 -
sw/inc/viewopt.hxx | 3
sw/qa/extras/tiledrendering/tiledrendering.cxx | 7 +
sw/source/uibase/config/viewopt.cxx | 8 ++
sw/source/uibase/uiview/viewsrch.cxx | 92 +++++++++++++------------
5 files changed, 69 insertions(+), 45 deletions(-)
New commits:
commit 2af2b87c0ba14bdd810988f347c37dc15b3daf01
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Oct 6 14:17:43 2015 +0200
sw tiled rendering: emit LOK_CALLBACK_SEARCH_RESULT* for normal search
We used to emit these for find-all only, for no good reason.
Change-Id: Id07dc7649f9a8528b9d4ec16d5f7c651fd607111
(cherry picked from commit 58c38e7ea5debc5440f1d81acf38d8d6ad0883d8)
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 2fd27dd..1eb57de 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -342,7 +342,10 @@ void lcl_search(bool bBackward)
void SwTiledRenderingTest::testSearch()
{
#if !defined(WNT) && !defined(MACOSX)
+ comphelper::LibreOfficeKit::setActive();
+
SwXTextDocument* pXTextDocument = createDoc("search.odt");
+ pXTextDocument->registerCallback(&SwTiledRenderingTest::callback, this);
SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
size_t nNode = pWrtShell->getShellCrsr(false)->Start()->nNode.GetNode().GetIndex();
@@ -351,6 +354,8 @@ void SwTiledRenderingTest::testSearch()
CPPUNIT_ASSERT(!pWrtShell->GetDrawView()->GetTextEditObject());
size_t nActual = pWrtShell->getShellCrsr(false)->Start()->nNode.GetNode().GetIndex();
CPPUNIT_ASSERT_EQUAL(nNode + 1, nActual);
+ /// Make sure we get search result selection for normal find as well, not only find all.
+ CPPUNIT_ASSERT(!m_aSearchResultSelection.empty());
// Next hit, in the shape.
lcl_search(false);
@@ -375,6 +380,8 @@ void SwTiledRenderingTest::testSearch()
CPPUNIT_ASSERT(!pWrtShell->GetDrawView()->GetTextEditObject());
nActual = pWrtShell->getShellCrsr(false)->Start()->nNode.GetNode().GetIndex();
CPPUNIT_ASSERT_EQUAL(nNode + 1, nActual);
+
+ comphelper::LibreOfficeKit::setActive(false);
#endif
}
diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx
index a22cbdb..c8d3e7a 100644
--- a/sw/source/uibase/uiview/viewsrch.cxx
+++ b/sw/source/uibase/uiview/viewsrch.cxx
@@ -253,7 +253,11 @@ void SwView::ExecSearch(SfxRequest& rReq, bool bNoMessage)
{
bool bRet = SearchAndWrap(bApi);
if( bRet )
+ {
Scroll(m_pWrtShell->GetCharRect().SVRect());
+ if (comphelper::LibreOfficeKit::isActive())
+ lcl_emitSearchResultCallbacks(1, m_pSrchItem, m_pWrtShell);
+ }
rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
#if HAVE_FEATURE_DESKTOP
{
commit 88e5154b9af6a5385d37d97fa22de2c131a214eb
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Oct 6 12:29:33 2015 +0200
sw: extract lcl_emitSearchResultCallbacks() from SwView::ExecSearch()
Change-Id: I9c6b7540bcae85d6529e5cc195a7e86f58ee5713
(cherry picked from commit ca8016c3a317a7ba1f03e117d575fb78a572b4b3)
diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx
index 570fade..a22cbdb 100644
--- a/sw/source/uibase/uiview/viewsrch.cxx
+++ b/sw/source/uibase/uiview/viewsrch.cxx
@@ -102,6 +102,51 @@ static void lcl_addContainerToJson(boost::property_tree::ptree& rTree, const OSt
rTree.add_child(rKey.getStr(), aChildren);
}
+/// Emits LOK callbacks (count, selection) for search results.
+static void lcl_emitSearchResultCallbacks(sal_uInt16 nFound, SvxSearchItem* pSearchItem, SwWrtShell* pWrtShell)
+{
+ OString aPayload = OString::number(nFound) + ";" + pSearchItem->GetSearchString().toUtf8();
+ pWrtShell->libreOfficeKitCallback(LOK_CALLBACK_SEARCH_RESULT_COUNT, aPayload.getStr());
+
+ // Emit a callback also about the selection rectangles, grouped by matches.
+ if (SwPaM* pPaM = pWrtShell->GetCrsr())
+ {
+ std::vector<OString> aMatches;
+ for (SwPaM& rPaM : pPaM->GetRingContainer())
+ {
+ if (SwShellCrsr* pShellCrsr = dynamic_cast<SwShellCrsr*>(&rPaM))
+ {
+ std::vector<OString> aSelectionRectangles;
+ pShellCrsr->SwSelPaintRects::Show(&aSelectionRectangles);
+ std::stringstream ss;
+ bool bFirst = true;
+ for (size_t i = 0; i < aSelectionRectangles.size(); ++i)
+ {
+ const OString& rSelectionRectangle = aSelectionRectangles[i];
+ if (rSelectionRectangle.isEmpty())
+ continue;
+ if (bFirst)
+ bFirst = false;
+ else
+ ss << "; ";
+ ss << rSelectionRectangle.getStr();
+ }
+ OString sRect = ss.str().c_str();
+ aMatches.push_back(sRect);
+ }
+ }
+ boost::property_tree::ptree aTree;
+ aTree.put("searchString", pSearchItem->GetSearchString().toUtf8().getStr());
+ lcl_addContainerToJson(aTree, "searchResultSelection", aMatches);
+
+ std::stringstream aStream;
+ boost::property_tree::write_json(aStream, aTree);
+ aPayload = aStream.str().c_str();
+
+ pWrtShell->libreOfficeKitCallback(LOK_CALLBACK_SEARCH_RESULT_SELECTION, aPayload.getStr());
+ }
+}
+
void SwView::ExecSearch(SfxRequest& rReq, bool bNoMessage)
{
const SfxItemSet* pArgs = rReq.GetArgs();
@@ -241,48 +286,7 @@ void SwView::ExecSearch(SfxRequest& rReq, bool bNoMessage)
m_bFound = false;
}
else if (comphelper::LibreOfficeKit::isActive())
- {
- OString aPayload = OString::number(nFound) + ";" + m_pSrchItem->GetSearchString().toUtf8();
- m_pWrtShell->libreOfficeKitCallback(LOK_CALLBACK_SEARCH_RESULT_COUNT, aPayload.getStr());
-
- // Emit a callback also about the selection rectangles, grouped by matches.
- if (SwPaM* pPaM = m_pWrtShell->GetCrsr())
- {
- std::vector<OString> aMatches;
- for (SwPaM& rPaM : pPaM->GetRingContainer())
- {
- if (SwShellCrsr* pShellCrsr = dynamic_cast<SwShellCrsr*>(&rPaM))
- {
- std::vector<OString> aSelectionRectangles;
- pShellCrsr->SwSelPaintRects::Show(&aSelectionRectangles);
- std::stringstream ss;
- bool bFirst = true;
- for (size_t i = 0; i < aSelectionRectangles.size(); ++i)
- {
- const OString& rSelectionRectangle = aSelectionRectangles[i];
- if (rSelectionRectangle.isEmpty())
- continue;
- if (bFirst)
- bFirst = false;
- else
- ss << "; ";
- ss << rSelectionRectangle.getStr();
- }
- OString sRect = ss.str().c_str();
- aMatches.push_back(sRect);
- }
- }
- boost::property_tree::ptree aTree;
- aTree.put("searchString", m_pSrchItem->GetSearchString().toUtf8().getStr());
- lcl_addContainerToJson(aTree, "searchResultSelection", aMatches);
-
- std::stringstream aStream;
- boost::property_tree::write_json(aStream, aTree);
- aPayload = aStream.str().c_str();
-
- m_pWrtShell->libreOfficeKitCallback(LOK_CALLBACK_SEARCH_RESULT_SELECTION, aPayload.getStr());
- }
- }
+ lcl_emitSearchResultCallbacks(nFound, m_pSrchItem, m_pWrtShell);
rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
#if HAVE_FEATURE_DESKTOP
{
commit a0e0d907a96e098e77396b6972327bb70fe59523
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Oct 6 12:05:14 2015 +0200
Disable spellcheck when LOK is active
It's not useful when viewing, and for editing probably a dedicated
overlay would be better (like the one we have for cursor/selections
already).
Disable for sw/sd explicitly, sc had it disabled implicitly already.
Change-Id: I7134f5d1a1546787c22019e6b1abdc0dd887f888
(cherry picked from commit c92ebc850345924619a12327f36cc6ac9c0b09d1)
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx
index fcf678e..f820fab 100644
--- a/sd/source/core/drawdoc.cxx
+++ b/sd/source/core/drawdoc.cxx
@@ -97,6 +97,7 @@
#include <tools/tenccvt.hxx>
#include <vcl/settings.hxx>
+#include <comphelper/lok.hxx>
using namespace ::sd;
using namespace ::com::sun::star;
@@ -229,7 +230,8 @@ SdDrawDocument::SdDrawDocument(DocumentType eType, SfxObjectShell* pDrDocSh)
SetLanguage( MsLangId::resolveSystemLanguageByScriptType(aOptions.nDefaultLanguage_CTL,
::com::sun::star::i18n::ScriptType::COMPLEX), EE_CHAR_LANGUAGE_CTL );
- mbOnlineSpell = aOptions.bIsSpellAuto;
+ if (!comphelper::LibreOfficeKit::isActive())
+ mbOnlineSpell = aOptions.bIsSpellAuto;
}
LanguageType eRealLanguage = MsLangId::getRealLanguage( meLanguage );
diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx
index c5080e8..77c716a 100644
--- a/sw/source/uibase/config/viewopt.cxx
+++ b/sw/source/uibase/config/viewopt.cxx
@@ -314,6 +314,9 @@ bool SwViewOption::IsAutoCompleteWords()
void SwViewOption::SetOnlineSpell(bool b)
{
+ if (comphelper::LibreOfficeKit::isActive())
+ return;
+
b ? (nCoreOptions |= VIEWOPT_1_ONLINESPELL ) : ( nCoreOptions &= ~VIEWOPT_1_ONLINESPELL);
}
commit c925a3217a8f2178f6d54abbce0b40628c3ef480
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Oct 6 11:13:54 2015 +0200
sw: outline SwViewOption::SetOnlineSpell()
Change-Id: Ic81b039e9a1b592ca52ab684ddb45ee44c7714df
(cherry picked from commit 0cf63ba224cb01377e3e6da68b0e72a3ed7e30af)
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index 64c1e26..dee2189 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -300,8 +300,7 @@ public:
inline bool IsOnlineSpell() const
{ return !bReadonly && (nCoreOptions & VIEWOPT_1_ONLINESPELL) != 0; }
- inline void SetOnlineSpell( bool b )
- { b ? (nCoreOptions |= VIEWOPT_1_ONLINESPELL ) : ( nCoreOptions &= ~VIEWOPT_1_ONLINESPELL); }
+ void SetOnlineSpell( bool b );
inline bool IsViewMetaChars() const
{ return !bReadonly && (nCoreOptions & VIEWOPT_1_VIEWMETACHARS) != 0; }
diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx
index 7597589..c5080e8 100644
--- a/sw/source/uibase/config/viewopt.cxx
+++ b/sw/source/uibase/config/viewopt.cxx
@@ -312,6 +312,11 @@ bool SwViewOption::IsAutoCompleteWords()
return rFlags.bAutoCmpltCollectWords;
}
+void SwViewOption::SetOnlineSpell(bool b)
+{
+ b ? (nCoreOptions |= VIEWOPT_1_ONLINESPELL ) : ( nCoreOptions &= ~VIEWOPT_1_ONLINESPELL);
+}
+
AuthorCharAttr::AuthorCharAttr() :
nItemId (SID_ATTR_CHAR_UNDERLINE),
nAttr (UNDERLINE_SINGLE),
More information about the Libreoffice-commits
mailing list