sot/source/base/exchange.cxx | 8 vcl/Library_vclplug_win.mk | 1 vcl/win/dtrans/ftransl.cxx | 466 ++++++++++++++++--------------------------- 3 files changed, 179 insertions(+), 296 deletions(-)
New commits: commit dbdc2f17d64a737f9000e44d1aa876a4a7787eef Author: Mike Kaganski <[email protected]> AuthorDate: Mon Nov 10 02:49:50 2025 +0500 Commit: Mike Kaganski <[email protected]> CommitDate: Mon Nov 10 07:38:32 2025 +0100 Refactor initialization of translation table Most of the table in ftransl.cxx reuses data from exchange.cxx. The fact that we duplicate everything in several places naturally leads to errors, which shows in this change. 1. Introduce a FormatEntry ctor taking SotClipboardFormatId, to obtain DataFlavor from that identifier, instead of using a copy of MIME type strings and corresponding human-presentable-names and data types for creation of DataFlavor. 2. Use it for all elements that have SotClipboardFormatId for them. It turns out, that in the end, only one element can't be constructed that way, because there is no SotClipboardFormatId for CF_LOCALE. 2.1. While at it, make some elements' data consistent. Fixed MIME types (all were errors): * application/x-openoffice-svbx -> application/x-openoffice-svxb * application/x-openoffice-msgattachfile -> application/x-openoffice-cnt-msgattachfile * application/x-openofficesba-tabed -> application/x-openoffice-sba-tabed Fixed native format names (these are mostly unimportant cosmetics): * Unicode-Text -> Text * EditEngine ODF -> Flat XML format (EditEngine ODF) * StatusInfo vom SvxInternalLink -> StatusInfo of SvxInternalLink * PNG -> PNG Bitmap 2.2. Drop SO_DUMMYFORMAT_3 and SO_DUMMYFORMAT_4, which were never used from initial import. 3. Obtain native format name from MIME types, where "windows_formatname" parameter is defined. This allows to drop another redundancy. 4. To avoid building the table before program initializes (and process component context is available, needed to create XMimeContentTypeFactory, needed to parse MIME type parameters), make table function-local static. Change-Id: I72320aa54f154e9cc79c8b9ba700c7afecf89eb7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193691 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index a62b208b3952..a9f741d4bfdd 100644 --- a/sot/source/base/exchange.cxx +++ b/sot/source/base/exchange.cxx @@ -64,7 +64,7 @@ const DataFlavor* FormatArray_Impl() /* 13 SVIM*/ { u"application/x-openoffice-svim;windows_formatname=\"SVIM (StarView ImageMap)\""_ustr, u"SVIM (StarView ImageMap)"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 14 XFA*/ { u"application/x-libreoffice-xfa;windows_formatname=\"XFA (XOutDev FillAttr Any)\""_ustr, u"XFA (XOutDev FillAttr Any)"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 15 EDITENGINE_ODF_TEXT_FLAT*/ { u"application/vnd.oasis.opendocument.text-flat-xml"_ustr, u"Flat XML format (EditEngine ODF)"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, - /* 16 INTERNALLINK_STATE*/ { u"application/x-openoffice-internallink-state;windows_formatname=\"StatusInfo vom SvxInternalLink\""_ustr, u"StatusInfo vom SvxInternalLink"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, + /* 16 INTERNALLINK_STATE*/ { u"application/x-openoffice-internallink-state;windows_formatname=\"StatusInfo of SvxInternalLink\""_ustr, u"StatusInfo of SvxInternalLink"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 17 SOLK*/ { u"application/x-openoffice-solk;windows_formatname=\"SOLK (StarOffice Link)\""_ustr, u"SOLK (StarOffice Link)"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 18 NETSCAPE_BOOKMARK*/ { u"application/x-openoffice-netscape-bookmark;windows_formatname=\"Netscape Bookmark\""_ustr, u"Netscape Bookmark"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 19 TREELISTBOX*/ { u"application/x-openoffice-treelistbox;windows_formatname=\"SV_LBOX_DD_FORMAT\""_ustr, u"SV_LBOX_DD_FORMAT"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, @@ -128,7 +128,7 @@ const DataFlavor* FormatArray_Impl() /* 77 SBA_DATAEXCHANGE*/ { u"application/x-openoffice-sba-dataexchange;windows_formatname=\"SBA-DATAFORMAT\""_ustr, u"SBA-DATAFORMAT"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 78 SBA_FIELDDATAEXCHANGE*/ { u"application/x-openoffice-sba-fielddataexchange;windows_formatname=\"SBA-FIELDFORMAT\""_ustr, u"SBA-FIELDFORMAT"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 79 SBA_PRIVATE_URL*/ { u"application/x-openoffice-sba-private-url;windows_formatname=\"SBA-PRIVATEURLFORMAT\""_ustr, u"SBA-PRIVATEURLFORMAT"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, - /* 80 SBA_TABED*/ { u"application/x-openofficesba-tabed;windows_formatname=\"Tabed\""_ustr, u"Tabed"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, + /* 80 SBA_TABED*/ { u"application/x-openoffice-sba-tabed;windows_formatname=\"Tabed\""_ustr, u"Tabed"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 81 SBA_TABID*/ { u"application/x-openoffice-sba-tabid;windows_formatname=\"Tabid\""_ustr, u"Tabid"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 82 SBA_JOIN*/ { u"application/x-openoffice-sba-join;windows_formatname=\"SBA-JOINFORMAT\""_ustr, u"SBA-JOINFORMAT"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /* 83 OBJECTDESCRIPTOR*/ { u"application/x-openoffice-objectdescriptor-xml;windows_formatname=\"Star Object Descriptor (XML)\""_ustr, u"Star Object Descriptor (XML)"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, @@ -158,7 +158,7 @@ const DataFlavor* FormatArray_Impl() /*107 STARWRITER_60*/ { MIMETYPE_VND_SUN_XML_WRITER, u"Writer 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*108 STARWRITERWEB_60*/ { MIMETYPE_VND_SUN_XML_WRITER_WEB, u"Writer/Web 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*109 STARWRITERGLOB_60*/ { MIMETYPE_VND_SUN_XML_WRITER_GLOBAL, u"Writer/Global 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, - /*110 STARWDRAW_60*/ { MIMETYPE_VND_SUN_XML_DRAW, u"Draw 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, + /*110 STARDRAW_60*/ { MIMETYPE_VND_SUN_XML_DRAW, u"Draw 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*111 STARIMPRESS_60*/ { MIMETYPE_VND_SUN_XML_IMPRESS, u"Impress 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*112 STARCALC_60*/ { MIMETYPE_VND_SUN_XML_CALC, u"Calc 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*113 STARCHART_60*/ { MIMETYPE_VND_SUN_XML_CHART, u"Chart 6.0"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, @@ -189,7 +189,7 @@ const DataFlavor* FormatArray_Impl() /*138 STARMATH_8_TEMPLATE*/ { MIMETYPE_OASIS_OPENDOCUMENT_FORMULA_TEMPLATE, u"Math 8 Template"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*139 STARBASE_8*/ { MIMETYPE_OASIS_OPENDOCUMENT_DATABASE, u"StarBase 8"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*140 HC_GDIMETAFILE*/ { u"application/x-openoffice-highcontrast-gdimetafile;windows_formatname=\"GDIMetaFile\""_ustr, u"High Contrast GDIMetaFile"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, - /*141 PNG*/ { u"image/png"_ustr, u"PNG Bitmap"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, + /*141 PNG*/ { u"image/png"_ustr, u"PNG"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*142 STARWRITERGLOB_8_TEMPLATE*/ { MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE, u"Writer/Global 8 Template"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, /*143 MATHML*/ { u"application/mathml+xml"_ustr, u"MathML"_ustr, ::cppu::UnoType<const Sequence< sal_Int8 >>::get() }, /*144 JPEG*/ { u"image/jpeg"_ustr, u"JPEG Bitmap"_ustr, cppu::UnoType<Sequence<sal_Int8>>::get() }, diff --git a/vcl/Library_vclplug_win.mk b/vcl/Library_vclplug_win.mk index e050478337b0..2ef6c568115a 100644 --- a/vcl/Library_vclplug_win.mk +++ b/vcl/Library_vclplug_win.mk @@ -53,6 +53,7 @@ $(eval $(call gb_Library_use_libraries,vclplug_win,\ i18nutil \ sal \ salhelper \ + sot \ tl \ utl \ )) diff --git a/vcl/win/dtrans/ftransl.cxx b/vcl/win/dtrans/ftransl.cxx index 7cd94f9685ba..cf5d7ef35839 100644 --- a/vcl/win/dtrans/ftransl.cxx +++ b/vcl/win/dtrans/ftransl.cxx @@ -24,6 +24,8 @@ #include <o3tl/string_view.hxx> #include <osl/diagnose.h> +#include <sot/exchange.hxx> +#include <sot/formats.hxx> #include "ftransl.hxx" #include <com/sun/star/container/NoSuchElementException.hpp> @@ -31,6 +33,7 @@ #include <com/sun/star/datatransfer/MimeContentTypeFactory.hpp> #include <com/sun/star/lang/IllegalArgumentException.hpp> #include <com/sun/star/uno/XComponentContext.hpp> +#include <comphelper/processfactory.hxx> #include <cppuhelper/supportsservice.hxx> #include <cppuhelper/weak.hxx> #include "ImplHelper.hxx" @@ -41,7 +44,6 @@ #define CPPUTYPE_DEFAULT CPPUTYPE_SEQSALINT8 constexpr OUString Windows_FormatName = u"windows_formatname"_ustr; -const css::uno::Type CppuType_String = ::cppu::UnoType<OUString>::get(); using namespace osl; using namespace cppu; @@ -52,28 +54,38 @@ using namespace com::sun::star::container; namespace { +css::datatransfer::DataFlavor getDataFlavor(SotClipboardFormatId sotFormatId) +{ + css::datatransfer::DataFlavor aDataFlavor; + SotExchange::GetFormatDataFlavor(sotFormatId, aDataFlavor); + return aDataFlavor; +} -struct FormatEntry +OUString getNativeFormatName(const css::datatransfer::DataFlavor& rFlavor, + const Reference<XMimeContentTypeFactory>& xFactory) { - FormatEntry( - const OUString& mime_content_type, - const OUString& human_presentable_name, - const OUString& native_format_name, - CLIPFORMAT std_clipboard_format_id, - css::uno::Type const & cppu_type = CPPUTYPE_DEFAULT - ); + auto xMimeContentType(xFactory->createMimeContentType(rFlavor.MimeType)); + if (xMimeContentType->hasParameter(Windows_FormatName)) + return xMimeContentType->getParameterValue(Windows_FormatName); + return rFlavor.HumanPresentableName; +} +struct FormatEntry +{ FormatEntry(const OUString& mime_content_type, const OUString& human_presentable_name, CLIPFORMAT std_clipboard_format_id, css::uno::Type const& cppu_type = CPPUTYPE_DEFAULT) - : FormatEntry(mime_content_type, human_presentable_name, human_presentable_name, - std_clipboard_format_id, cppu_type) + : aDataFlavor(mime_content_type, human_presentable_name, cppu_type) + , aNativeFormatName(human_presentable_name) + , aStandardFormatId(std_clipboard_format_id) { } - FormatEntry(const OUString& mime_content_type, const OUString& human_presentable_name, - css::uno::Type const& cppu_type = CPPUTYPE_DEFAULT) - : FormatEntry(mime_content_type, human_presentable_name, CF_INVALID, cppu_type) + FormatEntry(const Reference<XMimeContentTypeFactory>& xFactory, + SotClipboardFormatId sotFormatId, CLIPFORMAT std_clipboard_format_id = CF_INVALID) + : aDataFlavor(getDataFlavor(sotFormatId)) + , aNativeFormatName(getNativeFormatName(aDataFlavor, xFactory)) + , aStandardFormatId(std_clipboard_format_id) { } @@ -82,290 +94,160 @@ struct FormatEntry sal_Int32 aStandardFormatId; }; -} - -FormatEntry::FormatEntry( - const OUString& mime_content_type, - const OUString& human_presentable_name, - const OUString& native_format_name, - CLIPFORMAT std_clipboard_format_id, - css::uno::Type const & cppu_type) - : aDataFlavor(mime_content_type, human_presentable_name, cppu_type) - , aNativeFormatName(native_format_name) - , aStandardFormatId(std_clipboard_format_id) +auto initTranslTable() { -} - -// to optimize searching we add all entries with a -// standard clipboard format number first, in the -// table before the entries with CF_INVALID -// if we are searching for a standard clipboard -// format number we can stop if we find the first -// CF_INVALID - -const std::array g_TranslTable { - //SotClipboardFormatId::DIF - FormatEntry("application/x-openoffice-dif;windows_formatname=\"DIF\"", "DIF", CF_DIF), - // SotClipboardFormatId::BITMAP + auto xFactory = MimeContentTypeFactory::create(comphelper::getProcessComponentContext()); + + // to optimize searching we add all entries with a + // standard clipboard format number first, in the + // table before the entries with CF_INVALID + // if we are searching for a standard clipboard + // format number we can stop if we find the first + // CF_INVALID + return std::array + { + FormatEntry(xFactory, SotClipboardFormatId::DIF, CF_DIF), // #i124085# CF_DIBV5 disabled, leads to problems at export. To fully support, using // an own mime-type may be necessary. I have tried that, but saw no real advantages // with different apps when exchanging bitmap-based data. So, disabled for now. At // the same time increased png format exchange for better interoperability - // FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", CF_DIBV5), + // FormatEntry(SotClipboardFormatId::BITMAP, CF_DIBV5), - FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", CF_DIB), - FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", CF_BITMAP), - // SotClipboardFormatId::STRING - FormatEntry("text/plain;charset=utf-16", "Unicode-Text", "", CF_UNICODETEXT, CppuType_String), + FormatEntry(xFactory, SotClipboardFormatId::BITMAP, CF_DIB), + FormatEntry(xFactory, SotClipboardFormatId::BITMAP, CF_BITMAP), + FormatEntry(xFactory, SotClipboardFormatId::STRING, CF_UNICODETEXT), // Format Locale - for internal use FormatEntry("application/x-openoffice-locale;windows_formatname=\"Locale\"", "Locale", CF_LOCALE), - // SOT_FORMAT_WMF - FormatEntry("application/x-openoffice-wmf;windows_formatname=\"Image WMF\"", "Windows MetaFile", "Image WMF", CF_METAFILEPICT), - // SOT_FORMAT_EMF - FormatEntry("application/x-openoffice-emf;windows_formatname=\"Image EMF\"", "Windows Enhanced MetaFile", "Image EMF", CF_ENHMETAFILE), - // SotClipboardFormatId::FILE_LIST - FormatEntry("application/x-openoffice-filelist;windows_formatname=\"FileList\"", "FileList", CF_HDROP), - //SotClipboardFormatId::SYLK - FormatEntry("application/x-openoffice-sylk;windows_formatname=\"Sylk\"", "Sylk", CF_SYLK), + FormatEntry(xFactory, SotClipboardFormatId::WMF, CF_METAFILEPICT), + FormatEntry(xFactory, SotClipboardFormatId::EMF, CF_ENHMETAFILE), + FormatEntry(xFactory, SotClipboardFormatId::FILE_LIST, CF_HDROP), + FormatEntry(xFactory, SotClipboardFormatId::SYLK, CF_SYLK), // End of standard clipboard format numbers - // SotClipboardFormatId::GDIMETAFILE - FormatEntry("application/x-openoffice-gdimetafile;windows_formatname=\"GDIMetaFile\"", "GDIMetaFile"), - // SotClipboardFormatId::PRIVATE - FormatEntry("application/x-openoffice-private;windows_formatname=\"Private\"", "Private"), - // SotClipboardFormatId::SIMPLE_FILE - FormatEntry("application/x-openoffice-file;windows_formatname=\"FileNameW\"", "FileNameW", CppuType_String), - // SotClipboardFormatId::RTF - FormatEntry("text/rtf", "Rich Text Format"), - // SotClipboardFormatId::DRAWING - FormatEntry("application/x-openoffice-drawing;windows_formatname=\"Drawing Format\"", "Drawing Format"), - // SotClipboardFormatId::SVXB - FormatEntry("application/x-openoffice-svbx;windows_formatname=\"SVXB (StarView Bitmap/Animation)\"", "SVXB (StarView Bitmap/Animation)"), - // SotClipboardFormatId::SVIM - FormatEntry("application/x-openoffice-svim;windows_formatname=\"SVIM (StarView ImageMap)\"", "SVIM (StarView ImageMap)"), - // SotClipboardFormatId::XFA - FormatEntry("application/x-libreoffice-xfa;windows_formatname=\"XFA (XOutDev FillAttr Any)\"", "XFA (XOutDev FillAttr Any)"), - // SotClipboardFormatId::EDITENGINE_ODF_TEXT_FLAT - FormatEntry("application/vnd.oasis.opendocument.text-flat-xml", "EditEngine ODF"), - // SotClipboardFormatId::INTERNALLINK_STATE - FormatEntry("application/x-openoffice-internallink-state;windows_formatname=\"StatusInfo of SvxInternalLink\"", "StatusInfo of SvxInternalLink"), - // SotClipboardFormatId::SOLK - FormatEntry("application/x-openoffice-solk;windows_formatname=\"SOLK (StarOffice Link)\"", "SOLK (StarOffice Link)"), - // SotClipboardFormatId::NETSCAPE_BOOKMARK - FormatEntry("application/x-openoffice-netscape-bookmark;windows_formatname=\"Netscape Bookmark\"", "Netscape Bookmark"), - // SotClipboardFormatId::TREELISTBOX - FormatEntry("application/x-openoffice-treelistbox;windows_formatname=\"SV_LBOX_DD_FORMAT\"", "SV_LBOX_DD_FORMAT"), - // SotClipboardFormatId::NATIVE - FormatEntry("application/x-openoffice-native;windows_formatname=\"Native\"", "Native"), - // SotClipboardFormatId::OWNERLINK - FormatEntry("application/x-openoffice-ownerlink;windows_formatname=\"OwnerLink\"", "OwnerLink"), - // SotClipboardFormatId::STARSERVER - FormatEntry("application/x-openoffice-starserver;windows_formatname=\"StarServerFormat\"", "StarServerFormat"), - // SotClipboardFormatId::STAROBJECT - FormatEntry("application/x-openoffice-starobject;windows_formatname=\"StarObjectFormat\"", "StarObjectFormat"), - // SotClipboardFormatId::APPLETOBJECT - FormatEntry("application/x-openoffice-appletobject;windows_formatname=\"Applet Object\"", "Applet Object"), - // SotClipboardFormatId::PLUGIN_OBJECT - FormatEntry("application/x-openoffice-plugin-object;windows_formatname=\"PlugIn Object\"", "PlugIn Object"), - // SotClipboardFormatId::STARWRITER_30 - FormatEntry("application/x-openoffice-starwriter-30;windows_formatname=\"StarWriter 3.0\"", "StarWriter 3.0"), - //SotClipboardFormatId::STARWRITER_40 - FormatEntry("application/x-openoffice-starwriter-40;windows_formatname=\"StarWriter 4.0\"", "StarWriter 4.0"), - //SotClipboardFormatId::STARWRITER_50 - FormatEntry("application/x-openoffice-starwriter-50;windows_formatname=\"StarWriter 5.0\"", "StarWriter 5.0"), - //SotClipboardFormatId::STARWRITERWEB_40 - FormatEntry("application/x-openoffice-starwriterweb-40;windows_formatname=\"StarWriter/Web 4.0\"", "StarWriter/Web 4.0"), - //SotClipboardFormatId::STARWRITERWEB_50 - FormatEntry("application/x-openoffice-starwriterweb-50;windows_formatname=\"StarWriter/Web 5.0\"", "StarWriter/Web 5.0"), - //SotClipboardFormatId::STARWRITERGLOB_40 - FormatEntry("application/x-openoffice-starwriterglob-40;windows_formatname=\"StarWriter/Global 4.0\"", "StarWriter/Global 4.0"), - // SotClipboardFormatId::STARWRITERGLOB_50 - FormatEntry("application/x-openoffice-starwriterglob-50;windows_formatname=\"StarWriter/Global 5.0\"", "StarWriter/Global 5.0"), - //SotClipboardFormatId::STARDRAW - FormatEntry("application/x-openoffice-stardraw;windows_formatname=\"StarDrawDocument\"", "StarDrawDocument"), - //SotClipboardFormatId::STARDRAW_40 - FormatEntry("application/x-openoffice-stardraw-40;windows_formatname=\"StarDrawDocument 4.0\"", "StarDrawDocument 4.0"), - //SotClipboardFormatId::STARIMPRESS_50 - FormatEntry("application/x-openoffice-starimpress-50;windows_formatname=\"StarImpress 5.0\"", "StarImpress 5.0"), - // SotClipboardFormatId::STARDRAW_50 - FormatEntry("application/x-openoffice-stardraw-50;windows_formatname=\"StarDraw 5.0\"", "StarDraw 5.0"), - //SotClipboardFormatId::STARCALC - FormatEntry("application/x-openoffice-starcalc;windows_formatname=\"StarCalcDocument\"", "StarCalcDocument"), - //SotClipboardFormatId::STARCALC_40 - FormatEntry("application/x-openoffice-starcalc-40;windows_formatname=\"StarCalc 4.0\"", "StarCalc 4.0"), - // SotClipboardFormatId::STARCALC_50 - FormatEntry("application/x-openoffice-starcalc-50;windows_formatname=\"StarCalc 5.0\"", "StarCalc 5.0"), - // SotClipboardFormatId::STARCHART - FormatEntry("application/x-openoffice-starchart;windows_formatname=\"StarChartDocument\"", "StarChartDocument"), - // SotClipboardFormatId::STARCHART_40 - FormatEntry("application/x-openoffice-starchart-40;windows_formatname=\"StarChartDocument 4.0\"", "StarChartDocument 4.0"), - // SotClipboardFormatId::STARCHART_50 - FormatEntry("application/x-openoffice-starchart-50;windows_formatname=\"StarChart 5.0\"", "StarChart 5.0"), - //SotClipboardFormatId::STARIMAGE - FormatEntry("application/x-openoffice-starimage;windows_formatname=\"StarImageDocument\"", "StarImageDocument"), - //SotClipboardFormatId::STARIMAGE_40 - FormatEntry("application/x-openoffice-starimage-40;windows_formatname=\"StarImageDocument 4.0\"", "StarImageDocument 4.0"), - //SotClipboardFormatId::STARIMAGE_50 - FormatEntry("application/x-openoffice-starimage-50;windows_formatname=\"StarImage 5.0\"", "StarImage 5.0"), - //SotClipboardFormatId::STARMATH - FormatEntry("application/x-openoffice-starmath;windows_formatname=\"StarMath\"", "StarMath"), - //SotClipboardFormatId::STARMATH_40 - FormatEntry("application/x-openoffice-starmath-40;windows_formatname=\"StarMathDocument 4.0\"", "StarMathDocument 4.0"), - //SotClipboardFormatId::STARMATH_50 - FormatEntry("application/x-openoffice-starmath-50;windows_formatname=\"StarMath 5.0\"", "StarMath 5.0"), - //SotClipboardFormatId::STAROBJECT_PAINTDOC - FormatEntry("application/x-openoffice-starobject-paintdoc;windows_formatname=\"StarObjectPaintDocument\"", "StarObjectPaintDocument"), - //SotClipboardFormatId::FILLED_AREA - FormatEntry("application/x-openoffice-filled-area;windows_formatname=\"FilledArea\"", "FilledArea"), - //SotClipboardFormatId::HTML - FormatEntry("text/html", "HTML (HyperText Markup Language)"), - //SotClipboardFormatId::HTML_SIMPLE - FormatEntry("application/x-openoffice-html-simple;windows_formatname=\"HTML Format\"", "HTML Format"), - //SotClipboardFormatId::CHAOS - FormatEntry("application/x-openoffice-chaos;windows_formatname=\"FORMAT_CHAOS\"", "FORMAT_CHAOS"), - //SotClipboardFormatId::CNT_MSGATTACHFILE - FormatEntry("application/x-openoffice-msgattachfile;windows_formatname=\"CNT_MSGATTACHFILE_FORMAT\"", "CNT_MSGATTACHFILE_FORMAT"), - //SotClipboardFormatId::BIFF_5 - FormatEntry("application/x-openoffice-biff5;windows_formatname=\"Biff5\"", "Biff5"), - //SotClipboardFormatId::BIFF__5 - FormatEntry("application/x-openoffice-biff-5;windows_formatname=\"Biff 5\"", "Biff 5"), - //SotClipboardFormatId::BIFF_8 - FormatEntry("application/x-openoffice-biff-8;windows_formatname=\"Biff8\"", "Biff8"), - //SotClipboardFormatId::SYLK_BIGCAPS - FormatEntry("application/x-openoffice-sylk-bigcaps;windows_formatname=\"SYLK\"", "SYLK"), - //SotClipboardFormatId::LINK - FormatEntry("application/x-openoffice-link;windows_formatname=\"Link\"", "Link"), - //SotClipboardFormatId::STARDRAW_TABBAR - FormatEntry("application/x-openoffice-stardraw-tabbar;windows_formatname=\"StarDraw TabBar\"", "StarDraw TabBar"), - //SotClipboardFormatId::SONLK - FormatEntry("application/x-openoffice-sonlk;windows_formatname=\"SONLK (StarOffice Navi Link)\"", "SONLK (StarOffice Navi Link)"), - //SotClipboardFormatId::MSWORD_DOC - FormatEntry("application/msword", "MSWordDoc"), - //SotClipboardFormatId::STAR_FRAMESET_DOC - FormatEntry("application/x-openoffice-star-frameset-doc;windows_formatname=\"StarFrameSetDocument\"", "StarFrameSetDocument"), - //SotClipboardFormatId::OFFICE_DOC - FormatEntry("application/x-openoffice-office-doc;windows_formatname=\"OfficeDocument\"", "OfficeDocument"), - //SotClipboardFormatId::NOTES_DOCINFO - FormatEntry("application/x-openoffice-notes-docinfo;windows_formatname=\"NotesDocInfo\"", "NotesDocInfo"), - //SotClipboardFormatId::NOTES_HNOTE - FormatEntry("application/x-openoffice-notes-hnote;windows_formatname=\"NoteshNote\"", "NoteshNote"), - //SotClipboardFormatId::NOTES_NATIVE - FormatEntry("application/x-openoffice-notes-native;windows_formatname=\"Native\"", "Native"), - //SotClipboardFormatId::SFX_DOC - FormatEntry("application/x-openoffice-sfx-doc;windows_formatname=\"SfxDocument\"", "SfxDocument"), - //SotClipboardFormatId::EVDF - FormatEntry("application/x-openoffice-evdf;windows_formatname=\"EVDF (Explorer View Dummy Format)\"", "EVDF (Explorer View Dummy Format)"), - //SotClipboardFormatId::ESDF - FormatEntry("application/x-openoffice-esdf;windows_formatname=\"ESDF (Explorer Search Dummy Format)\"", "ESDF (Explorer Search Dummy Format)"), - //SotClipboardFormatId::IDF - FormatEntry("application/x-openoffice-idf;windows_formatname=\"IDF (Iconview Dummy Format)\"", "IDF (Iconview Dummy Format)"), - //SotClipboardFormatId::EFTP - FormatEntry("application/x-openoffice-eftp;windows_formatname=\"EFTP (Explorer Ftp File)\"", "EFTP (Explorer Ftp File)"), - //SotClipboardFormatId::EFD - FormatEntry("application/x-openoffice-efd;windows_formatname=\"EFD (Explorer Ftp Dir)\"", "EFD (Explorer Ftp Dir)"), - //SotClipboardFormatId::SVX_FORMFIELDEXCH - FormatEntry("application/x-openoffice-svx-formfieldexch;windows_formatname=\"SvxFormFieldExch\"", "SvxFormFieldExch"), - //SotClipboardFormatId::EXTENDED_TABBAR - FormatEntry("application/x-openoffice-extended-tabbar;windows_formatname=\"ExtendedTabBar\"", "ExtendedTabBar"), - //SotClipboardFormatId::SBA_DATAEXCHANGE - FormatEntry("application/x-openoffice-sba-dataexchange;windows_formatname=\"SBA-DATAFORMAT\"", "SBA-DATAFORMAT"), - //SotClipboardFormatId::SBA_FIELDDATAEXCHANGE - FormatEntry("application/x-openoffice-sba-fielddataexchange;windows_formatname=\"SBA-FIELDFORMAT\"", "SBA-FIELDFORMAT"), - //SotClipboardFormatId::SBA_PRIVATE_URL - FormatEntry("application/x-openoffice-sba-private-url;windows_formatname=\"SBA-PRIVATEURLFORMAT\"", "SBA-PRIVATEURLFORMAT"), - //SotClipboardFormatId::SBA_TABED - FormatEntry("application/x-openoffice-sba-tabed;windows_formatname=\"Tabed\"", "Tabed"), - //SotClipboardFormatId::SBA_TABID - FormatEntry("application/x-openoffice-sba-tabid;windows_formatname=\"Tabid\"", "Tabid"), - //SotClipboardFormatId::SBA_JOIN - FormatEntry("application/x-openoffice-sba-join;windows_formatname=\"SBA-JOINFORMAT\"", "SBA-JOINFORMAT"), - //SotClipboardFormatId::OBJECTDESCRIPTOR - FormatEntry("application/x-openoffice-objectdescriptor-xml;windows_formatname=\"Star Object Descriptor (XML)\"", "Star Object Descriptor (XML)"), - //SotClipboardFormatId::LINKSRCDESCRIPTOR - FormatEntry("application/x-openoffice-linksrcdescriptor-xml;windows_formatname=\"Star Link Source Descriptor (XML)\"", "Star Link Source Descriptor (XML)"), - //SotClipboardFormatId::EMBED_SOURCE - FormatEntry("application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"", "Star Embed Source (XML)"), - //SotClipboardFormatId::LINK_SOURCE - FormatEntry("application/x-openoffice-link-source-xml;windows_formatname=\"Star Link Source (XML)\"", "Star Link Source (XML)"), - //SotClipboardFormatId::EMBEDDED_OBJ - FormatEntry("application/x-openoffice-embedded-obj-xml;windows_formatname=\"Star Embedded Object (XML)\"", "Star Embedded Object (XML)"), - //SotClipboardFormatId::FILECONTENT - FormatEntry("application/x-openoffice-filecontent;windows_formatname=\"FileContents\"", "FileContents"), - //SotClipboardFormatId::FILEGRPDESCRIPTOR - FormatEntry("application/x-openoffice-filegrpdescriptor;windows_formatname=\"FileGroupDescriptorW\"", "FileGroupDescriptorW"), - //SotClipboardFormatId::FILENAME - FormatEntry("application/x-openoffice-filename;windows_formatname=\"FileNameW\"", "FileNameW", CppuType_String), - //SotClipboardFormatId::SD_OLE - FormatEntry("application/x-openoffice-sd-ole;windows_formatname=\"SD-OLE\"", "SD-OLE"), - //SotClipboardFormatId::EMBEDDED_OBJ_OLE - FormatEntry("application/x-openoffice-embedded-obj-ole;windows_formatname=\"Embedded Object\"", "Embedded Object"), - //SotClipboardFormatId::EMBED_SOURCE_OLE - FormatEntry("application/x-openoffice-embed-source-ole;windows_formatname=\"Embed Source\"", "Embed Source"), - //SotClipboardFormatId::OBJECTDESCRIPTOR_OLE - FormatEntry("application/x-openoffice-objectdescriptor-ole;windows_formatname=\"Object Descriptor\"", "Object Descriptor"), - //SotClipboardFormatId::LINKSRCDESCRIPTOR_OLE - FormatEntry("application/x-openoffice-linkdescriptor-ole;windows_formatname=\"Link Source Descriptor\"", "Link Source Descriptor"), - //SotClipboardFormatId::LINK_SOURCE_OLE - FormatEntry("application/x-openoffice-link-source-ole;windows_formatname=\"Link Source\"", "Link Source"), - //SotClipboardFormatId::SBA_CTRLDATAEXCHANGE - FormatEntry("application/x-openoffice-sba-ctrldataexchange;windows_formatname=\"SBA-CTRLFORMAT\"", "SBA-CTRLFORMAT"), - //SotClipboardFormatId::OUTPLACE_OBJ - FormatEntry("application/x-openoffice-outplace-obj;windows_formatname=\"OutPlace Object\"", "OutPlace Object"), - //SotClipboardFormatId::CNT_OWN_CLIP - FormatEntry("application/x-openoffice-cnt-own-clip;windows_formatname=\"CntOwnClipboard\"", "CntOwnClipboard"), - //SotClipboardFormatId::INET_IMAGE - FormatEntry("application/x-openoffice-inet-image;windows_formatname=\"SO-INet-Image\"", "SO-INet-Image"), - //SotClipboardFormatId::NETSCAPE_IMAGE - FormatEntry("application/x-openoffice-netscape-image;windows_formatname=\"Netscape Image Format\"", "Netscape Image Format"), - //SotClipboardFormatId::SBA_FORMEXCHANGE - FormatEntry("application/x-openoffice-sba-formexchange;windows_formatname=\"SBA_FORMEXCHANGE\"", "SBA_FORMEXCHANGE"), - //SotClipboardFormatId::SBA_REPORTEXCHANGE - FormatEntry("application/x-openoffice-sba-reportexchange;windows_formatname=\"SBA_REPORTEXCHANGE\"", "SBA_REPORTEXCHANGE"), - //SotClipboardFormatId::UNIFORMRESOURCELOCATOR - FormatEntry("application/x-openoffice-uniformresourcelocator;windows_formatname=\"UniformResourceLocatorW\"", "UniformResourceLocatorW", CppuType_String), - //SotClipboardFormatId::STARCHARTDOCUMENT_50 - FormatEntry("application/x-openoffice-starchartdocument-50;windows_formatname=\"StarChartDocument 5.0\"", "StarChartDocument 5.0"), - //SotClipboardFormatId::GRAPHOBJ - FormatEntry("application/x-openoffice-graphobj;windows_formatname=\"Graphic Object\"", "Graphic Object"), - //SotClipboardFormatId::STARWRITER_60 - FormatEntry("application/vnd.sun.xml.writer", "Writer 6.0"), - //SotClipboardFormatId::STARWRITERWEB_60 - FormatEntry("application/vnd.sun.xml.writer.web", "Writer/Web 6.0"), - //SotClipboardFormatId::STARWRITERGLOB_60 - FormatEntry("application/vnd.sun.xml.writer.global", "Writer/Global 6.0"), - //SotClipboardFormatId::STARWDRAW_60 - FormatEntry("application/vnd.sun.xml.draw", "Draw 6.0"), - //SotClipboardFormatId::STARIMPRESS_60 - FormatEntry("application/vnd.sun.xml.impress", "Impress 6.0"), - //SotClipboardFormatId::STARCALC_60 - FormatEntry("application/vnd.sun.xml.calc", "Calc 6.0"), - //SotClipboardFormatId::STARCHART_60 - FormatEntry("application/vnd.sun.xml.chart", "Chart 6.0"), - //SotClipboardFormatId::STARMATH_60 - FormatEntry("application/vnd.sun.xml.math", "Math 6.0"), - //SotClipboardFormatId::DIALOG_60 - FormatEntry("application/vnd.sun.xml.dialog", "Dialog 6.0"), - //SotClipboardFormatId::BMP - FormatEntry("image/bmp", "Windows Bitmap"), - //SotClipboardFormatId::PNG - FormatEntry("image/png", "PNG"), - //SotClipboardFormatId::SVG - FormatEntry("image/svg+xml", "image/svg+xml"), - //SotClipboardFormatId::MATHML - FormatEntry("application/mathml+xml", "MathML"), - //SotClipboardFormatId::DUMMY3 - FormatEntry("application/x-openoffice-dummy3;windows_formatname=\"SO_DUMMYFORMAT_3\"", "SO_DUMMYFORMAT_3"), - //SotClipboardFormatId::DUMMY4 - FormatEntry("application/x-openoffice-dummy4;windows_formatname=\"SO_DUMMYFORMAT_4\"", "SO_DUMMYFORMAT_4"), - // SotClipboardFormatId::RICHTEXT - FormatEntry("text/richtext", "Richtext Format"), - // SotClipboardFormatId::MARKDOWN - FormatEntry("text/markdown", "Markdown"), + FormatEntry(xFactory, SotClipboardFormatId::GDIMETAFILE), + FormatEntry(xFactory, SotClipboardFormatId::PRIVATE), + FormatEntry(xFactory, SotClipboardFormatId::SIMPLE_FILE), + FormatEntry(xFactory, SotClipboardFormatId::RTF), + FormatEntry(xFactory, SotClipboardFormatId::DRAWING), + FormatEntry(xFactory, SotClipboardFormatId::SVXB), + FormatEntry(xFactory, SotClipboardFormatId::SVIM), + FormatEntry(xFactory, SotClipboardFormatId::XFA), + FormatEntry(xFactory, SotClipboardFormatId::EDITENGINE_ODF_TEXT_FLAT), + FormatEntry(xFactory, SotClipboardFormatId::INTERNALLINK_STATE), + FormatEntry(xFactory, SotClipboardFormatId::SOLK), + FormatEntry(xFactory, SotClipboardFormatId::NETSCAPE_BOOKMARK), + FormatEntry(xFactory, SotClipboardFormatId::TREELISTBOX), + FormatEntry(xFactory, SotClipboardFormatId::NATIVE), + FormatEntry(xFactory, SotClipboardFormatId::OWNERLINK), + FormatEntry(xFactory, SotClipboardFormatId::STARSERVER), + FormatEntry(xFactory, SotClipboardFormatId::STAROBJECT), + FormatEntry(xFactory, SotClipboardFormatId::APPLETOBJECT), + FormatEntry(xFactory, SotClipboardFormatId::PLUGIN_OBJECT), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITER_30), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITER_40), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITER_50), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERWEB_40), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERWEB_50), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERGLOB_40), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERGLOB_50), + FormatEntry(xFactory, SotClipboardFormatId::STARDRAW), + FormatEntry(xFactory, SotClipboardFormatId::STARDRAW_40), + FormatEntry(xFactory, SotClipboardFormatId::STARIMPRESS_50), + FormatEntry(xFactory, SotClipboardFormatId::STARDRAW_50), + FormatEntry(xFactory, SotClipboardFormatId::STARCALC), + FormatEntry(xFactory, SotClipboardFormatId::STARCALC_40), + FormatEntry(xFactory, SotClipboardFormatId::STARCALC_50), + FormatEntry(xFactory, SotClipboardFormatId::STARCHART), + FormatEntry(xFactory, SotClipboardFormatId::STARCHART_40), + FormatEntry(xFactory, SotClipboardFormatId::STARCHART_50), + FormatEntry(xFactory, SotClipboardFormatId::STARIMAGE), + FormatEntry(xFactory, SotClipboardFormatId::STARIMAGE_40), + FormatEntry(xFactory, SotClipboardFormatId::STARIMAGE_50), + FormatEntry(xFactory, SotClipboardFormatId::STARMATH), + FormatEntry(xFactory, SotClipboardFormatId::STARMATH_40), + FormatEntry(xFactory, SotClipboardFormatId::STARMATH_50), + FormatEntry(xFactory, SotClipboardFormatId::STAROBJECT_PAINTDOC), + FormatEntry(xFactory, SotClipboardFormatId::FILLED_AREA), + FormatEntry(xFactory, SotClipboardFormatId::HTML), + FormatEntry(xFactory, SotClipboardFormatId::HTML_SIMPLE), + FormatEntry(xFactory, SotClipboardFormatId::CHAOS), + FormatEntry(xFactory, SotClipboardFormatId::CNT_MSGATTACHFILE), + FormatEntry(xFactory, SotClipboardFormatId::BIFF_5), + FormatEntry(xFactory, SotClipboardFormatId::BIFF__5), + FormatEntry(xFactory, SotClipboardFormatId::BIFF_8), + FormatEntry(xFactory, SotClipboardFormatId::SYLK_BIGCAPS), + FormatEntry(xFactory, SotClipboardFormatId::LINK), + FormatEntry(xFactory, SotClipboardFormatId::STARDRAW_TABBAR), + FormatEntry(xFactory, SotClipboardFormatId::SONLK), + FormatEntry(xFactory, SotClipboardFormatId::MSWORD_DOC), + FormatEntry(xFactory, SotClipboardFormatId::STAR_FRAMESET_DOC), + FormatEntry(xFactory, SotClipboardFormatId::OFFICE_DOC), + FormatEntry(xFactory, SotClipboardFormatId::NOTES_DOCINFO), + FormatEntry(xFactory, SotClipboardFormatId::NOTES_HNOTE), + FormatEntry(xFactory, SotClipboardFormatId::NOTES_NATIVE), + FormatEntry(xFactory, SotClipboardFormatId::SFX_DOC), + FormatEntry(xFactory, SotClipboardFormatId::EVDF), + FormatEntry(xFactory, SotClipboardFormatId::ESDF), + FormatEntry(xFactory, SotClipboardFormatId::IDF), + FormatEntry(xFactory, SotClipboardFormatId::EFTP), + FormatEntry(xFactory, SotClipboardFormatId::EFD), + FormatEntry(xFactory, SotClipboardFormatId::SVX_FORMFIELDEXCH), + FormatEntry(xFactory, SotClipboardFormatId::EXTENDED_TABBAR), + FormatEntry(xFactory, SotClipboardFormatId::SBA_DATAEXCHANGE), + FormatEntry(xFactory, SotClipboardFormatId::SBA_FIELDDATAEXCHANGE), + FormatEntry(xFactory, SotClipboardFormatId::SBA_PRIVATE_URL), + FormatEntry(xFactory, SotClipboardFormatId::SBA_TABED), + FormatEntry(xFactory, SotClipboardFormatId::SBA_TABID), + FormatEntry(xFactory, SotClipboardFormatId::SBA_JOIN), + FormatEntry(xFactory, SotClipboardFormatId::OBJECTDESCRIPTOR), + FormatEntry(xFactory, SotClipboardFormatId::LINKSRCDESCRIPTOR), + FormatEntry(xFactory, SotClipboardFormatId::EMBED_SOURCE), + FormatEntry(xFactory, SotClipboardFormatId::LINK_SOURCE), + FormatEntry(xFactory, SotClipboardFormatId::EMBEDDED_OBJ), + FormatEntry(xFactory, SotClipboardFormatId::FILECONTENT), + FormatEntry(xFactory, SotClipboardFormatId::FILEGRPDESCRIPTOR), + FormatEntry(xFactory, SotClipboardFormatId::FILENAME), + FormatEntry(xFactory, SotClipboardFormatId::SD_OLE), + FormatEntry(xFactory, SotClipboardFormatId::EMBEDDED_OBJ_OLE), + FormatEntry(xFactory, SotClipboardFormatId::EMBED_SOURCE_OLE), + FormatEntry(xFactory, SotClipboardFormatId::OBJECTDESCRIPTOR_OLE), + FormatEntry(xFactory, SotClipboardFormatId::LINKSRCDESCRIPTOR_OLE), + FormatEntry(xFactory, SotClipboardFormatId::LINK_SOURCE_OLE), + FormatEntry(xFactory, SotClipboardFormatId::SBA_CTRLDATAEXCHANGE), + FormatEntry(xFactory, SotClipboardFormatId::OUTPLACE_OBJ), + FormatEntry(xFactory, SotClipboardFormatId::CNT_OWN_CLIP), + FormatEntry(xFactory, SotClipboardFormatId::INET_IMAGE), + FormatEntry(xFactory, SotClipboardFormatId::NETSCAPE_IMAGE), + FormatEntry(xFactory, SotClipboardFormatId::SBA_FORMEXCHANGE), + FormatEntry(xFactory, SotClipboardFormatId::SBA_REPORTEXCHANGE), + FormatEntry(xFactory, SotClipboardFormatId::UNIFORMRESOURCELOCATOR), + FormatEntry(xFactory, SotClipboardFormatId::STARCHARTDOCUMENT_50), + FormatEntry(xFactory, SotClipboardFormatId::GRAPHOBJ), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITER_60), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERWEB_60), + FormatEntry(xFactory, SotClipboardFormatId::STARWRITERGLOB_60), + FormatEntry(xFactory, SotClipboardFormatId::STARDRAW_60), + FormatEntry(xFactory, SotClipboardFormatId::STARIMPRESS_60), + FormatEntry(xFactory, SotClipboardFormatId::STARCALC_60), + FormatEntry(xFactory, SotClipboardFormatId::STARCHART_60), + FormatEntry(xFactory, SotClipboardFormatId::STARMATH_60), + FormatEntry(xFactory, SotClipboardFormatId::DIALOG_60), + FormatEntry(xFactory, SotClipboardFormatId::BMP), + FormatEntry(xFactory, SotClipboardFormatId::PNG), + FormatEntry(xFactory, SotClipboardFormatId::SVG), + FormatEntry(xFactory, SotClipboardFormatId::MATHML), + FormatEntry(xFactory, SotClipboardFormatId::RICHTEXT), + FormatEntry(xFactory, SotClipboardFormatId::MARKDOWN), }; +} -namespace { +const auto& g_TranslTable() +{ + static const auto table = initTranslTable(); + return table; +} void findDataFlavorForStandardFormatId( sal_Int32 aStandardFormatId, DataFlavor& aDataFlavor ) { @@ -375,21 +257,21 @@ void findDataFlavorForStandardFormatId( sal_Int32 aStandardFormatId, DataFlavor& standard clipboard format id appear before the other entries with CF_INVALID */ - auto citer = std::find_if(g_TranslTable.begin(), g_TranslTable.end(), + auto citer = std::find_if(g_TranslTable().begin(), g_TranslTable().end(), [&aStandardFormatId](const FormatEntry& rEntry) { return rEntry.aStandardFormatId == aStandardFormatId || rEntry.aStandardFormatId == CF_INVALID; }); - if (citer != g_TranslTable.end() && citer->aStandardFormatId == aStandardFormatId) + if (citer != g_TranslTable().end() && citer->aStandardFormatId == aStandardFormatId) aDataFlavor = citer->aDataFlavor; } void findDataFlavorForNativeFormatName( const OUString& aNativeFormatName, DataFlavor& aDataFlavor ) { - auto citer = std::find_if(g_TranslTable.begin(), g_TranslTable.end(), + auto citer = std::find_if(g_TranslTable().begin(), g_TranslTable().end(), [&aNativeFormatName](const FormatEntry& rEntry) { return aNativeFormatName.equalsIgnoreAsciiCase(rEntry.aNativeFormatName); }); - if (citer != g_TranslTable.end()) + if (citer != g_TranslTable().end()) aDataFlavor = citer->aDataFlavor; } @@ -407,12 +289,12 @@ void findStandardFormatIdForCharset( const OUString& aCharset, Any& aAny ) void setStandardFormatIdForNativeFormatName( const OUString& aNativeFormatName, Any& aAny ) { - auto citer = std::find_if(g_TranslTable.begin(), g_TranslTable.end(), + auto citer = std::find_if(g_TranslTable().begin(), g_TranslTable().end(), [&aNativeFormatName](const FormatEntry& rEntry) { return aNativeFormatName.equalsIgnoreAsciiCase(rEntry.aNativeFormatName) && (CF_INVALID != rEntry.aStandardFormatId); }); - if (citer != g_TranslTable.end()) + if (citer != g_TranslTable().end()) aAny <<= citer->aStandardFormatId; } @@ -421,12 +303,12 @@ void findStdFormatIdOrNativeFormatNameForFullMediaType( const OUString& aFullMediaType, Any& aAny ) { - auto citer = std::find_if(g_TranslTable.begin(), g_TranslTable.end(), + auto citer = std::find_if(g_TranslTable().begin(), g_TranslTable().end(), [&aRefXMimeFactory, &aFullMediaType](const FormatEntry& rEntry) { Reference<XMimeContentType> refXMime( aRefXMimeFactory->createMimeContentType(rEntry.aDataFlavor.MimeType) ); return aFullMediaType.equalsIgnoreAsciiCase(refXMime->getFullMediaType()); }); - if (citer != g_TranslTable.end()) + if (citer != g_TranslTable().end()) { sal_Int32 cf = citer->aStandardFormatId; if ( CF_INVALID != cf )
