und dabei zeige ich das bild oder text an was verschoben wird auf window
geht es 1a auf ubuntu linux gibt es ein core dumped und finden sein eigenes font * ttf nicht mehr ......
was ist iher falsch?
Code: Alles auswählen
QPixmap TextWriter::PicfromMime( QMimeData *mime )
{
QPixmap one;
QStringList dli = mime->formats();
if (dli.contains("application/x-picslists")) {
QByteArray dd = mime->data("application/x-picslists");
QList<SPics> li = OpenImageGroup(QString(dd.data()));
if (li.size() > 0) {
SPics primoi = li.first();
return primoi.pix();
}
}
if (dli.contains("text/html")) {
QByteArray dd = mime->data("text/html");
QTextDocument *picdoc = new QTextDocument();
picdoc->setHtml ( QString(dd.data()) );
QMapIterator<QString,SPics> i(imglist());
while (i.hasNext()) {
i.next();
SPics e = i.value();
picdoc->addResource(QTextDocument::ImageResource,QUrl(e.name),e.pix());
}
QTextFrame *Tframe = picdoc->rootFrame();
QTextFrameFormat rootformats = Tframe->frameFormat();
rootformats.setBottomMargin (0);
rootformats.setTopMargin(0);
rootformats.setRightMargin (0);
rootformats.setLeftMargin (0);
rootformats.setPadding (0);
Tframe->setFrameFormat ( rootformats );
picdoc->adjustSize();
/* paint doc */
QAbstractTextDocumentLayout *Layout = picdoc->documentLayout();
QRectF docirec = Layout->frameBoundingRect(picdoc->rootFrame());
QPixmap PicsDocument(docirec.size().toSize());
PicsDocument.fill(Qt::white);
QRectF clip(0, 0,PicsDocument.width(),PicsDocument.height());
QPainter *p = new QPainter(&PicsDocument);
p->setRenderHint(QPainter::Antialiasing, true);
picdoc->drawContents(p,clip);
p->end();
return PicsDocument;
}
return one;
}
der drag start is so..
Code: Alles auswählen
if ( C_cursor.hasSelection() &&
modifiers == Qt::ShiftModifier &&
edit_enable) {
DragFill = true;
cursortime = false;
setBlinkingCursorEnabled(false);
repaintCursor();
QMimeData *DDmime = createMimeDataFromSelection();
QPixmap ddpic = PicfromMime(DDmime);
QDrag *drag = new QDrag(Fevent);
drag->setMimeData(DDmime);
if (!ddpic.isNull()) {
drag->setPixmap(ddpic);
delete &ddpic;
}
if (drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction) == Qt::MoveAction) {
return;
}
}
ist alles teil von http://www.qt-apps.org/content/show.php ... tent=80234