vcl/ios/DataFlavorMapping.cxx | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-)
New commits: commit c225b0f273a4ccbf45214ff128187ec8b44149c8 Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Wed Mar 24 16:09:05 2021 +0200 Commit: Tor Lillqvist <t...@collabora.com> CommitDate: Mon Apr 5 16:59:35 2021 +0200 tdf#141217: Improve plain text pasting on iOS Handle public.utf8-plain-text. That is the actual concrete UTI for UTF-8 text. For instance if you copy text from the Safari address bar, public.utf8-plain-text is the only type put on the pasteboard. Previously we were not able to paste than into the iOS app at all. Change-Id: Idbdd3870431f3b9a312cc9b672ffe1f16d13edbd Signed-off-by: Tor Lillqvist <t...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113042 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113045 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113609 diff --git a/vcl/ios/DataFlavorMapping.cxx b/vcl/ios/DataFlavorMapping.cxx index 88b0e6199818..962e9c49af21 100644 --- a/vcl/ios/DataFlavorMapping.cxx +++ b/vcl/ios/DataFlavorMapping.cxx @@ -74,9 +74,7 @@ NSString* OUStringToNSString(const OUString& ustring) return [NSString stringWithCString:utf8Str.getStr() encoding:NSUTF8StringEncoding]; } -NSString* PBTYPE_PLAINTEXT = (__bridge NSString*)kUTTypePlainText; -// Nope. See commented-out use below. -// NSString* PBTYPE_UTF8PLAINTEXT = (__bridge NSString*)kUTTypeUTF8PlainText; +NSString* PBTYPE_UTF8PLAINTEXT = (__bridge NSString*)kUTTypeUTF8PlainText; NSString* PBTYPE_RTF = (__bridge NSString*)kUTTypeRTF; NSString* PBTYPE_PNG = (__bridge NSString*)kUTTypePNG; NSString* PBTYPE_JPEG = (__bridge NSString*)kUTTypeJPEG; @@ -124,9 +122,7 @@ struct FlavorMap }; static const FlavorMap flavorMap[] - = { { PBTYPE_PLAINTEXT, "text/plain;charset=utf-16", "Unicode Text (UTF-16)", true }, - // Nope. The LO code does not understand text/plain in UTF-8. Which is a shame. - // PBTYPE_UTF8PLAINTEXT, "text/plain;charset=utf-8", "Unicode Text (UTF-8)", false }, + = { { PBTYPE_UTF8PLAINTEXT, "text/plain;charset=utf-16", "Unicode Text (UTF-16)", true }, { PBTYPE_RTF, "text/rtf", "Rich Text Format", false }, { PBTYPE_PNG, "image/png", "Portable Network Graphics", false }, { PBTYPE_JPEG, "image/jpeg", "JPEG", false }, @@ -190,27 +186,27 @@ DataProviderBaseImpl::~DataProviderBaseImpl() } } -class UniDataProvider : public DataProviderBaseImpl +class Utf8DataProvider : public DataProviderBaseImpl { public: - UniDataProvider(const Any& data); - UniDataProvider(NSData* data); + Utf8DataProvider(const Any& data); + Utf8DataProvider(NSData* data); NSData* getSystemData() override; Any getOOoData() override; }; -UniDataProvider::UniDataProvider(const Any& data) +Utf8DataProvider::Utf8DataProvider(const Any& data) : DataProviderBaseImpl(data) { } -UniDataProvider::UniDataProvider(NSData* data) +Utf8DataProvider::Utf8DataProvider(NSData* data) : DataProviderBaseImpl(data) { } -NSData* UniDataProvider::getSystemData() +NSData* Utf8DataProvider::getSystemData() { OUString ustr; mData >>= ustr; @@ -221,7 +217,7 @@ NSData* UniDataProvider::getSystemData() return [NSData dataWithBytes:strUtf8.getStr() length:strUtf8.getLength()]; } -Any UniDataProvider::getOOoData() +Any Utf8DataProvider::getOOoData() { Any oOOData; @@ -459,7 +455,7 @@ DataFlavorMapper::getDataProvider(const NSString* systemFlavor, else // Must be OUString type { SAL_WARN_IF(!isOUStringType(data.getValueType()), "vcl", "must be OUString type"); - dp = DataProviderPtr_t(new UniDataProvider(data)); + dp = DataProviderPtr_t(new Utf8DataProvider(data)); } } catch (UnsupportedFlavorException&) @@ -476,9 +472,12 @@ DataProviderPtr_t DataFlavorMapper::getDataProvider(const NSString* systemFlavor { DataProviderPtr_t dp; - if ([systemFlavor caseInsensitiveCompare:PBTYPE_PLAINTEXT] == NSOrderedSame) + if (systemData == nil) + return dp; + + if ([systemFlavor caseInsensitiveCompare:PBTYPE_UTF8PLAINTEXT] == NSOrderedSame) { - dp = DataProviderPtr_t(new UniDataProvider(systemData)); + dp = DataProviderPtr_t(new Utf8DataProvider(systemData)); } else if ([systemFlavor caseInsensitiveCompare:PBTYPE_HTML] == NSOrderedSame) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits