refactor functions: return optional instead of bool

Change-Id: Ic4ff3ddaac161df13bf1e3e1372811a0685ec6c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141417
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
This commit is contained in:
Andrea Rosetti
2024-06-04 12:22:53 +02:00
committed by Hossein
parent c9245c153d
commit fbe8071e4f
3 changed files with 206 additions and 204 deletions
+34 -22
View File
@@ -1292,11 +1292,17 @@ void XclExpFmlaCompImpl::ProcessDdeLink( const XclExpScToken& rTokData )
if( mxData->mbOk ) mxData->mbOk = !aApplic.isEmpty() && !aTopic.isEmpty() && !aItem.isEmpty();
if( mxData->mbOk )
{
sal_uInt16 nExtSheet(0), nExtName(0);
if( mxData->mpLinkMgr && mxData->mpLinkMgr->InsertDde( nExtSheet, nExtName, aApplic, aTopic, aItem ) )
AppendNameXToken( nExtSheet, nExtName, rTokData.mnSpaces );
else
AppendErrorToken( EXC_ERR_NA, rTokData.mnSpaces );
if ( mxData->mpLinkMgr )
{
const auto oResult = mxData->mpLinkMgr->InsertDde( aApplic, aTopic, aItem);
if ( oResult ) {
AppendNameXToken( oResult->first, oResult->second, rTokData.mnSpaces );
}
else {
AppendErrorToken( EXC_ERR_NA, rTokData.mnSpaces );
}
}
}
}
@@ -2215,12 +2221,14 @@ void XclExpFmlaCompImpl::ProcessExternalName( const XclExpScToken& rTokData )
}
// insert the new external name and create the tNameX token
sal_uInt16 nExtSheet = 0, nExtName = 0;
const OUString* pFile = rExtRefMgr.getExternalFileName( nFileId );
if( pFile && mxData->mpLinkMgr->InsertExtName( nExtSheet, nExtName, *pFile, aName, xArray ) )
{
AppendNameXToken( nExtSheet, nExtName, rTokData.mnSpaces );
return;
if (const OUString* pFile = rExtRefMgr.getExternalFileName( nFileId )) {
const auto oResult = mxData->mpLinkMgr->InsertExtName( *pFile, aName, xArray );
if( oResult ) {
AppendNameXToken( oResult->first, oResult->second, rTokData.mnSpaces );
return;
}
}
}
}
@@ -2429,23 +2437,27 @@ void XclExpFmlaCompImpl::AppendAddInCallToken( const XclExpExtFuncData& rExtFunc
OUString aXclFuncName;
if( mxData->mpLinkMgr && ScGlobal::GetAddInCollection()->GetExcelName( rExtFuncData.maFuncName, GetUILanguage(), aXclFuncName ) )
{
sal_uInt16 nExtSheet, nExtName;
if( mxData->mpLinkMgr->InsertAddIn( nExtSheet, nExtName, aXclFuncName ) )
{
AppendNameXToken( nExtSheet, nExtName );
return;
}
const auto oResult = mxData->mpLinkMgr->InsertAddIn( aXclFuncName );
AppendNameXToken(oResult->first, oResult->second);
return;
}
AppendMacroCallToken( rExtFuncData );
}
void XclExpFmlaCompImpl::AppendEuroToolCallToken( const XclExpExtFuncData& rExtFuncData )
{
sal_uInt16 nExtSheet(0), nExtName(0);
if( mxData->mpLinkMgr && mxData->mpLinkMgr->InsertEuroTool( nExtSheet, nExtName, rExtFuncData.maFuncName ) )
AppendNameXToken( nExtSheet, nExtName );
else
AppendMacroCallToken( rExtFuncData );
if ( mxData->mpLinkMgr )
{
const auto oResult = mxData->mpLinkMgr->InsertEuroTool( rExtFuncData.maFuncName );
if ( oResult ) {
AppendNameXToken( oResult->first, oResult->second );
}
else {
AppendMacroCallToken( rExtFuncData );
}
}
}
void XclExpFmlaCompImpl::AppendOperatorTokenId( sal_uInt8 nTokenId, const XclExpOperandListRef& rxOperands, sal_uInt8 nSpaces )
+159 -164
View File
@@ -413,25 +413,24 @@ public:
void StoreCellRange( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange );
/** Finds or inserts an EXTERNNAME record for an add-in function name.
@param rnSupbook Returns the index of the SUPBOOK record which contains the add-in function name.
@param rnExtName Returns the 1-based EXTERNNAME record index. */
bool InsertAddIn(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName,
const OUString& rName );
* @return an optional pair, containing [rnSupbook, rnExtName]
rnSupbook Returns the index of the SUPBOOK record which contains the DDE link.
rnExtName Returns the 1-based EXTERNNAME record index.
*/
std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertAddIn(const OUString& rName);
/** InsertEuroTool */
bool InsertEuroTool(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName,
const OUString& rName );
std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertEuroTool(const OUString& rName);
/** Finds or inserts an EXTERNNAME record for DDE links.
@param rnSupbook Returns the index of the SUPBOOK record which contains the DDE link.
@param rnExtName Returns the 1-based EXTERNNAME record index. */
bool InsertDde(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem );
* @return an optional pair, containing [rnSupbook, rnExtName]
* rnSupbook Returns the index of the SUPBOOK record which contains the DDE link.
rnExtName Returns the 1-based EXTERNNAME record index.
*/
std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertDde(const OUString& rApplic, const OUString& rTopic, const OUString& rItem);
bool InsertExtName(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName, const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray );
std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertExtName(const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray);
XclExpXti GetXti( sal_uInt16 nFileId, const OUString& rTabName, sal_uInt16 nXclTabSpan,
XclExpRefLogEntry* pRefLogEntry );
@@ -460,16 +459,15 @@ private:
private:
/** Searches for the SUPBOOK record containing the passed document URL.
@param rxSupbook (out-param) Returns a reference to the SUPBOOK record, or 0.
@param rnIndex (out-param) Returns the list index, if the SUPBOOK exists.
@return True, if the SUPBOOK record exists (out-parameters are valid). */
bool GetSupbookUrl( XclExpSupbookRef& rxSupbook, sal_uInt16& rnIndex,
std::u16string_view rUrl ) const;
@return List index, if the SUPBOOK record exists (out-parameters are valid). */
std::optional<sal_uInt16> GetSupbookUrl(XclExpSupbookRef& rxSupbook,
std::u16string_view rUrl) const;
/** Searches for the SUPBOOK record containing the passed DDE link.
@param rxSupbook (out-param) Returns a reference to the SUPBOOK record, or 0.
@param rnIndex (out-param) Returns the list index, if the SUPBOOK exists.
@return True, if the SUPBOOK record exists (out-parameters are valid). */
bool GetSupbookDde( XclExpSupbookRef& rxSupbook, sal_uInt16& rnIndex,
std::u16string_view rApplic, std::u16string_view rTopic ) const;
@return List index, if the SUPBOOK record exists (out-parameters are valid). */
std::optional<sal_uInt16> GetSupbookDde(XclExpSupbookRef& rxSupbook,
std::u16string_view rApplic,
std::u16string_view rTopic) const;
/** Appends a new SUPBOOK to the list.
@return The list index of the SUPBOOK record. */
@@ -510,22 +508,19 @@ public:
virtual void StoreCellRange( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange ) = 0;
/** Derived classes find or insert an EXTERNNAME record for an add-in function name. */
virtual bool InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) = 0;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertAddIn(const OUString& rName) = 0;
/** InsertEuroTool */
virtual bool InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) = 0;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertEuroTool(const OUString& rName)
= 0;
/** Derived classes find or insert an EXTERNNAME record for DDE links. */
virtual bool InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem ) = 0;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertDde(const OUString& rApplic, const OUString& rTopic, const OUString& rItem) = 0;
virtual bool InsertExtName(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray ) = 0;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertExtName(const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray)
= 0;
/** Derived classes write the entire link table to the passed stream. */
virtual void Save( XclExpStream& rStrm ) = 0;
@@ -560,22 +555,19 @@ public:
virtual void StoreCell( sal_uInt16 nFileId, const OUString& rTabName, const ScAddress& rPos ) override;
virtual void StoreCellRange( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange ) override;
virtual bool InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertAddIn(const OUString& rName) override;
/** InsertEuroTool */
virtual bool InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertEuroTool(const OUString& rName) override;
virtual bool InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertDde(const OUString& rApplic, const OUString& rTopic, const OUString& rItem) override;
virtual bool InsertExtName(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertExtName(const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray) override;
virtual void Save( XclExpStream& rStrm ) override;
@@ -630,21 +622,18 @@ public:
virtual void StoreCell( sal_uInt16 nFileId, const OUString& rTabName, const ScAddress& rPos ) override;
virtual void StoreCellRange( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange ) override;
virtual bool InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertAddIn(const OUString& rName) override;
/** InsertEuroTool */
virtual bool InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertEuroTool(const OUString& rName) override;
virtual bool InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertDde(const OUString& rApplic, const OUString& rTopic, const OUString& rItem) override;
virtual bool InsertExtName(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray ) override;
virtual std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertExtName(const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray) override;
virtual void Save( XclExpStream& rStrm ) override;
@@ -1887,8 +1876,8 @@ void XclExpSupbookBuffer::StoreCell( sal_uInt16 nFileId, const OUString& rTabNam
return;
XclExpSupbookRef xSupbook;
sal_uInt16 nSupbookId;
if (!GetSupbookUrl(xSupbook, nSupbookId, *pUrl))
auto nSupbookId = GetSupbookUrl(xSupbook, *pUrl);
if (!nSupbookId)
{
xSupbook = new XclExpSupbook(GetRoot(), *pUrl);
nSupbookId = Append(xSupbook);
@@ -1899,12 +1888,12 @@ void XclExpSupbookBuffer::StoreCell( sal_uInt16 nFileId, const OUString& rTabNam
// specified table name not found in this SUPBOOK.
return;
FindSBIndexEntry f(nSupbookId, nSheetId);
FindSBIndexEntry f(*nSupbookId, nSheetId);
if (::std::none_of(maSBIndexVec.begin(), maSBIndexVec.end(), f))
{
maSBIndexVec.emplace_back();
XclExpSBIndex& r = maSBIndexVec.back();
r.mnSupbook = nSupbookId;
r.mnSupbook = *nSupbookId;
r.mnSBTab = nSheetId;
}
@@ -1919,8 +1908,8 @@ void XclExpSupbookBuffer::StoreCellRange( sal_uInt16 nFileId, const OUString& rT
return;
XclExpSupbookRef xSupbook;
sal_uInt16 nSupbookId;
if (!GetSupbookUrl(xSupbook, nSupbookId, *pUrl))
auto nSupbookId = GetSupbookUrl(xSupbook, *pUrl);
if (!nSupbookId)
{
xSupbook = new XclExpSupbook(GetRoot(), *pUrl);
nSupbookId = Append(xSupbook);
@@ -1963,12 +1952,12 @@ void XclExpSupbookBuffer::StoreCellRange( sal_uInt16 nFileId, const OUString& rT
for (SCTAB nTab = 0; nTab < nTabCount; ++nTab)
{
sal_uInt16 nSheetId = nFirstSheetId + static_cast<sal_uInt16>(nTab);
FindSBIndexEntry f(nSupbookId, nSheetId);
FindSBIndexEntry f(*nSupbookId, nSheetId);
if (::std::none_of(maSBIndexVec.begin(), maSBIndexVec.end(), f))
{
maSBIndexVec.emplace_back();
XclExpSBIndex& r = maSBIndexVec.back();
r.mnSupbook = nSupbookId;
r.mnSupbook = *nSupbookId;
r.mnSBTab = nSheetId;
}
@@ -1976,8 +1965,7 @@ void XclExpSupbookBuffer::StoreCellRange( sal_uInt16 nFileId, const OUString& rT
}
}
bool XclExpSupbookBuffer::InsertAddIn(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpSupbookBuffer::InsertAddIn(const OUString& rName )
{
XclExpSupbookRef xSupbook;
if( mnAddInSB == SAL_MAX_UINT16 )
@@ -1988,51 +1976,71 @@ bool XclExpSupbookBuffer::InsertAddIn(
else
xSupbook = maSupbookList.GetRecord( mnAddInSB );
OSL_ENSURE( xSupbook, "XclExpSupbookBuffer::InsertAddin - missing add-in supbook" );
rnSupbook = mnAddInSB;
rnExtName = xSupbook->InsertAddIn( rName );
return rnExtName > 0;
auto nExtName = xSupbook->InsertAddIn( rName );
if( nExtName > 0)
{
return std::make_pair(mnAddInSB, nExtName);
}
return {};
}
bool XclExpSupbookBuffer::InsertEuroTool(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpSupbookBuffer::InsertEuroTool( const OUString& rName )
{
XclExpSupbookRef xSupbook;
OUString aUrl( u"\001\010EUROTOOL.XLA"_ustr );
if( !GetSupbookUrl( xSupbook, rnSupbook, aUrl ) )
const auto& nSupbookId = GetSupbookUrl(xSupbook, aUrl);
sal_uInt16 nSupbook;
if( !nSupbookId )
{
xSupbook = new XclExpSupbook( GetRoot(), aUrl, XclSupbookType::Eurotool );
rnSupbook = Append( xSupbook );
nSupbook = Append( xSupbook );
}
rnExtName = xSupbook->InsertEuroTool( rName );
return rnExtName > 0;
auto nExtName = xSupbook->InsertEuroTool( rName );
if( nExtName > 0)
{
return std::make_pair(nSupbook, nExtName);
}
return {};
}
bool XclExpSupbookBuffer::InsertDde(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName,
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpSupbookBuffer::InsertDde(
const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
{
XclExpSupbookRef xSupbook;
if( !GetSupbookDde( xSupbook, rnSupbook, rApplic, rTopic ) )
auto nSupbookDde = GetSupbookDde( xSupbook, rApplic, rTopic );
sal_uInt16 nSupbook;
if( !nSupbookDde )
{
xSupbook = new XclExpSupbook( GetRoot(), rApplic, rTopic );
rnSupbook = Append( xSupbook );
nSupbook = Append(xSupbook);
}
rnExtName = xSupbook->InsertDde( rItem );
return rnExtName > 0;
auto nExtName = xSupbook->InsertDde( rItem );
if (nExtName > 0)
{
return std::make_pair(nSupbook, nExtName);
}
return {};
}
bool XclExpSupbookBuffer::InsertExtName(
sal_uInt16& rnSupbook, sal_uInt16& rnExtName, const OUString& rUrl,
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpSupbookBuffer::InsertExtName( const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray )
{
XclExpSupbookRef xSupbook;
if (!GetSupbookUrl(xSupbook, rnSupbook, rUrl))
{
const auto& nSupbookId = GetSupbookUrl(xSupbook, rUrl);
sal_uInt16 nSupbook;
if (!nSupbookId) {
xSupbook = new XclExpSupbook(GetRoot(), rUrl);
rnSupbook = Append(xSupbook);
nSupbook = Append(xSupbook);
}
rnExtName = xSupbook->InsertExtName(rName, rArray);
return rnExtName > 0;
auto nExtName = xSupbook->InsertExtName(rName, rArray);
if (nExtName > 0)
{
return std::make_pair(nSupbook, nExtName);
}
return {};
}
XclExpXti XclExpSupbookBuffer::GetXti( sal_uInt16 nFileId, const OUString& rTabName, sal_uInt16 nXclTabSpan,
@@ -2045,13 +2053,13 @@ XclExpXti XclExpSupbookBuffer::GetXti( sal_uInt16 nFileId, const OUString& rTabN
return aXti;
XclExpSupbookRef xSupbook;
sal_uInt16 nSupbookId;
if (!GetSupbookUrl(xSupbook, nSupbookId, *pUrl))
auto nSupbookId = GetSupbookUrl(xSupbook, *pUrl);
if (!nSupbookId)
{
xSupbook = new XclExpSupbook(GetRoot(), *pUrl);
nSupbookId = Append(xSupbook);
}
aXti.mnSupbook = nSupbookId;
aXti.mnSupbook = *nSupbookId;
sal_uInt16 nFirstSheetId = xSupbook->GetTabIndex(rTabName);
if (nFirstSheetId == EXC_NOTAB)
@@ -2066,12 +2074,12 @@ XclExpXti XclExpSupbookBuffer::GetXti( sal_uInt16 nFileId, const OUString& rTabN
if (nSheetId >= nSheetCount)
return aXti;
FindSBIndexEntry f(nSupbookId, nSheetId);
FindSBIndexEntry f(*nSupbookId, nSheetId);
if (::std::none_of(maSBIndexVec.begin(), maSBIndexVec.end(), f))
{
maSBIndexVec.emplace_back();
XclExpSBIndex& r = maSBIndexVec.back();
r.mnSupbook = nSupbookId;
r.mnSupbook = *nSupbookId;
r.mnSBTab = nSheetId;
}
if (i == 0)
@@ -2162,34 +2170,32 @@ bool XclExpSupbookBuffer::HasExternalReferences() const
return false;
}
bool XclExpSupbookBuffer::GetSupbookUrl(
XclExpSupbookRef& rxSupbook, sal_uInt16& rnIndex, std::u16string_view rUrl ) const
std::optional<sal_uInt16> XclExpSupbookBuffer::GetSupbookUrl(
XclExpSupbookRef& rxSupbook, std::u16string_view rUrl ) const
{
for( size_t nPos = 0, nSize = maSupbookList.GetSize(); nPos < nSize; ++nPos )
{
rxSupbook = maSupbookList.GetRecord( nPos );
if( rxSupbook->IsUrlLink( rUrl ) )
{
rnIndex = ulimit_cast< sal_uInt16 >( nPos );
return true;
return ulimit_cast< sal_uInt16 >( nPos );
}
}
return false;
return {};
}
bool XclExpSupbookBuffer::GetSupbookDde( XclExpSupbookRef& rxSupbook,
sal_uInt16& rnIndex, std::u16string_view rApplic, std::u16string_view rTopic ) const
std::optional<sal_uInt16> XclExpSupbookBuffer::GetSupbookDde( XclExpSupbookRef& rxSupbook,
std::u16string_view rApplic, std::u16string_view rTopic ) const
{
for( size_t nPos = 0, nSize = maSupbookList.GetSize(); nPos < nSize; ++nPos )
{
rxSupbook = maSupbookList.GetRecord( nPos );
if( rxSupbook->IsDdeLink( rApplic, rTopic ) )
{
rnIndex = ulimit_cast< sal_uInt16 >( nPos );
return true;
return ulimit_cast< sal_uInt16 >( nPos );
}
}
return false;
return {};
}
sal_uInt16 XclExpSupbookBuffer::Append( XclExpSupbookRef const & xSupbook )
@@ -2258,38 +2264,38 @@ void XclExpLinkManagerImpl5::StoreCellRange( sal_uInt16 /*nFileId*/, const OUStr
// not implemented
}
bool XclExpLinkManagerImpl5::InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl5::InsertAddIn( const OUString& rName )
{
XclExpExtSheetRef xExtSheet = FindInternal( rnExtSheet, EXC_EXTSH_ADDIN );
sal_uInt16 nExtSheet, nExtName;
XclExpExtSheetRef xExtSheet = FindInternal( nExtSheet, EXC_EXTSH_ADDIN );
if( xExtSheet )
{
rnExtName = xExtSheet->InsertAddIn( rName );
return rnExtName > 0;
nExtName = xExtSheet->InsertAddIn( rName );
if(nExtName > 0)
{
return std::make_pair(nExtSheet, nExtName);
}
}
return false;
return {};
}
bool XclExpLinkManagerImpl5::InsertEuroTool(
sal_uInt16& /*rnExtSheet*/, sal_uInt16& /*rnExtName*/, const OUString& /*rName*/ )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl5::InsertEuroTool( const OUString& /*rName*/ )
{
return false;
return {};
}
bool XclExpLinkManagerImpl5::InsertDde(
sal_uInt16& /*rnExtSheet*/, sal_uInt16& /*rnExtName*/,
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl5::InsertDde(
const OUString& /*rApplic*/, const OUString& /*rTopic*/, const OUString& /*rItem*/ )
{
// not implemented
return false;
return {};
}
bool XclExpLinkManagerImpl5::InsertExtName(
sal_uInt16& /*rnExtSheet*/, sal_uInt16& /*rnExtName*/, const OUString& /*rUrl*/,
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl5::InsertExtName( const OUString& /*rUrl*/,
const OUString& /*rName*/, const ScExternalRefCache::TokenArrayRef& /*rArray*/ )
{
// not implemented
return false;
return {};
}
void XclExpLinkManagerImpl5::Save( XclExpStream& rStrm )
@@ -2457,53 +2463,46 @@ void XclExpLinkManagerImpl8::StoreCellRange( sal_uInt16 nFileId, const OUString&
maSBBuffer.StoreCellRange(nFileId, rTabName, rRange);
}
bool XclExpLinkManagerImpl8::InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl8::InsertAddIn( const OUString& rName )
{
sal_uInt16 nSupbook;
if( maSBBuffer.InsertAddIn( nSupbook, rnExtName, rName ) )
sal_uInt16 nSupbook(0);
if( maSBBuffer.InsertAddIn( rName ) )
{
rnExtSheet = InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) );
return true;
return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
}
return false;
return {};
}
bool XclExpLinkManagerImpl8::InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl8::InsertEuroTool( const OUString& rName )
{
sal_uInt16 nSupbook;
if( maSBBuffer.InsertEuroTool( nSupbook, rnExtName, rName ) )
sal_uInt16 nSupbook(0);
if( maSBBuffer.InsertEuroTool( rName ) )
{
rnExtSheet = InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) );
return true;
return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
}
return false;
return {};
}
bool XclExpLinkManagerImpl8::InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl8::InsertDde(
const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
{
sal_uInt16 nSupbook;
if( maSBBuffer.InsertDde( nSupbook, rnExtName, rApplic, rTopic, rItem ) )
sal_uInt16 nSupbook(0);
if( maSBBuffer.InsertDde( rApplic, rTopic, rItem ) )
{
rnExtSheet = InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) );
return true;
return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
}
return false;
return {};
}
bool XclExpLinkManagerImpl8::InsertExtName( sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rUrl, const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManagerImpl8::InsertExtName( const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray )
{
sal_uInt16 nSupbook;
if( maSBBuffer.InsertExtName( nSupbook, rnExtName, rUrl, rName, rArray ) )
sal_uInt16 nSupbook(0);
if( maSBBuffer.InsertExtName( rUrl, rName, rArray ) )
{
rnExtSheet = InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) );
return true;
return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
}
return false;
return {};
}
void XclExpLinkManagerImpl8::Save( XclExpStream& rStrm )
@@ -2622,30 +2621,26 @@ void XclExpLinkManager::StoreCellRange( sal_uInt16 nFileId, const OUString& rTab
mxImpl->StoreCellRange(nFileId, rTabName, rRange);
}
bool XclExpLinkManager::InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManager::InsertAddIn( const OUString& rName )
{
return mxImpl->InsertAddIn( rnExtSheet, rnExtName, rName );
return mxImpl->InsertAddIn( rName );
}
bool XclExpLinkManager::InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rName )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManager::InsertEuroTool( const OUString& rName )
{
return mxImpl->InsertEuroTool( rnExtSheet, rnExtName, rName );
return mxImpl->InsertEuroTool( rName );
}
bool XclExpLinkManager::InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManager::InsertDde(
const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
{
return mxImpl->InsertDde( rnExtSheet, rnExtName, rApplic, rTopic, rItem );
return mxImpl->InsertDde( rApplic, rTopic, rItem );
}
bool XclExpLinkManager::InsertExtName(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rUrl, const OUString& rName,
std::optional<std::pair<sal_uInt16, sal_uInt16>> XclExpLinkManager::InsertExtName( const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray )
{
return mxImpl->InsertExtName(rnExtSheet, rnExtName, rUrl, rName, rArray);
return mxImpl->InsertExtName( rUrl, rName, rArray);
}
void XclExpLinkManager::Save( XclExpStream& rStrm )
+13 -18
View File
@@ -186,27 +186,22 @@ public:
void StoreCellRange( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange );
/** Finds or inserts an EXTERNNAME record for an add-in function name.
@param rnExtSheet (out-param) Returns the index of the EXTSHEET structure for the add-in function name.
@param rnExtName (out-param) Returns the 1-based EXTERNNAME record index.
@return true = add-in function inserted; false = error (i.e. not supported in current BIFF). */
bool InsertAddIn(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName );
rnExtName Returns the 1-based EXTERNNAME record index.
sc/source/filter/inc/xelink.hxx
@return [rnExtSheet, rnExtName] as an optional pair. If empty, it's not supported in current BIFF.*/
std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertAddIn(const OUString& rName);
/** InsertEuroTool */
bool InsertEuroTool(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rName );
std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertEuroTool(const OUString& rName);
/** Finds or inserts an EXTERNNAME record for DDE links.
@param rnExtSheet (out-param) Returns the index of the EXTSHEET structure for the DDE link.
@param rnExtName (out-param) Returns the 1-based EXTERNNAME record index.
@return true = DDE link inserted; false = error (i.e. not supported in current BIFF). */
bool InsertDde(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
const OUString& rApplic, const OUString& rTopic, const OUString& rItem );
rnExtSheet Returns the index of the EXTSHEET structure for the DDE link.
rnExtName Returns the 1-based EXTERNNAME record index.
@return [rnExtSheet, rnExtName] as an optional pair. If empty, it's not supported in current BIFF. */
std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertDde(const OUString& rApplic, const OUString& rTopic, const OUString& rItem);
bool InsertExtName(
sal_uInt16& rnExtSheet, sal_uInt16& rnExtName, const OUString& rUrl,
const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray );
std::optional<std::pair<sal_uInt16, sal_uInt16>>
InsertExtName(const OUString& rUrl, const OUString& rName,
const ScExternalRefCache::TokenArrayRef& rArray);
/** Writes the entire Link table. */
virtual void Save( XclExpStream& rStrm ) override;