24 #include <Qt3Support/Q3CString>
30 for ( Q3ValueListConstIterator<KBookmark> it = bookmarks.constBegin(); it != bookmarks.constEnd(); ++it ) {
31 urls.append( (*it).url() );
36 KUrl::List::ConstIterator uit = urls.constBegin();
37 KUrl::List::ConstIterator uEnd = urls.constEnd();
40 for ( ; uit != uEnd ; ++uit )
48 Q3ValueList<KBookmark> bookmarks;
50 return newDrag(bookmarks, dragSource, name);
54 QWidget * dragSource,
const char * name )
55 :
Q3UriDrag( urls, dragSource, name ), m_bookmarks( bookmarks ), m_doc(
"xbel")
61 QDomElement elem =
m_doc.createElement(
"xbel");
62 m_doc.appendChild( elem );
63 for ( Q3ValueListConstIterator<KBookmark> it = bookmarks.begin(); it != bookmarks.end(); ++it ) {
64 elem.appendChild( (*it).internalElement().cloneNode(
true ) );
72 return "application/x-xbel";
74 return "text/uri-list";
84 if ( mimetype ==
"text/uri-list" )
86 else if ( mimetype ==
"application/x-xbel" )
88 a =
m_doc.toByteArray();
91 else if ( mimetype ==
"text/plain" )
97 KUrl::List::ConstIterator uit = m_lstDragURLs.constBegin();
98 KUrl::List::ConstIterator uEnd = m_lstDragURLs.constEnd();
99 for ( ; uit != uEnd ; ++uit )
100 uris.append( (*uit).prettyUrl() );
102 Q3CString s = uris.join(
"\n" ).toLocal8Bit();
103 a.resize( s.length() + 1 );
104 memcpy( a.data(), s.data(), s.length() + 1 );
112 return e->provides(
"text/uri-list") || e->provides(
"application/x-xbel") ||
113 e->provides(
"text/plain");
118 Q3ValueList<KBookmark> bookmarks;
119 if ( e->provides(
"application/x-xbel") )
121 QByteArray s( e->encodedData(
"application/x-xbel") );
125 QDomElement elem = doc.documentElement();
126 QDomNodeList children = elem.childNodes();
127 for (
int childno = 0; childno < children.count(); childno++)
129 bookmarks.append(
KBookmark( children.item(childno).cloneNode(
true).toElement() ));
133 if ( e->provides(
"text/uri-list") )
139 KUrl::List::ConstIterator uit = m_lstDragURLs.constBegin();
140 KUrl::List::ConstIterator uEnd = m_lstDragURLs.constEnd();
141 for ( ; uit != uEnd ; ++uit )
145 (*uit).prettyUrl(), (*uit) ));
150 if( e->provides(
"text/plain") )
154 if(Q3TextDrag::decode( e, s ))
157 QStringList listDragURLs = s.split(QChar(
'\n'), QString::SkipEmptyParts);
158 QStringList::ConstIterator it = listDragURLs.constBegin();
159 QStringList::ConstIterator
end = listDragURLs.constEnd();
160 for( ; it!=end; ++it)