Kaydet (Commit) cf3f1d8d authored tarafından Eike Rathke's avatar Eike Rathke

add ScMatrix::IsEmptyResult() for tdf#39316 fix preparation

Change-Id: I9f2a3e6fa9f4ef43df672661afef996269b90a7a
üst 22fe5da5
...@@ -321,13 +321,16 @@ public: ...@@ -321,13 +321,16 @@ public:
/// @return <TRUE/> if string or empty or empty path, in fact non-value. /// @return <TRUE/> if string or empty or empty path, in fact non-value.
bool IsString( SCSIZE nC, SCSIZE nR ) const; bool IsString( SCSIZE nC, SCSIZE nR ) const;
/// @return <TRUE/> if empty or empty path. /// @return <TRUE/> if empty or empty cell or empty result, not empty path.
bool IsEmpty( SCSIZE nC, SCSIZE nR ) const; bool IsEmpty( SCSIZE nC, SCSIZE nR ) const;
/// @return <TRUE/> if empty, not empty result or empty path. /// @return <TRUE/> if empty cell, not empty or empty result or empty path.
bool IsEmptyCell( SCSIZE nC, SCSIZE nR ) const; bool IsEmptyCell( SCSIZE nC, SCSIZE nR ) const;
/// @return <TRUE/> if empty path. /// @return <TRUE/> if empty result, not empty or empty cell or empty path.
bool IsEmptyResult( SCSIZE nC, SCSIZE nR ) const;
/// @return <TRUE/> if empty path, not empty or empty cell or empty result.
bool IsEmptyPath( SCSIZE nC, SCSIZE nR ) const; bool IsEmptyPath( SCSIZE nC, SCSIZE nR ) const;
/// @return <TRUE/> if value or boolean. /// @return <TRUE/> if value or boolean.
......
...@@ -254,6 +254,7 @@ public: ...@@ -254,6 +254,7 @@ public:
bool IsString( SCSIZE nC, SCSIZE nR ) const; bool IsString( SCSIZE nC, SCSIZE nR ) const;
bool IsEmpty( SCSIZE nC, SCSIZE nR ) const; bool IsEmpty( SCSIZE nC, SCSIZE nR ) const;
bool IsEmptyCell( SCSIZE nC, SCSIZE nR ) const; bool IsEmptyCell( SCSIZE nC, SCSIZE nR ) const;
bool IsEmptyResult( SCSIZE nC, SCSIZE nR ) const;
bool IsEmptyPath( SCSIZE nC, SCSIZE nR ) const; bool IsEmptyPath( SCSIZE nC, SCSIZE nR ) const;
bool IsValue( SCSIZE nIndex ) const; bool IsValue( SCSIZE nIndex ) const;
bool IsValue( SCSIZE nC, SCSIZE nR ) const; bool IsValue( SCSIZE nC, SCSIZE nR ) const;
...@@ -684,8 +685,8 @@ bool ScMatrixImpl::IsString( SCSIZE nC, SCSIZE nR ) const ...@@ -684,8 +685,8 @@ bool ScMatrixImpl::IsString( SCSIZE nC, SCSIZE nR ) const
bool ScMatrixImpl::IsEmpty( SCSIZE nC, SCSIZE nR ) const bool ScMatrixImpl::IsEmpty( SCSIZE nC, SCSIZE nR ) const
{ {
// Flag must indicate an empty element instead of an // Flag must indicate an 'empty' or 'empty cell' or 'empty result' element,
// 'empty path' element. // but not an 'empty path' element.
ValidColRowReplicated( nC, nR ); ValidColRowReplicated( nC, nR );
return maMat.get_type(nR, nC) == mdds::mtm::element_empty && return maMat.get_type(nR, nC) == mdds::mtm::element_empty &&
maMatFlag.get<TMatFlag>(nR, nC) != SC_MATFLAG_EMPTYPATH; maMatFlag.get<TMatFlag>(nR, nC) != SC_MATFLAG_EMPTYPATH;
...@@ -693,13 +694,22 @@ bool ScMatrixImpl::IsEmpty( SCSIZE nC, SCSIZE nR ) const ...@@ -693,13 +694,22 @@ bool ScMatrixImpl::IsEmpty( SCSIZE nC, SCSIZE nR ) const
bool ScMatrixImpl::IsEmptyCell( SCSIZE nC, SCSIZE nR ) const bool ScMatrixImpl::IsEmptyCell( SCSIZE nC, SCSIZE nR ) const
{ {
// Flag must indicate an 'empty' element instead of an // Flag must indicate an 'empty cell' element instead of an
// 'empty result' or 'empty path' element. // 'empty' or 'empty result' or 'empty path' element.
ValidColRowReplicated( nC, nR ); ValidColRowReplicated( nC, nR );
return maMat.get_type(nR, nC) == mdds::mtm::element_empty && return maMat.get_type(nR, nC) == mdds::mtm::element_empty &&
maMatFlag.get<TMatFlag>(nR, nC) == SC_MATFLAG_EMPTYCELL; maMatFlag.get<TMatFlag>(nR, nC) == SC_MATFLAG_EMPTYCELL;
} }
bool ScMatrixImpl::IsEmptyResult( SCSIZE nC, SCSIZE nR ) const
{
// Flag must indicate an 'empty result' element instead of an
// 'empty' or 'empty cell' or 'empty path' element.
ValidColRowReplicated( nC, nR );
return maMat.get_type(nR, nC) == mdds::mtm::element_empty &&
maMatFlag.get<TMatFlag>(nR, nC) == SC_MATFLAG_EMPTYRESULT;
}
bool ScMatrixImpl::IsEmptyPath( SCSIZE nC, SCSIZE nR ) const bool ScMatrixImpl::IsEmptyPath( SCSIZE nC, SCSIZE nR ) const
{ {
// Flag must indicate an 'empty path' element. // Flag must indicate an 'empty path' element.
...@@ -2324,6 +2334,11 @@ bool ScMatrix::IsEmptyCell( SCSIZE nC, SCSIZE nR ) const ...@@ -2324,6 +2334,11 @@ bool ScMatrix::IsEmptyCell( SCSIZE nC, SCSIZE nR ) const
return pImpl->IsEmptyCell(nC, nR); return pImpl->IsEmptyCell(nC, nR);
} }
bool ScMatrix::IsEmptyResult( SCSIZE nC, SCSIZE nR ) const
{
return pImpl->IsEmptyResult(nC, nR);
}
bool ScMatrix::IsEmptyPath( SCSIZE nC, SCSIZE nR ) const bool ScMatrix::IsEmptyPath( SCSIZE nC, SCSIZE nR ) const
{ {
return pImpl->IsEmptyPath(nC, nR); return pImpl->IsEmptyPath(nC, nR);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment