[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - sc/source
Michael Meeks (via logerrit)
logerrit at kemper.freedesktop.org
Fri Oct 23 09:54:24 UTC 2020
sc/source/ui/inc/gridwin.hxx | 4 ++--
sc/source/ui/inc/tabview.hxx | 2 ++
sc/source/ui/view/gridwin.cxx | 7 ++-----
sc/source/ui/view/tabview.cxx | 10 +++++++++-
sc/source/ui/view/tabview5.cxx | 7 ++++++-
5 files changed, 21 insertions(+), 9 deletions(-)
New commits:
commit 1a356dc0262022f8c0880d992f628507fdca408e
Author: Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Thu Oct 22 19:45:16 2020 +0100
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Fri Oct 23 11:53:52 2020 +0200
tdf#136694 - share spelling context across all ScGridWindows.
Adding new ScGridWindows later (as we do for split panes)
didn't call EnableAutoSpell on them; also duplicating the
spell-checking cache looks wasteful, so share it.
Change-Id: Ieb67bb292590a097bb5a59d369416a094c54c954
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104704
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 5623a0c92d11..a576375283b9 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -142,7 +142,7 @@ class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::Window, public DropTargetHel
// zoom levels demanded from a ScGridWindow instance.
std::vector<LOKCursorEntry> maLOKLastCursor;
- std::unique_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
+ std::shared_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
ScViewData* pViewData;
ScSplitPos const eWhich;
@@ -428,7 +428,7 @@ public:
void CursorChanged();
void DrawLayerCreated();
- void EnableAutoSpell( bool bEnable );
+ void SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx );
void ResetAutoSpell();
void ResetAutoSpellForContentChange();
void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
index 287513af1e00..25185b1ca559 100644
--- a/sc/source/ui/inc/tabview.hxx
+++ b/sc/source/ui/inc/tabview.hxx
@@ -163,6 +163,8 @@ private:
VclPtr<ScCornerButton> aTopButton;
VclPtr<ScrollBarBox> aScrollBarBox;
+ std::shared_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
+
std::unique_ptr<sdr::overlay::OverlayObjectList> mxInputHintOO; // help hint for data validation
std::unique_ptr<ScPageBreakData> pPageBreakData;
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 569395c99d6b..9dfca179a4ed 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5528,12 +5528,9 @@ void ScGridWindow::DrawLayerCreated()
ImpCreateOverlayObjects();
}
-void ScGridWindow::EnableAutoSpell( bool bEnable )
+void ScGridWindow::SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx )
{
- if (bEnable)
- mpSpellCheckCxt.reset(new sc::SpellCheckContext(pViewData->GetDocument(), pViewData->GetTabNo()));
- else
- mpSpellCheckCxt.reset();
+ mpSpellCheckCxt = ctx;
}
void ScGridWindow::ResetAutoSpell()
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 2c6dd86e368d..1f924ddaf8f9 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -45,6 +45,7 @@
#include <viewuno.hxx>
#include <appoptio.hxx>
#include <attrib.hxx>
+#include <spellcheckcontext.hxx>
#include <comphelper/lok.hxx>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#include <sfx2/lokhelper.hxx>
@@ -2237,12 +2238,19 @@ void ScTabView::EnableRefInput(bool bFlag)
void ScTabView::EnableAutoSpell( bool bEnable )
{
+ if (bEnable)
+ mpSpellCheckCxt.reset(
+ new sc::SpellCheckContext(aViewData.GetDocument(),
+ aViewData.GetTabNo()));
+ else
+ mpSpellCheckCxt.reset();
+
for (VclPtr<ScGridWindow> & pWin : pGridWin)
{
if (!pWin)
continue;
- pWin->EnableAutoSpell(bEnable);
+ pWin->SetAutoSpellContext(mpSpellCheckCxt);
}
}
diff --git a/sc/source/ui/view/tabview5.cxx b/sc/source/ui/view/tabview5.cxx
index e504cf231698..a81772131d12 100644
--- a/sc/source/ui/view/tabview5.cxx
+++ b/sc/source/ui/view/tabview5.cxx
@@ -46,6 +46,7 @@
#include <docsh.hxx>
#include <viewuno.hxx>
#include <postit.hxx>
+#include <spellcheckcontext.hxx>
#include <vcl/settings.hxx>
@@ -193,6 +194,10 @@ ScTabView::~ScTabView()
pSelEngine.reset();
+ if (mpSpellCheckCxt)
+ mpSpellCheckCxt->dispose();
+ mpSpellCheckCxt.reset();
+
mxInputHintOO.reset();
for (i=0; i<4; i++)
pGridWin[i].disposeAndClear();
@@ -269,9 +274,9 @@ void ScTabView::DoAddWin( ScGridWindow* pWin )
if (pDrawView)
{
pDrawView->AddWindowToPaintView(pWin, nullptr);
-
pWin->DrawLayerCreated();
}
+ pWin->SetAutoSpellContext(mpSpellCheckCxt);
}
void ScTabView::TabChanged( bool bSameTabButMoved )
More information about the Libreoffice-commits
mailing list