sc/source/ui/inc/undobase.hxx | 2 ++ sc/source/ui/undo/undobase.cxx | 22 ++++++++++++++++++++++ sc/source/ui/undo/undoblk3.cxx | 2 ++ 3 files changed, 26 insertions(+)
New commits: commit f579d49aafe53f6a5500c7c4a0ca28953de9fecf Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Wed Nov 27 21:27:57 2013 -0500 Broadcast changes on undo / redo of cell range deletion. Change-Id: I48141ca77277c2de5b3526358cfadb12e3f4fbdd diff --git a/sc/source/ui/inc/undobase.hxx b/sc/source/ui/inc/undobase.hxx index e57e308..5c9df4b 100644 --- a/sc/source/ui/inc/undobase.hxx +++ b/sc/source/ui/inc/undobase.hxx @@ -57,6 +57,8 @@ protected: void BeginRedo(); void EndRedo(); + void BroadcastChanges( const ScRange& rRange ); + static void ShowTable( SCTAB nTab ); static void ShowTable( const ScRange& rRange ); }; diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx index 955d2ba..c38ff47 100644 --- a/sc/source/ui/undo/undobase.cxx +++ b/sc/source/ui/undo/undobase.cxx @@ -142,6 +142,28 @@ void ScSimpleUndo::EndRedo() pDocShell->SetInUndo( false ); } +void ScSimpleUndo::BroadcastChanges( const ScRange& rRange ) +{ + ScDocument* pDoc = pDocShell->GetDocument(); + pDoc->CellContentModified(); + + ScHint aHint(SC_HINT_DATACHANGED, ScAddress()); + ScAddress& rPos = aHint.GetAddress(); + for (SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab) + { + rPos.SetTab(nTab); + for (SCCOL nCol = rRange.aStart.Col(); nCol <= rRange.aEnd.Col(); ++nCol) + { + rPos.SetCol(nCol); + for (SCROW nRow = rRange.aStart.Row(); nRow <= rRange.aEnd.Row(); ++nRow) + { + rPos.SetRow(nRow); + pDoc->Broadcast(aHint); + } + } + } +} + void ScSimpleUndo::ShowTable( SCTAB nTab ) { ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell(); diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx index c3953c6..fe94d09 100644 --- a/sc/source/ui/undo/undoblk3.cxx +++ b/sc/source/ui/undo/undoblk3.cxx @@ -182,6 +182,7 @@ void ScUndoDeleteContents::Undo() DoChange( sal_True ); EndUndo(); + BroadcastChanges(aRange); HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange); } @@ -191,6 +192,7 @@ void ScUndoDeleteContents::Redo() DoChange( false ); EndRedo(); + BroadcastChanges(aRange); HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits