Files
loongoffice/sc/source/core/tool/refhint.cxx
Kohei Yoshida 27182231ac fdo#78555: Retain formula results when moving a range of cells.
* No need to re-compile RPN token array on reference change alone.  We do that
  when the formula contains one or more names that have been updated.

* Adjust undo code to get it to work without relying on ref undo document,
  which would cause the token arrays to be unnecessarily recompiled.

* Whatever else need to be changed in order to pass all unit tests.

Change-Id: I99e86d23320aca8900fef011da23a9d34e42751e
2014-07-31 09:05:18 -04:00

95 lines
2.1 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <refhint.hxx>
namespace sc {
RefHint::RefHint( Type eType ) : SfxSimpleHint(SC_HINT_REFERENCE), meType(eType) {}
RefHint::~RefHint() {}
RefHint::Type RefHint::getType() const
{
return meType;
}
RefMovedHint::RefMovedHint( const ScRange& rRange, const ScAddress& rMove, const sc::RefUpdateContext& rCxt ) :
RefHint(Moved), maRange(rRange), maMoveDelta(rMove), mrCxt(rCxt) {}
RefMovedHint::~RefMovedHint() {}
const ScRange& RefMovedHint::getRange() const
{
return maRange;
}
const ScAddress& RefMovedHint::getDelta() const
{
return maMoveDelta;
}
const sc::RefUpdateContext& RefMovedHint::getContext() const
{
return mrCxt;
}
RefColReorderHint::RefColReorderHint( const sc::ColRowReorderMapType& rColMap, SCTAB nTab, SCROW nRow1, SCROW nRow2 ) :
RefHint(ColumnReordered), mrColMap(rColMap), mnTab(nTab), mnRow1(nRow1), mnRow2(nRow2) {}
RefColReorderHint::~RefColReorderHint() {}
const sc::ColRowReorderMapType& RefColReorderHint::getColMap() const
{
return mrColMap;
}
SCTAB RefColReorderHint::getTab() const
{
return mnTab;
}
SCROW RefColReorderHint::getStartRow() const
{
return mnRow1;
}
SCROW RefColReorderHint::getEndRow() const
{
return mnRow2;
}
RefRowReorderHint::RefRowReorderHint( const sc::ColRowReorderMapType& rRowMap, SCTAB nTab, SCCOL nCol1, SCCOL nCol2 ) :
RefHint(RowReordered), mrRowMap(rRowMap), mnTab(nTab), mnCol1(nCol1), mnCol2(nCol2) {}
RefRowReorderHint::~RefRowReorderHint() {}
const sc::ColRowReorderMapType& RefRowReorderHint::getRowMap() const
{
return mrRowMap;
}
SCTAB RefRowReorderHint::getTab() const
{
return mnTab;
}
SCCOL RefRowReorderHint::getStartColumn() const
{
return mnCol1;
}
SCCOL RefRowReorderHint::getEndColumn() const
{
return mnCol2;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */