~ubuntu-branches/ubuntu/maverick/webkit/maverick

« back to all changes in this revision

Viewing changes to WebCore/platform/qt/DragDataQt.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Mike Hommey
  • Date: 2007-08-19 15:54:12 UTC
  • Revision ID: james.westby@ubuntu.com-20070819155412-uxxg1h9plpghmtbi
Tags: upstream-0~svn25144
ImportĀ upstreamĀ versionĀ 0~svn25144

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2007 Apple Inc.  All rights reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions
 
6
 * are met:
 
7
 * 1. Redistributions of source code must retain the above copyright
 
8
 *    notice, this list of conditions and the following disclaimer.
 
9
 * 2. Redistributions in binary form must reproduce the above copyright
 
10
 *    notice, this list of conditions and the following disclaimer in the
 
11
 *    documentation and/or other materials provided with the distribution.
 
12
 *
 
13
 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 
24
 */
 
25
 
 
26
#include "config.h"
 
27
#include "DragData.h"
 
28
 
 
29
#include "ClipboardQt.h"
 
30
#include "Document.h"
 
31
#include "DocumentFragment.h"
 
32
#include "markup.h"
 
33
#include "NotImplemented.h"
 
34
 
 
35
#include <QList>
 
36
#include <QMimeData>
 
37
#include <QUrl>
 
38
 
 
39
namespace WebCore {
 
40
 
 
41
bool DragData::canSmartReplace() const
 
42
{
 
43
    return false;
 
44
}
 
45
    
 
46
bool DragData::containsColor() const
 
47
{
 
48
    notImplemented();
 
49
    return false;
 
50
}
 
51
 
 
52
bool DragData::containsFiles() const
 
53
{
 
54
    notImplemented();
 
55
    return false;
 
56
}
 
57
 
 
58
void DragData::asFilenames(Vector<String>& result) const
 
59
{
 
60
}
 
61
 
 
62
bool DragData::containsPlainText() const
 
63
{
 
64
    return m_platformDragData->hasText() || m_platformDragData->hasUrls();
 
65
}
 
66
 
 
67
String DragData::asPlainText() const
 
68
{
 
69
    String text = m_platformDragData->text();
 
70
    if (!text.isEmpty())
 
71
        return text;
 
72
    
 
73
    // FIXME: Should handle rich text here
 
74
    
 
75
    return asURL(0);
 
76
}
 
77
    
 
78
Color DragData::asColor() const
 
79
{
 
80
    notImplemented();
 
81
    return Color();
 
82
}
 
83
 
 
84
Clipboard* DragData::createClipboard(ClipboardAccessPolicy policy) const
 
85
{
 
86
    return new ClipboardQt(policy, m_platformDragData, true);
 
87
}
 
88
    
 
89
bool DragData::containsCompatibleContent() const
 
90
{
 
91
    return containsColor() || containsURL() || containsColor() || m_platformDragData->hasHtml() || m_platformDragData->hasText();
 
92
}
 
93
    
 
94
bool DragData::containsURL() const
 
95
{
 
96
    return m_platformDragData->hasUrls();
 
97
}
 
98
    
 
99
String DragData::asURL(String* title) const
 
100
{
 
101
    QList<QUrl> urls = m_platformDragData->urls();
 
102
    return urls.first().toString();
 
103
}
 
104
    
 
105
    
 
106
PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
 
107
{
 
108
    if (m_platformDragData->hasHtml())
 
109
        return createFragmentFromMarkup(doc, m_platformDragData->html(), "");
 
110
    
 
111
    return 0;
 
112
}
 
113
    
 
114
}
 
115