From 42ebb227c671be2e7cf9080eb0c0f4245508bfc5 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Wed, 31 Dec 2014 10:19:14 +0100 Subject: [PATCH] BookmarksModel: Use internalPointer when passing mimedata internalPointer() is the same as internalId(), which means that it actually is not safe to use them. But for now, this at least fixes crashes on FreeBSD and works quite well in most cases. Closes #1565 --- src/lib/bookmarks/bookmarksmodel.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/lib/bookmarks/bookmarksmodel.cpp b/src/lib/bookmarks/bookmarksmodel.cpp index f6bdcf04c..953145e73 100644 --- a/src/lib/bookmarks/bookmarksmodel.cpp +++ b/src/lib/bookmarks/bookmarksmodel.cpp @@ -192,12 +192,6 @@ QStringList BookmarksModel::mimeTypes() const return types; } -#if QT_VERSION < 0x050000 -#define QMODELINDEX_INTERNALID_TYPE quint32 -#else -#define QMODELINDEX_INTERNALID_TYPE quintptr -#endif - QMimeData* BookmarksModel::mimeData(const QModelIndexList &indexes) const { QMimeData* mimeData = new QMimeData(); @@ -208,7 +202,7 @@ QMimeData* BookmarksModel::mimeData(const QModelIndexList &indexes) const foreach (const QModelIndex &index, indexes) { // If item's parent (=folder) is also selected, we will just move the whole folder if (index.isValid() && index.column() == 0 && !indexes.contains(index.parent())) { - stream << index.row() << (QMODELINDEX_INTERNALID_TYPE) index.internalId(); + stream << index.row() << (quintptr) index.internalPointer(); } } @@ -237,11 +231,11 @@ bool BookmarksModel::dropMimeData(const QMimeData* data, Qt::DropAction action, while (!stream.atEnd()) { int row; - QMODELINDEX_INTERNALID_TYPE id; + quintptr ptr; - stream >> row >> id; + stream >> row >> ptr; - QModelIndex index = createIndex(row, 0, id); + QModelIndex index = createIndex(row, 0, (void*) ptr); BookmarkItem* itm = item(index); Q_ASSERT(index.isValid());