diff options
author | Ben Murdoch <benm@google.com> | 2009-08-11 17:01:47 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2009-08-11 18:21:02 +0100 |
commit | 0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch) | |
tree | 2943df35f62d885c89d01063cc528dd73b480fea /WebCore/platform/qt/ClipboardQt.cpp | |
parent | 7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff) | |
download | external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.zip external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.gz external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.bz2 |
Merge in WebKit r47029.
Diffstat (limited to 'WebCore/platform/qt/ClipboardQt.cpp')
-rw-r--r-- | WebCore/platform/qt/ClipboardQt.cpp | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/WebCore/platform/qt/ClipboardQt.cpp b/WebCore/platform/qt/ClipboardQt.cpp index 1bde10b..666ad18 100644 --- a/WebCore/platform/qt/ClipboardQt.cpp +++ b/WebCore/platform/qt/ClipboardQt.cpp @@ -32,16 +32,19 @@ #include "CSSHelper.h" #include "Document.h" #include "Element.h" +#include "FileList.h" #include "Frame.h" #include "HTMLNames.h" #include "Image.h" #include "IntPoint.h" #include "KURL.h" #include "markup.h" +#include "NotImplemented.h" #include "PlatformString.h" #include "Range.h" #include "RenderImage.h" #include "StringHash.h" + #include <QList> #include <QMimeData> #include <QStringList> @@ -58,9 +61,9 @@ ClipboardQt::ClipboardQt(ClipboardAccessPolicy policy, const QMimeData* readable : Clipboard(policy, true) , m_readableData(readableClipboard) , m_writableData(0) -{ +{ Q_ASSERT(policy == ClipboardReadable || policy == ClipboardTypesReadable); -} +} ClipboardQt::ClipboardQt(ClipboardAccessPolicy policy, bool forDragging) : Clipboard(policy, forDragging) @@ -73,7 +76,7 @@ ClipboardQt::ClipboardQt(ClipboardAccessPolicy policy, bool forDragging) if (policy != ClipboardWritable) { Q_ASSERT(!forDragging); m_readableData = QApplication::clipboard()->mimeData(); - } + } #endif } @@ -101,7 +104,7 @@ void ClipboardQt::clearData(const String& type) if (format != toClearType) formats[format] = m_writableData->data(format); } - + m_writableData->clear(); QMap<QString, QByteArray>::const_iterator it, end = formats.constEnd(); for (it = formats.begin(); it != end; ++it) @@ -119,11 +122,11 @@ void ClipboardQt::clearData(const String& type) #endif } -void ClipboardQt::clearAllData() +void ClipboardQt::clearAllData() { if (policy() != ClipboardWritable) return; - + #ifndef QT_NO_CLIPBOARD if (!isForDragging()) QApplication::clipboard()->setMimeData(0); @@ -133,21 +136,21 @@ void ClipboardQt::clearAllData() m_writableData = 0; } -String ClipboardQt::getData(const String& type, bool& success) const +String ClipboardQt::getData(const String& type, bool& success) const { if (policy() != ClipboardReadable) { success = false; return String(); } - + ASSERT(m_readableData); QByteArray data = m_readableData->data(QString(type)); success = !data.isEmpty(); return String(data.data(), data.size()); } -bool ClipboardQt::setData(const String& type, const String& data) +bool ClipboardQt::setData(const String& type, const String& data) { if (policy() != ClipboardWritable) return false; @@ -178,7 +181,13 @@ HashSet<String> ClipboardQt::types() const return result; } -void ClipboardQt::setDragImage(CachedImage* image, const IntPoint& point) +PassRefPtr<FileList> ClipboardQt::files() const +{ + notImplemented(); + return 0; +} + +void ClipboardQt::setDragImage(CachedImage* image, const IntPoint& point) { setDragImage(image, 0, point); } @@ -198,7 +207,7 @@ void ClipboardQt::setDragImage(CachedImage* image, Node *node, const IntPoint &l m_dragImage = image; if (m_dragImage) m_dragImage->addClient(this); - + m_dragLoc = loc; m_dragImageElement = node; } @@ -217,17 +226,17 @@ static CachedImage* getCachedImage(Element* element) // Attempt to pull CachedImage from element ASSERT(element); RenderObject* renderer = element->renderer(); - if (!renderer || !renderer->isImage()) + if (!renderer || !renderer->isImage()) return 0; - - RenderImage* image = static_cast<RenderImage*>(renderer); + + RenderImage* image = toRenderImage(renderer); if (image->cachedImage() && !image->cachedImage()->errorOccurred()) return image->cachedImage(); return 0; } -void ClipboardQt::declareAndWriteDragImage(Element* element, const KURL& url, const String& title, Frame* frame) +void ClipboardQt::declareAndWriteDragImage(Element* element, const KURL& url, const String& title, Frame* frame) { ASSERT(frame); Q_UNUSED(url); @@ -245,11 +254,11 @@ void ClipboardQt::declareAndWriteDragImage(Element* element, const KURL& url, co m_writableData->setImageData(*pixmap); AtomicString imageURL = element->getAttribute(HTMLNames::srcAttr); - if (imageURL.isEmpty()) + if (imageURL.isEmpty()) return; - KURL fullURL = frame->document()->completeURL(parseURL(imageURL)); - if (fullURL.isEmpty()) + KURL fullURL = frame->document()->completeURL(deprecatedParseURL(imageURL)); + if (fullURL.isEmpty()) return; QList<QUrl> urls; @@ -262,26 +271,27 @@ void ClipboardQt::declareAndWriteDragImage(Element* element, const KURL& url, co #endif } -void ClipboardQt::writeURL(const KURL& url, const String&, Frame* frame) +void ClipboardQt::writeURL(const KURL& url, const String& title, Frame* frame) { ASSERT(frame); - + QList<QUrl> urls; urls.append(frame->document()->completeURL(url.string())); if (!m_writableData) m_writableData = new QMimeData; m_writableData->setUrls(urls); + m_writableData->setText(title); #ifndef QT_NO_CLIPBOARD if (!isForDragging()) QApplication::clipboard()->setMimeData(m_writableData); #endif } -void ClipboardQt::writeRange(Range* range, Frame* frame) +void ClipboardQt::writeRange(Range* range, Frame* frame) { ASSERT(range); ASSERT(frame); - + if (!m_writableData) m_writableData = new QMimeData; QString text = frame->selectedText(); @@ -294,7 +304,7 @@ void ClipboardQt::writeRange(Range* range, Frame* frame) #endif } -bool ClipboardQt::hasData() +bool ClipboardQt::hasData() { const QMimeData *data = m_readableData ? m_readableData : m_writableData; if (!data) |