sc/inc/document.hxx | 1 + sc/qa/unit/ucalc.cxx | 3 ++- sc/source/core/data/column2.cxx | 2 +- sc/source/core/data/document.cxx | 11 ++++++++++- sc/source/ui/docshell/docfunc.cxx | 2 -- sc/source/ui/docshell/docsh.cxx | 4 ++-- sc/source/ui/drawfunc/futext3.cxx | 4 ++-- 7 files changed, 18 insertions(+), 9 deletions(-)
New commits: commit b9ea300d99ba57f101ab6c88123a5cc712e5c406 Author: Laurent Godard <lgodard.li...@laposte.net> Date: Mon Oct 7 15:30:43 2013 +0200 Notes new storage & methods Change-Id: If6265dbcb6cfe16c5398b331579d414a835344ca diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index e1c13c5..0c139d4 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -900,6 +900,7 @@ public: bool HasNote(const ScAddress& rPos); bool HasNote(SCCOL nCol, SCROW nRow, SCTAB nTab); SC_DLLPUBLIC bool HasColNotes(SCCOL nCol, SCTAB nTab); + SC_DLLPUBLIC bool HasTabNotes(SCTAB nTab); SC_DLLPUBLIC ScPostIt* ReleaseNote(const ScAddress& rPos); SC_DLLPUBLIC ScPostIt* ReleaseNote(SCCOL nCol, SCROW nRow, SCTAB nTab); SC_DLLPUBLIC ScPostIt* GetOrCreateNote(const ScAddress& rPos); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 0f97c50..cf66f14 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -1870,7 +1870,7 @@ const ScPostIt* ScColumn::GetCellNote(SCROW nRow) const void ScColumn::SetCellNote(SCROW nRow, ScPostIt* pNote) { - //pNote->UpdateCaptionPos(ScAddress(nCol, nRow, nTab)); + pNote->UpdateCaptionPos(ScAddress(nCol, nRow, nTab)); maCellNotes.set(nRow, pNote); } void ScColumn::DeleteCellNote(SCROW nRow) diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 9ebdd62..e77dd16 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -6115,6 +6115,15 @@ bool ScDocument::HasColNotes(SCCOL nCol, SCTAB nTab) return maTabs[nTab]->aCol[nCol].HasCellNotes(); } +bool ScDocument::HasTabNotes(SCTAB nTab) +{ + bool hasNotes = false; + for (SCCOL nCol=0; nCol<MAXCOLCOUNT && !hasNotes; ++nCol) + hasNotes = HasColNotes(nCol, nTab); + + return hasNotes; +} + ScPostIt* ScDocument::ReleaseNote(const ScAddress& rPos) { return ReleaseNote(rPos.Col(), rPos.Row(), rPos.Tab()); @@ -6156,7 +6165,7 @@ sal_uLong ScDocument::CountNotes() for (; it != itEnd; ++it) { if (it->type == sc::element_type_cellnote) - nCount +=1; + nCount +=it->size; } } } diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 7fb763e..0bbfe96 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -1188,8 +1188,6 @@ bool ScDocFunc::SetNoteText( const ScAddress& rPos, const String& rText, sal_Boo String aNewText = convertLineEnd(rText, GetSystemLineEnd()); //! ist das noetig ??? - - // if( ScPostIt* pNote = (aNewText.Len() > 0) ? pDoc->GetNotes(rPos.Tab())->GetOrCreateNote( rPos ) : pDoc->GetNotes( rPos.Tab() )->findByAddress(rPos) ) if( ScPostIt* pNote = (aNewText.Len() > 0) ? pDoc->GetOrCreateNote( rPos ) : pDoc->GetNote(rPos) ) pNote->SetText( rPos, aNewText ); diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index 0e954f6..feb2504 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -247,8 +247,8 @@ sal_uInt16 ScDocShell::GetHiddenInformationState( sal_uInt16 nStates ) bool bFound = false; for (SCTAB nTab = 0; nTab < nTableCount && !bFound; ++nTab) { - // if (!aDocument.GetNotes(nTab)->empty()) TODO: - // bFound = true; + if (aDocument.HasTabNotes(nTab)) //TODO: + bFound = true; } if (bFound) diff --git a/sc/source/ui/drawfunc/futext3.cxx b/sc/source/ui/drawfunc/futext3.cxx index 2bcc733..d83c34f 100644 --- a/sc/source/ui/drawfunc/futext3.cxx +++ b/sc/source/ui/drawfunc/futext3.cxx @@ -142,13 +142,13 @@ void FuText::StopEditMode(sal_Bool /*bTextDirection*/) // rescue note data before deletion ScNoteData aNoteData( pNote->GetNoteData() ); // delete note from document (removes caption, but does not delete it) -// TODO rDoc.GetNotes( aNotePos.Tab() )->erase( aNotePos ); + rDoc.ReleaseNote(aNotePos); // create undo action for removed note pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, aNotePos, aNoteData, false, pDrawLayer->GetCalcUndo() ) ); } else { -// TODO rDoc.GetNotes( aNotePos.Tab() )->erase( aNotePos ); + rDoc.ReleaseNote(aNotePos); } // ScDocument::DeleteNote has deleted the note that pNote points to pNote = 0; commit abbe2c0f501e052a5167f038092cbb9fc6aac30f Author: Laurent Godard <lgodard.li...@laposte.net> Date: Mon Oct 7 15:27:50 2013 +0200 - unit test still failing Change-Id: Ibfef8a1264c70414f164df7cc15886955b06f79c diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 250e5aa..500894c 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -3083,7 +3083,7 @@ void Test::testMoveBlock() ScPostIt* pNoteA1 = m_pDoc->GetOrCreateNote(aAddrA1); pNoteA1->SetText(aAddrA1, aHelloA1); ScAddress aAddrB1 (1, 0, 0); - OUString aHelloB1("Hello world in B1"); + String aHelloB1("Hello world in B1"); ScPostIt* pNoteB1 = m_pDoc->GetOrCreateNote(aAddrB1); pNoteB1->SetText(aAddrB1, aHelloB1); ScAddress aAddrC1 (2, 0, 0); @@ -3093,6 +3093,7 @@ void Test::testMoveBlock() ScAddress aAddrD1 (3, 0, 0); std::cout << "B1 note before moveblock: " << m_pDoc->GetNote(aAddrB1)->GetText() << std::endl; + std::cout << "B1 note before moveblock pNoteB1: " << pNoteB1->GetText() << std::endl; std::cout << "B1 note before moveblock should be: " << aHelloB1 << std::endl; // previous tests on cell note content are ok. this one fails !!! :( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits