sc/source/ui/collab/sendfunc.cxx | 5 - sc/source/ui/collab/sendfunc.hxx | 3 sc/source/ui/docshell/docfunc.cxx | 35 ++++----- sc/source/ui/inc/docfunc.hxx | 3 sc/source/ui/inc/undocell.hxx | 41 ++++++----- sc/source/ui/undo/undocell.cxx | 138 +++++++++++++++++++------------------- sc/source/ui/unoobj/textuno.cxx | 2 sc/source/ui/view/viewfunc.cxx | 23 +----- 8 files changed, 121 insertions(+), 129 deletions(-)
New commits: commit a2b9aec93e98cad0b36f62f7c0092a8f14b300c6 Author: Kohei Yoshida <[email protected]> Date: Thu Mar 21 16:36:57 2013 -0400 Modernize ScUndoEnterData a bit. Change-Id: I2cf86a445b4820ec89fc610e8e4eec7862195d21 diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 5bc31f5..c1caa2e 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -760,31 +760,29 @@ sal_Bool ScDocFunc::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, return false; } - SCTAB* pTabs = NULL; - ScBaseCell** ppOldCells = NULL; - sal_Bool* pHasFormat = NULL; - sal_uLong* pOldFormats = NULL; ScBaseCell* pDocCell = pDoc->GetCell( rPos ); sal_Bool bEditDeleted = (pDocCell && pDocCell->GetCellType() == CELLTYPE_EDIT); + ScUndoEnterData::ValuesType aOldValues; + if (bUndo) { - pTabs = new SCTAB[1]; - pTabs[0] = rPos.Tab(); - ppOldCells = new ScBaseCell*[1]; - ppOldCells[0] = pDocCell ? pDocCell->Clone( *pDoc ) : 0; + ScUndoEnterData::Value aOldValue; + + aOldValue.mnTab = rPos.Tab(); + aOldValue.mpCell = pDocCell ? pDocCell->Clone( *pDoc ) : 0; - pHasFormat = new sal_Bool[1]; - pOldFormats = new sal_uLong[1]; const SfxPoolItem* pItem; const ScPatternAttr* pPattern = pDoc->GetPattern( rPos.Col(),rPos.Row(),rPos.Tab() ); if ( SFX_ITEM_SET == pPattern->GetItemSet().GetItemState( ATTR_VALUE_FORMAT,false,&pItem) ) { - pHasFormat[0] = sal_True; - pOldFormats[0] = ((const SfxUInt32Item*)pItem)->GetValue(); + aOldValue.mbHasFormat = true; + aOldValue.mnFormat = ((const SfxUInt32Item*)pItem)->GetValue(); } else - pHasFormat[0] = false; + aOldValue.mbHasFormat = false; + + aOldValues.push_back(aOldValue); } o_rbNumFmtSet = pDoc->SetString( rPos.Col(), rPos.Row(), rPos.Tab(), rText ); @@ -792,8 +790,8 @@ sal_Bool ScDocFunc::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, if (bUndo) { // wegen ChangeTracking darf UndoAction erst nach SetString angelegt werden - rDocShell.GetUndoManager()->AddUndoAction(new ScUndoEnterData( &rDocShell, rPos, 1, pTabs, - ppOldCells, pHasFormat, pOldFormats, rText, NULL ) ); + rDocShell.GetUndoManager()->AddUndoAction( + new ScUndoEnterData(&rDocShell, rPos, aOldValues, rText, NULL)); } if ( bEditDeleted || pDoc->HasAttrib( ScRange(rPos), HASATTR_NEEDHEIGHT ) ) diff --git a/sc/source/ui/inc/undocell.hxx b/sc/source/ui/inc/undocell.hxx index a41c558..76d9032 100644 --- a/sc/source/ui/inc/undocell.hxx +++ b/sc/source/ui/inc/undocell.hxx @@ -24,6 +24,7 @@ #include "postit.hxx" #include <boost/shared_ptr.hpp> +#include <boost/scoped_ptr.hpp> class ScDocShell; class ScBaseCell; @@ -74,12 +75,24 @@ private: class ScUndoEnterData: public ScSimpleUndo { public: + struct Value + { + SCTAB mnTab; + bool mbHasFormat; + sal_uInt32 mnFormat; + ScBaseCell* mpCell; + + Value(); + }; + + typedef std::vector<Value> ValuesType; + TYPEINFO(); - ScUndoEnterData( ScDocShell* pNewDocShell, const ScAddress& rPos, - SCTAB nNewCount, SCTAB* pNewTabs, - ScBaseCell** ppOldData, sal_Bool* pHasForm, sal_uLong* pOldForm, - const String& rNewStr, EditTextObject* pObj = NULL ); - virtual ~ScUndoEnterData(); + ScUndoEnterData( + ScDocShell* pNewDocShell, const ScAddress& rPos, + ValuesType& rOldValues, const OUString& rNewStr, EditTextObject* pObj = NULL ); + + virtual ~ScUndoEnterData(); virtual void Undo(); virtual void Redo(); @@ -89,15 +102,12 @@ public: virtual rtl::OUString GetComment() const; private: - String aNewString; - SCTAB* pTabs; - ScBaseCell** ppOldCells; - sal_Bool* pHasFormat; - sal_uLong* pOldFormats; - EditTextObject* pNewEditData; - sal_uLong nEndChangeAction; + ValuesType maOldValues; + + OUString maNewString; + boost::scoped_ptr<EditTextObject> mpNewEditData; + sal_uLong mnEndChangeAction; ScAddress maPos; - SCTAB nCount; // Marked sheet void DoChange() const; void SetChangeTrack(); diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx index b0f15f1..d969d14 100644 --- a/sc/source/ui/undo/undocell.cxx +++ b/sc/source/ui/undo/undocell.cxx @@ -164,35 +164,37 @@ sal_Bool ScUndoCursorAttr::CanRepeat(SfxRepeatTarget& rTarget) const return (rTarget.ISA(ScTabViewTarget)); } -ScUndoEnterData::ScUndoEnterData( ScDocShell* pNewDocShell, const ScAddress& rPos, - SCTAB nNewCount, SCTAB* pNewTabs, ScBaseCell** ppOldData, - sal_Bool* pHasForm, sal_uLong* pOldForm, - const String& rNewStr, EditTextObject* pObj ) : +ScUndoEnterData::Value::Value() : mnTab(-1), mbHasFormat(false), mnFormat(0), mpCell(NULL) {} + +ScUndoEnterData::ScUndoEnterData( + ScDocShell* pNewDocShell, const ScAddress& rPos, ValuesType& rOldValues, + const OUString& rNewStr, EditTextObject* pObj ) : ScSimpleUndo( pNewDocShell ), - aNewString( rNewStr ), - pTabs( pNewTabs ), - ppOldCells( ppOldData ), - pHasFormat( pHasForm ), - pOldFormats( pOldForm ), - pNewEditData( pObj ), - maPos(rPos), - nCount( nNewCount ) + maNewString(rNewStr), + mpNewEditData(pObj), + mnEndChangeAction(0), + maPos(rPos) { + maOldValues.swap(rOldValues); + SetChangeTrack(); } -ScUndoEnterData::~ScUndoEnterData() +namespace { + +struct DeleteCell : std::unary_function<ScUndoEnterData::Value, void> { - for (sal_uInt16 i=0; i<nCount; i++) - if (ppOldCells[i]) - ppOldCells[i]->Delete(); - delete[] ppOldCells; + void operator() (ScUndoEnterData::Value& rVal) + { + rVal.mpCell->Delete(); + } +}; - delete[] pHasFormat; - delete[] pOldFormats; - delete[] pTabs; +} - delete pNewEditData; +ScUndoEnterData::~ScUndoEnterData() +{ + std::for_each(maOldValues.begin(), maOldValues.end(), DeleteCell()); } rtl::OUString ScUndoEnterData::GetComment() const @@ -203,8 +205,8 @@ rtl::OUString ScUndoEnterData::GetComment() const void ScUndoEnterData::DoChange() const { // only when needed (old or new Edit cell, or Attribute)? - for (sal_uInt16 i=0; i<nCount; i++) - pDocShell->AdjustRowHeight(maPos.Row(), maPos.Row(), pTabs[i]); + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) + pDocShell->AdjustRowHeight(maPos.Row(), maPos.Row(), maOldValues[i].mnTab); ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell(); if (pViewShell) @@ -221,24 +223,21 @@ void ScUndoEnterData::SetChangeTrack() ScChangeTrack* pChangeTrack = pDocShell->GetDocument()->GetChangeTrack(); if ( pChangeTrack ) { - nEndChangeAction = pChangeTrack->GetActionMax() + 1; + mnEndChangeAction = pChangeTrack->GetActionMax() + 1; ScAddress aPos(maPos); - for (sal_uInt16 i=0; i<nCount; i++) + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) { - aPos.SetTab( pTabs[i] ); + aPos.SetTab(maOldValues[i].mnTab); sal_uLong nFormat = 0; - if ( pHasFormat && pOldFormats ) - { - if ( pHasFormat[i] ) - nFormat = pOldFormats[i]; - } - pChangeTrack->AppendContent( aPos, ppOldCells[i], nFormat ); + if (maOldValues[i].mbHasFormat) + nFormat = maOldValues[i].mnFormat; + pChangeTrack->AppendContent(aPos, maOldValues[i].mpCell, nFormat); } - if ( nEndChangeAction > pChangeTrack->GetActionMax() ) - nEndChangeAction = 0; // nothing is appended + if ( mnEndChangeAction > pChangeTrack->GetActionMax() ) + mnEndChangeAction = 0; // nothing is appended } else - nEndChangeAction = 0; + mnEndChangeAction = 0; } void ScUndoEnterData::Undo() @@ -246,29 +245,28 @@ void ScUndoEnterData::Undo() BeginUndo(); ScDocument* pDoc = pDocShell->GetDocument(); - for (sal_uInt16 i=0; i<nCount; i++) + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) { - ScBaseCell* pNewCell = ppOldCells[i] ? ppOldCells[i]->Clone( *pDoc, SC_CLONECELL_STARTLISTENING ) : 0; - pDoc->PutCell(maPos.Col(), maPos.Row(), pTabs[i], pNewCell); + Value& rVal = maOldValues[i]; + ScBaseCell* pNewCell = rVal.mpCell ? rVal.mpCell->Clone( *pDoc, SC_CLONECELL_STARTLISTENING ) : 0; + pDoc->PutCell(maPos.Col(), maPos.Row(), rVal.mnTab, pNewCell); - if (pHasFormat && pOldFormats) + if (rVal.mbHasFormat) + pDoc->ApplyAttr(maPos.Col(), maPos.Row(), rVal.mnTab, + SfxUInt32Item(ATTR_VALUE_FORMAT, rVal.mnFormat)); + else { - if ( pHasFormat[i] ) - pDoc->ApplyAttr(maPos.Col(), maPos.Row(), pTabs[i], - SfxUInt32Item(ATTR_VALUE_FORMAT, pOldFormats[i])); - else - { - ScPatternAttr aPattern( *pDoc->GetPattern(maPos.Col(), maPos.Row(), pTabs[i])); - aPattern.GetItemSet().ClearItem( ATTR_VALUE_FORMAT ); - pDoc->SetPattern(maPos.Col(), maPos.Row(), pTabs[i], aPattern, true); - } + ScPatternAttr aPattern(*pDoc->GetPattern(maPos.Col(), maPos.Row(), rVal.mnTab)); + aPattern.GetItemSet().ClearItem( ATTR_VALUE_FORMAT ); + pDoc->SetPattern(maPos.Col(), maPos.Row(), rVal.mnTab, aPattern, true); } - pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), pTabs[i]); + pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), rVal.mnTab); } ScChangeTrack* pChangeTrack = pDoc->GetChangeTrack(); - if ( pChangeTrack && nEndChangeAction >= sal::static_int_cast<sal_uLong>(nCount) ) - pChangeTrack->Undo( nEndChangeAction - nCount + 1, nEndChangeAction ); + size_t nCount = maOldValues.size(); + if ( pChangeTrack && mnEndChangeAction >= sal::static_int_cast<sal_uLong>(nCount) ) + pChangeTrack->Undo( mnEndChangeAction - nCount + 1, mnEndChangeAction ); DoChange(); EndUndo(); @@ -278,9 +276,9 @@ void ScUndoEnterData::Undo() if ( pModelObj && pModelObj->HasChangesListeners() ) { ScRangeList aChangeRanges; - for ( sal_uInt16 i = 0; i < nCount; ++i ) + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) { - aChangeRanges.Append( ScRange(maPos.Col(), maPos.Row(), pTabs[i])); + aChangeRanges.Append( ScRange(maPos.Col(), maPos.Row(), maOldValues[i].mnTab)); } pModelObj->NotifyChanges( ::rtl::OUString( "cell-change" ), aChangeRanges ); } @@ -291,15 +289,20 @@ void ScUndoEnterData::Redo() BeginRedo(); ScDocument* pDoc = pDocShell->GetDocument(); - for (sal_uInt16 i=0; i<nCount; i++) + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) { - if (pNewEditData) - // A clone of pNewEditData will be stored in ScEditCell. - pDoc->PutCell(maPos.Col(), maPos.Row(), pTabs[i], new ScEditCell(*pNewEditData, - pDoc, NULL)); + SCTAB nTab = maOldValues[i].mnTab; + if (mpNewEditData) + { + ScAddress aPos = maPos; + aPos.SetTab(nTab); + // edit text wil be cloned. + pDoc->SetEditText(aPos, *mpNewEditData, NULL); + } else - pDoc->SetString(maPos.Col(), maPos.Row(), pTabs[i], aNewString); - pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), pTabs[i]); + pDoc->SetString(maPos.Col(), maPos.Row(), nTab, maNewString); + + pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), nTab); } SetChangeTrack(); @@ -312,9 +315,9 @@ void ScUndoEnterData::Redo() if ( pModelObj && pModelObj->HasChangesListeners() ) { ScRangeList aChangeRanges; - for ( sal_uInt16 i = 0; i < nCount; ++i ) + for (size_t i = 0, n = maOldValues.size(); i < n; ++i) { - aChangeRanges.Append( ScRange(maPos.Col(), maPos.Row(), pTabs[i])); + aChangeRanges.Append(ScRange(maPos.Col(), maPos.Row(), maOldValues[i].mnTab)); } pModelObj->NotifyChanges( ::rtl::OUString( "cell-change" ), aChangeRanges ); } @@ -324,7 +327,7 @@ void ScUndoEnterData::Repeat(SfxRepeatTarget& rTarget) { if (rTarget.ISA(ScTabViewTarget)) { - String aTemp = aNewString; + OUString aTemp = maNewString; ((ScTabViewTarget&)rTarget).GetViewShell()->EnterDataAtCursor( aTemp ); } } diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index 398fdf7..6d376fb 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -668,29 +668,22 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab, // undo // - SCTAB nSelCount = rMark.GetSelectCount(); - ScBaseCell** ppOldCells = NULL; - SCTAB* pTabs = NULL; - SCTAB nPos = 0; EditTextObject* pUndoData = NULL; + ScUndoEnterData::ValuesType aOldValues; + if (bRecord && !bSimple) { - ppOldCells = new ScBaseCell*[nSelCount]; - pTabs = new SCTAB[nSelCount]; - nPos = 0; - ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end(); for (; itr != itrEnd; ++itr) { - pTabs[nPos] = *itr; + ScUndoEnterData::Value aOldValue; + aOldValue.mnTab = *itr; ScBaseCell* pDocCell; pDoc->GetCell( nCol, nRow, *itr, pDocCell ); - ppOldCells[nPos] = pDocCell ? pDocCell->Clone( *pDoc ) : 0; - ++nPos; + aOldValue.mpCell = pDocCell ? pDocCell->Clone( *pDoc ) : 0; + aOldValues.push_back(aOldValue); } - OSL_ENSURE( nPos==nSelCount, "nPos!=nSelCount" ); - pUndoData = rData.Clone(); } @@ -717,9 +710,7 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab, if ( bRecord ) { // because of ChangeTrack current first pDocSh->GetUndoManager()->AddUndoAction( - new ScUndoEnterData( pDocSh, ScAddress(nCol, nRow, nTab), nPos, pTabs, - ppOldCells, NULL, NULL, aString, - pUndoData ) ); + new ScUndoEnterData(pDocSh, ScAddress(nCol,nRow,nTab), aOldValues, aString, pUndoData)); } HideAllCursors(); commit 47d72729ef2a66727c3755256c47fc46726bf823 Author: Kohei Yoshida <[email protected]> Date: Thu Mar 21 15:53:15 2013 -0400 Reduce the number of parameters. Change-Id: I0424ca0da103cdcf3f76b6b7afe25cc0ad230bc2 diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index fc7e84e..5bc31f5 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -792,7 +792,7 @@ sal_Bool ScDocFunc::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, if (bUndo) { // wegen ChangeTracking darf UndoAction erst nach SetString angelegt werden - rDocShell.GetUndoManager()->AddUndoAction(new ScUndoEnterData( &rDocShell, rPos.Col(),rPos.Row(),rPos.Tab(), 1,pTabs, + rDocShell.GetUndoManager()->AddUndoAction(new ScUndoEnterData( &rDocShell, rPos, 1, pTabs, ppOldCells, pHasFormat, pOldFormats, rText, NULL ) ); } diff --git a/sc/source/ui/inc/undocell.hxx b/sc/source/ui/inc/undocell.hxx index 39c7595..a41c558 100644 --- a/sc/source/ui/inc/undocell.hxx +++ b/sc/source/ui/inc/undocell.hxx @@ -75,8 +75,7 @@ class ScUndoEnterData: public ScSimpleUndo { public: TYPEINFO(); - ScUndoEnterData( ScDocShell* pNewDocShell, - SCCOL nNewCol, SCROW nNewRow, SCTAB nNewTab, + ScUndoEnterData( ScDocShell* pNewDocShell, const ScAddress& rPos, SCTAB nNewCount, SCTAB* pNewTabs, ScBaseCell** ppOldData, sal_Bool* pHasForm, sal_uLong* pOldForm, const String& rNewStr, EditTextObject* pObj = NULL ); @@ -97,9 +96,7 @@ private: sal_uLong* pOldFormats; EditTextObject* pNewEditData; sal_uLong nEndChangeAction; - SCCOL nCol; - SCROW nRow; - SCTAB nTab; + ScAddress maPos; SCTAB nCount; // Marked sheet void DoChange() const; diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx index 023245a..b0f15f1 100644 --- a/sc/source/ui/undo/undocell.cxx +++ b/sc/source/ui/undo/undocell.cxx @@ -164,8 +164,7 @@ sal_Bool ScUndoCursorAttr::CanRepeat(SfxRepeatTarget& rTarget) const return (rTarget.ISA(ScTabViewTarget)); } -ScUndoEnterData::ScUndoEnterData( ScDocShell* pNewDocShell, - SCCOL nNewCol, SCROW nNewRow, SCTAB nNewTab, +ScUndoEnterData::ScUndoEnterData( ScDocShell* pNewDocShell, const ScAddress& rPos, SCTAB nNewCount, SCTAB* pNewTabs, ScBaseCell** ppOldData, sal_Bool* pHasForm, sal_uLong* pOldForm, const String& rNewStr, EditTextObject* pObj ) : @@ -176,9 +175,7 @@ ScUndoEnterData::ScUndoEnterData( ScDocShell* pNewDocShell, pHasFormat( pHasForm ), pOldFormats( pOldForm ), pNewEditData( pObj ), - nCol( nNewCol ), - nRow( nNewRow ), - nTab( nNewTab ), + maPos(rPos), nCount( nNewCount ) { SetChangeTrack(); @@ -207,13 +204,13 @@ void ScUndoEnterData::DoChange() const { // only when needed (old or new Edit cell, or Attribute)? for (sal_uInt16 i=0; i<nCount; i++) - pDocShell->AdjustRowHeight( nRow, nRow, pTabs[i] ); + pDocShell->AdjustRowHeight(maPos.Row(), maPos.Row(), pTabs[i]); ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell(); if (pViewShell) { - pViewShell->SetTabNo( nTab ); - pViewShell->MoveCursorAbs( nCol, nRow, SC_FOLLOW_JUMP, false, false ); + pViewShell->SetTabNo(maPos.Tab()); + pViewShell->MoveCursorAbs(maPos.Col(), maPos.Row(), SC_FOLLOW_JUMP, false, false); } pDocShell->PostDataChanged(); @@ -225,7 +222,7 @@ void ScUndoEnterData::SetChangeTrack() if ( pChangeTrack ) { nEndChangeAction = pChangeTrack->GetActionMax() + 1; - ScAddress aPos( nCol, nRow, nTab ); + ScAddress aPos(maPos); for (sal_uInt16 i=0; i<nCount; i++) { aPos.SetTab( pTabs[i] ); @@ -252,21 +249,21 @@ void ScUndoEnterData::Undo() for (sal_uInt16 i=0; i<nCount; i++) { ScBaseCell* pNewCell = ppOldCells[i] ? ppOldCells[i]->Clone( *pDoc, SC_CLONECELL_STARTLISTENING ) : 0; - pDoc->PutCell( nCol, nRow, pTabs[i], pNewCell ); + pDoc->PutCell(maPos.Col(), maPos.Row(), pTabs[i], pNewCell); if (pHasFormat && pOldFormats) { if ( pHasFormat[i] ) - pDoc->ApplyAttr( nCol, nRow, pTabs[i], - SfxUInt32Item( ATTR_VALUE_FORMAT, pOldFormats[i] ) ); + pDoc->ApplyAttr(maPos.Col(), maPos.Row(), pTabs[i], + SfxUInt32Item(ATTR_VALUE_FORMAT, pOldFormats[i])); else { - ScPatternAttr aPattern( *pDoc->GetPattern( nCol, nRow, pTabs[i] ) ); + ScPatternAttr aPattern( *pDoc->GetPattern(maPos.Col(), maPos.Row(), pTabs[i])); aPattern.GetItemSet().ClearItem( ATTR_VALUE_FORMAT ); - pDoc->SetPattern( nCol, nRow, pTabs[i], aPattern, sal_True ); + pDoc->SetPattern(maPos.Col(), maPos.Row(), pTabs[i], aPattern, true); } } - pDocShell->PostPaintCell( nCol, nRow, pTabs[i] ); + pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), pTabs[i]); } ScChangeTrack* pChangeTrack = pDoc->GetChangeTrack(); @@ -283,7 +280,7 @@ void ScUndoEnterData::Undo() ScRangeList aChangeRanges; for ( sal_uInt16 i = 0; i < nCount; ++i ) { - aChangeRanges.Append( ScRange( nCol, nRow, pTabs[i] ) ); + aChangeRanges.Append( ScRange(maPos.Col(), maPos.Row(), pTabs[i])); } pModelObj->NotifyChanges( ::rtl::OUString( "cell-change" ), aChangeRanges ); } @@ -298,11 +295,11 @@ void ScUndoEnterData::Redo() { if (pNewEditData) // A clone of pNewEditData will be stored in ScEditCell. - pDoc->PutCell( nCol, nRow, pTabs[i], new ScEditCell(*pNewEditData, - pDoc, NULL ) ); + pDoc->PutCell(maPos.Col(), maPos.Row(), pTabs[i], new ScEditCell(*pNewEditData, + pDoc, NULL)); else - pDoc->SetString( nCol, nRow, pTabs[i], aNewString ); - pDocShell->PostPaintCell( nCol, nRow, pTabs[i] ); + pDoc->SetString(maPos.Col(), maPos.Row(), pTabs[i], aNewString); + pDocShell->PostPaintCell(maPos.Col(), maPos.Row(), pTabs[i]); } SetChangeTrack(); @@ -317,7 +314,7 @@ void ScUndoEnterData::Redo() ScRangeList aChangeRanges; for ( sal_uInt16 i = 0; i < nCount; ++i ) { - aChangeRanges.Append( ScRange( nCol, nRow, pTabs[i] ) ); + aChangeRanges.Append( ScRange(maPos.Col(), maPos.Row(), pTabs[i])); } pModelObj->NotifyChanges( ::rtl::OUString( "cell-change" ), aChangeRanges ); } diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index be08448..398fdf7 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -717,7 +717,7 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab, if ( bRecord ) { // because of ChangeTrack current first pDocSh->GetUndoManager()->AddUndoAction( - new ScUndoEnterData( pDocSh, nCol, nRow, nTab, nPos, pTabs, + new ScUndoEnterData( pDocSh, ScAddress(nCol, nRow, nTab), nPos, pTabs, ppOldCells, NULL, NULL, aString, pUndoData ) ); } commit 4cfaae0e336276d4c354f2bc71d1e5c563d65916 Author: Kohei Yoshida <[email protected]> Date: Thu Mar 21 15:33:02 2013 -0400 bInterpret is always set false. Remove it. Change-Id: I067f8eb4b81231e3ea7f084a6608c29e0dfeaf2b diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index f5cde9b..3e45a8c 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -181,11 +181,10 @@ bool ScDocFuncSend::SetFormulaCell( const ScAddress& rPos, ScFormulaCell* pCell, return true; // needs some code auditing action } -sal_Bool ScDocFuncSend::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, - sal_Bool bInterpret, sal_Bool bApi ) +bool ScDocFuncSend::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi ) { SAL_INFO( "sc.tubes", "PutData not implemented!" ); - return ScDocFunc::PutData( rPos, rEngine, bInterpret, bApi ); + return ScDocFunc::PutData( rPos, rEngine, bApi ); } bool ScDocFuncSend::SetCellText( diff --git a/sc/source/ui/collab/sendfunc.hxx b/sc/source/ui/collab/sendfunc.hxx index e1866ff..5e4d147 100644 --- a/sc/source/ui/collab/sendfunc.hxx +++ b/sc/source/ui/collab/sendfunc.hxx @@ -277,8 +277,7 @@ public: virtual bool SetStringCell( const ScAddress& rPos, const OUString& rStr, bool bInteraction ); virtual bool SetEditCell( const ScAddress& rPos, const EditTextObject& rStr, bool bInteraction ); virtual bool SetFormulaCell( const ScAddress& rPos, ScFormulaCell* pCell, bool bInteraction ); - virtual sal_Bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, - sal_Bool bInterpret, sal_Bool bApi ); + virtual bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi ); virtual bool SetCellText( const ScAddress& rPos, const OUString& rText, bool bInterpret, bool bEnglish, bool bApi, const formula::FormulaGrammar::Grammar eGrammar ); diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index c2f3df6..fc7e84e 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -1005,7 +1005,7 @@ void ScDocFunc::NotifyInputHandler( const ScAddress& rPos ) typedef ::std::list<ScMyRememberItem*> ScMyRememberItemList; -sal_Bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, sal_Bool bInterpret, sal_Bool bApi ) +bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi ) { // PutData ruft PutCell oder SetNormalString @@ -1053,7 +1053,6 @@ sal_Bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngi // Set the paragraph attributes back to the EditEngine. if (!aRememberItems.empty()) { -// ScMyRememberItem* pRememberItem = NULL; ScMyRememberItemList::iterator aItr = aRememberItems.begin(); while (aItr != aRememberItems.end()) { @@ -1070,8 +1069,8 @@ sal_Bool ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngi } else { - String aText = rEngine.GetText(); - if ( bInterpret || !aText.Len() ) + OUString aText = rEngine.GetText(); + if (aText.isEmpty()) { bool bNumFmtSet = false; bRet = SetNormalString( bNumFmtSet, rPos, aText, bApi ); diff --git a/sc/source/ui/inc/docfunc.hxx b/sc/source/ui/inc/docfunc.hxx index da96bb9..6b6d1d4 100644 --- a/sc/source/ui/inc/docfunc.hxx +++ b/sc/source/ui/inc/docfunc.hxx @@ -100,8 +100,7 @@ public: * must not delete it after passing it to this call. */ virtual bool SetFormulaCell( const ScAddress& rPos, ScFormulaCell* pCell, bool bInteraction ); - virtual sal_Bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, - sal_Bool bInterpret, sal_Bool bApi ); + virtual bool PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi ); virtual bool SetCellText( const ScAddress& rPos, const OUString& rText, bool bInterpret, bool bEnglish, bool bApi, const formula::FormulaGrammar::Grammar eGrammar ); diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx index 62f5234..fbd48a5 100644 --- a/sc/source/ui/unoobj/textuno.cxx +++ b/sc/source/ui/unoobj/textuno.cxx @@ -1031,7 +1031,7 @@ void ScCellTextData::UpdateData() // or things like attributes after the text would be lost // (are not stored in the cell) bInUpdate = sal_True; // prevents bDataValid from being reset - pDocShell->GetDocFunc().PutData( aCellPos, *pEditEngine, false, sal_True ); // always as text + pDocShell->GetDocFunc().PutData(aCellPos, *pEditEngine, true); // always as text bInUpdate = false; bDirty = false; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
