[Libreoffice-commits] core.git: sc/inc sc/qa sc/source
Eike Rathke
erack at redhat.com
Wed Feb 22 17:51:49 UTC 2017
sc/inc/document.hxx | 7 +++++++
sc/qa/unit/ucalc.cxx | 4 ++--
sc/source/core/data/documen2.cxx | 11 +++++++++--
3 files changed, 18 insertions(+), 4 deletions(-)
New commits:
commit 65553180cfe80a1b2d551c8063a5bc03b427d138
Author: Eike Rathke <erack at redhat.com>
Date: Wed Feb 22 18:50:34 2017 +0100
less ugly ClosingClipboardSource()
Change-Id: Ie53837e4dd5f779255eac25e090b23e49c3786ce
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index e93e882..a18b2ea 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1479,6 +1479,13 @@ public:
ScClipParam& GetClipParam();
void SetClipParam(const ScClipParam& rParam);
+ /** To be called at the clipboard document when closing a document that is
+ the current clipboard source to decouple things from the originating
+ document. Done in ScDocument dtor after determining
+ IsClipboardSource().
+ */
+ void ClosingClipboardSource();
+
void MixDocument( const ScRange& rRange, ScPasteFunc nFunction, bool bSkipEmpty,
ScDocument* pSrcDoc );
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index f2a0196..c715c5e 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -5365,8 +5365,8 @@ void Test::testNoteLifeCycle()
// There's no ScTransferObject involved in the "fake" clipboard copy
// and ScDocument dtor asking IsClipboardSource() gets no, so emulate
// the part that normally is reponsible for forgetting the caption
- // objects. Ugly.
- aClipDoc2.ForgetNoteCaptions( ScRangeList( ScRange( 0,0,0, MAXCOL, MAXROW, aClipDoc2.GetTableCount()-1)), true);
+ // objects.
+ aClipDoc2.ClosingClipboardSource();
pDoc2->DeleteTab(0);
closeDocShell(xDocSh2);
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 525c299..a2365bb 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -359,6 +359,14 @@ void ScDocument::StartTrackTimer()
aTrackIdle.Start();
}
+void ScDocument::ClosingClipboardSource()
+{
+ if (!bIsClip)
+ return;
+
+ ForgetNoteCaptions( ScRangeList( ScRange( 0,0,0, MAXCOL, MAXROW, GetTableCount()-1)), true);
+}
+
ScDocument::~ScDocument()
{
OSL_PRECOND( !bInLinkUpdate, "bInLinkUpdate in dtor" );
@@ -383,8 +391,7 @@ ScDocument::~ScDocument()
// attempt to access non-existing data. Preserve the text data though.
ScDocument* pClipDoc = ScModule::GetClipDoc();
if (pClipDoc)
- pClipDoc->ForgetNoteCaptions(
- ScRangeList( ScRange( 0,0,0, MAXCOL, MAXROW, pClipDoc->GetTableCount()-1)), true);
+ pClipDoc->ClosingClipboardSource();
}
mxFormulaParserPool.reset();
More information about the Libreoffice-commits
mailing list