< prev index next >
modules/javafx.web/src/main/native/Source/WebCore/platform/java/PasteboardJava.cpp
Print this page
@@ -105,14 +105,16 @@
bool_to_jbool(canSmartCopyOrDelete),
(jstring)plainText.toJavaString(env),
(jstring)markup.toJavaString(env));
}
-void jWriteImage(const Image& image)
+void jWriteImage(const Image& image, const String& fileType)
{
- DEFINE_PB_STATIC_METHOD("writeImage", "(Lcom/sun/webkit/graphics/WCImageFrame;)V");
- CALL_PB_STATIC_VOID_METHOD(jobject(*const_cast<Image&>(image).javaImage()));
+ DEFINE_PB_STATIC_METHOD("writeImage", "(Lcom/sun/webkit/graphics/WCImageFrame;Ljava/lang/String;)V");
+ CALL_PB_STATIC_VOID_METHOD(
+ jobject(*const_cast<Image&>(image).javaImage()),
+ (jstring)fileType.toJavaString(env));
}
void jWriteURL(const String& url, const String& markup)
{
DEFINE_PB_STATIC_METHOD("writeUrl", "(Ljava/lang/String;Ljava/lang/String;)V");
@@ -324,15 +326,16 @@
// Write the bytes of the image to the file format
writeImageToDataObject(m_dataObject, node, url);
AtomicString imageURL = node.getAttribute(HTMLNames::srcAttr);
+ URL fullURL;
if (!imageURL.isEmpty()) {
- String fullURL = node.document().completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
+ fullURL = node.document().completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
if (!fullURL.isEmpty()) {
m_dataObject->setHTML(
- imageToMarkup(fullURL, node),
+ imageToMarkup(fullURL.string(), node),
node.document().url());
}
}
if (m_copyPasteMode) {
CachedImage* cachedImage = getCachedImage(node);
@@ -351,11 +354,19 @@
// based on url and its markup
if (image->isSVGImage()) {
jWriteURL(url.string(), createMarkup(node));
}
else {
- jWriteImage(*image);
+ String lastPathComponent = fullURL.lastPathComponent();
+ String extension;
+ size_t dotOffset = lastPathComponent.reverseFind('.');
+ if (dotOffset != notFound)
+ extension = lastPathComponent.substring(dotOffset + 1);
+ else
+ extension = "png";
+
+ jWriteImage(*image, extension);
}
}
}
void Pasteboard::writeString(const String& type, const String& data)
< prev index next >