#include "Clipboard.h"
#include "ClipboardChromium.h"
#include "DocumentFragment.h"
+#include "FileSystem.h"
#include "KURL.h"
#include "markup.h"
#include "NotImplemented.h"
bool DragData::containsURL() const
{
- return m_platformDragData->url.isValid();
+ return !asURL().isEmpty();
}
String DragData::asURL(String* title) const
{
- if (!m_platformDragData->url.isValid())
- return String();
+ String url;
+ if (m_platformDragData->url.isValid())
+ url = m_platformDragData->url.string();
+ else if (m_platformDragData->filenames.size() == 1) {
+ String fileName = m_platformDragData->filenames[0];
+ // FIXME: Add isDirectory to FileSystem so that we can check if it is not a directory.
+ if (fileExists(fileName))
+ url = fileName;
+ }
// |title| can be NULL
if (title)
*title = m_platformDragData->urlTitle;
- return m_platformDragData->url.string();
+ return url;
}
bool DragData::containsFiles() const
return containsPlainText()
|| containsURL()
|| containsHTML(m_platformDragData)
- || containsColor();
+ || containsColor()
+ || containsFiles();
}
PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const