sc/inc/document.hxx | 5 --- sc/qa/unit/ucalc.cxx | 2 - sc/source/core/data/documen2.cxx | 3 -- sc/source/core/data/document.cxx | 3 -- sc/source/ui/docshell/editable.cxx | 48 +++++++++++++++++-------------------- sc/source/ui/inc/editable.hxx | 11 +++----- 6 files changed, 29 insertions(+), 43 deletions(-)
New commits: commit f4b3cef45cc8c02ccc7139c644ac4b20079bbc5d Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Tue Jan 29 00:09:59 2013 -0500 We don't need this hack anymore for unit test. I've addressed the root cause the right way. Change-Id: I1b3b13d28e4acc9f9ec814c0ad242166aa34a65e diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 3874916..b857cb7 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -403,10 +403,6 @@ private: ::std::set<ScFormulaCell*> maSubTotalCells; - // quick and ugly hack to fix the ScEditableTester problem in ucalc - // write a clean fix for this as soon as possible - bool mbIsInTest; - public: SC_DLLPUBLIC sal_uLong GetCellCount() const; // all cells SCSIZE GetCellCount(SCTAB nTab, SCCOL nCol) const; @@ -1102,7 +1098,6 @@ public: bool bColInfo = false, bool bRowInfo = false ); SC_DLLPUBLIC void InitUndoSelected( ScDocument* pSrcDoc, const ScMarkData& rTabSelection, bool bColInfo = false, bool bRowInfo = false ); - void SetInTest() { mbIsInTest = true; } // don't use anymore: void CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 6a2ac0f..c6778a4 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -5150,7 +5150,6 @@ void Test::testMergedCells() ScRange aRange(0,2,0,MAXCOL,2,0); ScMarkData aMark; aMark.SetMarkArea(aRange); - m_pDoc->SetInTest(); m_xDocShRef->GetDocFunc().InsertCells(aRange, &aMark, INS_INSROWS, true, true); m_pDoc->ExtendMerge(1, 1, nEndCol, nEndRow, 0, false); cout << nEndRow << nEndCol; @@ -5479,7 +5478,6 @@ void Test::testCopyPasteFormulas() m_pDoc->SetString(0,4,0, "=$Sheet2.A$1"); // to prevent ScEditableTester in ScDocFunc::MoveBlock - m_pDoc->SetInTest(); ASSERT_DOUBLES_EQUAL(m_pDoc->GetValue(0,0,0), 1.0); ASSERT_DOUBLES_EQUAL(m_pDoc->GetValue(0,1,0), 1.0); ScDocFunc& rDocFunc = m_xDocShRef->GetDocFunc(); diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 79f90f4..f182316 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -206,8 +206,7 @@ ScDocument::ScDocument( ScDocumentMode eMode, mbChangeReadOnlyEnabled( false ), mbStreamValidLocked( false ), mbUserInteractionEnabled(true), - mnNamedRangesLockCount( 0 ), - mbIsInTest( false ) + mnNamedRangesLockCount(0) { SetStorageGrammar( formula::FormulaGrammar::GRAM_STORAGE_DEFAULT); diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index d2ff1ee..7905d6e 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -4743,8 +4743,7 @@ bool ScDocument::IsBlockEditable( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, bool* pOnlyNotBecauseOfMatrix /* = NULL */ ) const { // import into read-only document is possible - // TODO: come up with a clean solution for the testing problem - if ( !bImportingXML && !mbChangeReadOnlyEnabled && pShell && (pShell->IsReadOnly()&&!mbIsInTest) ) + if (!bImportingXML && !mbChangeReadOnlyEnabled && pShell && pShell->IsReadOnly()) { if ( pOnlyNotBecauseOfMatrix ) *pOnlyNotBecauseOfMatrix = false; commit 0532733965f78f71a41983815d4e0525c07f9019 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Mon Jan 28 23:56:12 2013 -0500 Bool cleanup with ScEditableTester. Change-Id: If4ae85bec451897f5c22397f4301200d1d3c77ac diff --git a/sc/source/ui/docshell/editable.cxx b/sc/source/ui/docshell/editable.cxx index fce1978..2664e9e 100644 --- a/sc/source/ui/docshell/editable.cxx +++ b/sc/source/ui/docshell/editable.cxx @@ -23,18 +23,16 @@ #include "globstr.hrc" #include "markdata.hxx" -//------------------------------------------------------------------ - ScEditableTester::ScEditableTester() : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { } ScEditableTester::ScEditableTester( ScDocument* pDoc, SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { TestBlock( pDoc, nTab, nStartCol, nStartRow, nEndCol, nEndRow ); } @@ -42,29 +40,29 @@ ScEditableTester::ScEditableTester( ScDocument* pDoc, SCTAB nTab, ScEditableTester::ScEditableTester( ScDocument* pDoc, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScMarkData& rMark ) : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { TestSelectedBlock( pDoc, nStartCol, nStartRow, nEndCol, nEndRow, rMark ); } ScEditableTester::ScEditableTester( ScDocument* pDoc, const ScRange& rRange ) : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { TestRange( pDoc, rRange ); } ScEditableTester::ScEditableTester( ScDocument* pDoc, const ScMarkData& rMark ) : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { TestSelection( pDoc, rMark ); } ScEditableTester::ScEditableTester( ScViewFunc* pView ) : - bIsEditable( sal_True ), - bOnlyMatrix( sal_True ) + mbIsEditable(true), + mbOnlyMatrix(true) { TestView( pView ); } @@ -74,14 +72,14 @@ ScEditableTester::ScEditableTester( ScViewFunc* pView ) : void ScEditableTester::TestBlock( ScDocument* pDoc, SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) { - if ( bIsEditable || bOnlyMatrix ) + if (mbIsEditable || mbOnlyMatrix) { bool bThisMatrix; if ( !pDoc->IsBlockEditable( nTab, nStartCol, nStartRow, nEndCol, nEndRow, &bThisMatrix ) ) { - bIsEditable = false; + mbIsEditable = false; if ( !bThisMatrix ) - bOnlyMatrix = false; + mbOnlyMatrix = false; } } } @@ -110,28 +108,28 @@ void ScEditableTester::TestRange( ScDocument* pDoc, const ScRange& rRange ) void ScEditableTester::TestSelection( ScDocument* pDoc, const ScMarkData& rMark ) { - if ( bIsEditable || bOnlyMatrix ) + if (mbIsEditable || mbOnlyMatrix) { bool bThisMatrix; if ( !pDoc->IsSelectionEditable( rMark, &bThisMatrix ) ) { - bIsEditable = false; + mbIsEditable = false; if ( !bThisMatrix ) - bOnlyMatrix = false; + mbOnlyMatrix = false; } } } void ScEditableTester::TestView( ScViewFunc* pView ) { - if ( bIsEditable || bOnlyMatrix ) + if (mbIsEditable || mbOnlyMatrix) { bool bThisMatrix; if ( !pView->SelectionEditable( &bThisMatrix ) ) { - bIsEditable = false; + mbIsEditable = false; if ( !bThisMatrix ) - bOnlyMatrix = false; + mbOnlyMatrix = false; } } } @@ -140,9 +138,9 @@ void ScEditableTester::TestView( ScViewFunc* pView ) sal_uInt16 ScEditableTester::GetMessageId() const { - if (bIsEditable) + if (mbIsEditable) return 0; - else if (bOnlyMatrix) + else if (mbOnlyMatrix) return STR_MATRIXFRAGMENTERR; else return STR_PROTECTIONERR; diff --git a/sc/source/ui/inc/editable.hxx b/sc/source/ui/inc/editable.hxx index 6213e48..2760c04 100644 --- a/sc/source/ui/inc/editable.hxx +++ b/sc/source/ui/inc/editable.hxx @@ -31,11 +31,10 @@ class ScRange; class ScEditableTester { - sal_Bool bIsEditable; - sal_Bool bOnlyMatrix; + bool mbIsEditable; + bool mbOnlyMatrix; public: - // no test in ctor ScEditableTester(); // calls TestBlock @@ -56,8 +55,6 @@ public: // calls TestView ScEditableTester( ScViewFunc* pView ); - ~ScEditableTester() {} - // Several calls to the Test... methods check if *all* of the ranges // are editable. For several independent checks, Reset() has to be used. void TestBlock( ScDocument* pDoc, SCTAB nTab, @@ -69,8 +66,8 @@ public: void TestSelection( ScDocument* pDoc, const ScMarkData& rMark ); void TestView( ScViewFunc* pView ); - sal_Bool IsEditable() const { return bIsEditable; } - sal_Bool IsFormatEditable() const { return bIsEditable || bOnlyMatrix; } + bool IsEditable() const { return mbIsEditable; } + bool IsFormatEditable() const { return mbIsEditable || mbOnlyMatrix; } sal_uInt16 GetMessageId() const; }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits