Hi,
You can use a XML document to send data in a structured way for example:
QDir directory
("/usr/local/home/myhome");
doc.appendChild(root);
QDomElement dirnode
= doc.
createElement("Directory Name");
root.appendChild(dirnode);
value = directory.dirName();
t = doc.createTextNode(value);
dirnode.appendChild(t);
itemData.append(doc.toString());
mimeData->setData("object/x-myApplication-object", itemData);
drag->setMimeData(mimeData);
QByteArray itemData;
QDir directory("/usr/local/home/myhome");
QDomDocument doc("myDocument");
QDomElement root = doc.createElement("myDocument");
doc.appendChild(root);
QDomElement dirnode = doc.createElement("Directory Name");
root.appendChild(dirnode);
QString value;
value = directory.dirName();
QDomText t;
t = doc.createTextNode(value);
dirnode.appendChild(t);
itemData.append(doc.toString());
QMimeData *mimeData = new QMimeData;
mimeData->setData("object/x-myApplication-object", itemData);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
To copy to clipboard, switch view to plain text mode
Then you can read it by:
if (event->mimeData()->hasFormat("object/x-myApplication-object"))
{
QByteArray objectData
= event
->mimeData
()->data
("object/x-myApplication-object");
doc.setContent(objectData,true);
element = node.toElement();
directory = element.text();
}
if (event->mimeData()->hasFormat("object/x-myApplication-object"))
{
QByteArray objectData = event->mimeData()->data("object/x-myApplication-object");
QDomDocument doc("myDocument");
doc.setContent(objectData,true);
QDomElement docElem = doc.documentElement();
QDomElement element;
QDomNode node = docElem.firstChild();
element = node.toElement();
QString directory;
directory = element.text();
}
To copy to clipboard, switch view to plain text mode
As you can see the code uses QByteArray. In this array you can put any kind of data (as long as you know how to read it) so you can pass text, images, etc. So for example you can pass an structure like [lengthOfXml][xmlData][lengthOfImage][imageData]
Bookmarks