Kaydet (Commit) e31d408c authored tarafından Andre Fischer's avatar Andre Fischer Kaydeden (comit) Caolán McNamara

Resolves: #i120481# Add registered transferable flavor...

to make the Writer accept column headers dragged from database tables.
(cherry picked from commit a32aabba)

Change-Id: I63d41c8000cdfc7f0b2ca28e83aaedf2e822e64d
üst 7766874d
......@@ -564,14 +564,17 @@ NSString* DataFlavorMapper::openOfficeToSystemFlavor(const DataFlavor& oOOFlavor
}
}
if( ! sysFlavor )
{
OfficeOnlyTypes::const_iterator it = maOfficeOnlyTypes.find( oOOFlavor.MimeType );
if( it == maOfficeOnlyTypes.end() )
sysFlavor = maOfficeOnlyTypes[ oOOFlavor.MimeType ] = OUStringToNSString( oOOFlavor.MimeType );
else
sysFlavor = it->second;
}
return sysFlavor;
}
NSString* DataFlavorMapper::internalOpenOfficeToSystemFlavor(const DataFlavor& oOOFlavor) const
{
NSString* sysFlavor = NULL;
OfficeOnlyTypes::const_iterator it = maOfficeOnlyTypes.find( oOOFlavor.MimeType );
if( it == maOfficeOnlyTypes.end() )
sysFlavor = maOfficeOnlyTypes[ oOOFlavor.MimeType ] = OUStringToNSString( oOOFlavor.MimeType );
else
sysFlavor = it->second;
return sysFlavor;
}
......@@ -699,6 +702,8 @@ NSArray* DataFlavorMapper::flavorSequenceToTypesArray(const com::sun::star::uno:
sal_uInt32 nFlavors = flavors.getLength();
NSMutableArray* array = [[NSMutableArray alloc] initWithCapacity: 1];
bool bNeedDummyInternalFlavor (true);
for (sal_uInt32 i = 0; i < nFlavors; i++)
{
if( flavors[i].MimeType.startsWith("image/bmp") )
......@@ -709,6 +714,10 @@ NSArray* DataFlavorMapper::flavorSequenceToTypesArray(const com::sun::star::uno:
else
{
NSString* str = openOfficeToSystemFlavor(flavors[i]);
if (str == NULL)
str = internalOpenOfficeToSystemFlavor(flavors[i]);
else
bNeedDummyInternalFlavor = false;
if (str != NULL)
{
......@@ -721,7 +730,7 @@ NSArray* DataFlavorMapper::flavorSequenceToTypesArray(const com::sun::star::uno:
// #i89462# #i90747#
// in case no system flavor was found to report
// report at least one so D&D between OOo targets works
if( [array count] == 0 )
if( [array count] == 0 || bNeedDummyInternalFlavor)
{
[array addObject: PBTYPE_DUMMY_INTERNAL];
}
......
......@@ -128,6 +128,8 @@ private:
*/
bool isValidMimeContentType(const OUString& contentType) const;
NSString* internalOpenOfficeToSystemFlavor(const com::sun::star::datatransfer::DataFlavor& oooDataFlavor) const;
private:
::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XMimeContentTypeFactory> mrXMimeCntFactory;
typedef boost::unordered_map< OUString, NSString*, OUStringHash > OfficeOnlyTypes;
......
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