summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/qt/ClipboardQt.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2009-08-11 17:01:47 +0100
committerBen Murdoch <benm@google.com>2009-08-11 18:21:02 +0100
commit0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch)
tree2943df35f62d885c89d01063cc528dd73b480fea /WebCore/platform/qt/ClipboardQt.cpp
parent7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff)
downloadexternal_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.cpp56
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)