sot/source/base/exchange.cxx | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-)
New commits: commit 41b259ca7f357108b8a8c3cb4b6a982c801f8957 Author: Mike Kaganski <[email protected]> AuthorDate: Sat Sep 20 15:50:49 2025 +0200 Commit: Mike Kaganski <[email protected]> CommitDate: Sat Sep 20 16:57:51 2025 +0200 Add a function to add new dynamic flavor Allows to deduplicate some more code. Change-Id: I1753f12e26f67cf4de7b921ebae1575f9f7208f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191228 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index 3ef211dc3773..689b1e8cb0e3 100644 --- a/sot/source/base/exchange.cxx +++ b/sot/source/base/exchange.cxx @@ -219,7 +219,7 @@ tDataFlavorList& InitFormats_Impl() SotClipboardFormatId FormatIdOfDynamicFormat(size_t i) { - assert(i <= InitFormats_Impl().size()); + assert(i < InitFormats_Impl().size()); return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1); } @@ -229,6 +229,13 @@ size_t PosOfDynamicFormat(SotClipboardFormatId nFormat) return static_cast<size_t>(nFormat) - static_cast<size_t>(SotClipboardFormatId::USER_END) - 1; } +SotClipboardFormatId AddDynamicFormat(const css::datatransfer::DataFlavor& rFlavor) +{ + tDataFlavorList& rL = InitFormats_Impl(); + rL.push_back(rFlavor); + return FormatIdOfDynamicFormat(rL.size() - 1); +} + SotClipboardFormatId GetFormatIdFromMimeType_impl(std::u16string_view rMimeType, bool allowMoreParams) { @@ -289,14 +296,7 @@ SotClipboardFormatId SotExchange::RegisterFormatName( const OUString& rName ) return FormatIdOfDynamicFormat(i); } - DataFlavor aNewFlavor; - aNewFlavor.MimeType = rName; - aNewFlavor.HumanPresentableName = rName; - aNewFlavor.DataType = cppu::UnoType<OUString>::get(); - - rL.push_back( std::move(aNewFlavor) ); - - return FormatIdOfDynamicFormat(rL.size() - 1); + return AddDynamicFormat({ rName, rName, cppu::UnoType<OUString>::get() }); } SotClipboardFormatId SotExchange::RegisterFormatMimeType( const OUString& rMimeType ) @@ -304,15 +304,7 @@ SotClipboardFormatId SotExchange::RegisterFormatMimeType( const OUString& rMimeT SotClipboardFormatId nRet = GetFormatIdFromMimeType(rMimeType); if( nRet == SotClipboardFormatId::NONE ) - { - tDataFlavorList& rL = InitFormats_Impl(); - nRet = FormatIdOfDynamicFormat(rL.size()); - DataFlavor aNewFlavor; - aNewFlavor.MimeType = rMimeType; - aNewFlavor.HumanPresentableName = rMimeType; - aNewFlavor.DataType = cppu::UnoType<OUString>::get(); - rL.emplace_back(aNewFlavor); - } + nRet = AddDynamicFormat({ rMimeType, rMimeType, cppu::UnoType<OUString>::get() }); return nRet; } @@ -325,11 +317,7 @@ SotClipboardFormatId SotExchange::RegisterFormat( const DataFlavor& rFlavor ) SotClipboardFormatId nRet = GetFormat( rFlavor ); if( nRet == SotClipboardFormatId::NONE ) - { - tDataFlavorList& rL = InitFormats_Impl(); - nRet = FormatIdOfDynamicFormat(rL.size()); - rL.emplace_back( rFlavor ); - } + nRet = AddDynamicFormat(rFlavor); return nRet; }
