Changeset View
Changeset View
Standalone View
Standalone View
src/kitemviews/kfileitemmodel.cpp
Show First 20 Lines • Show All 240 Lines • ▼ Show 20 Line(s) | |||||
241 | { | 241 | { | ||
242 | QMimeData* data = new QMimeData(); | 242 | QMimeData* data = new QMimeData(); | ||
243 | 243 | | |||
244 | // The following code has been taken from KDirModel::mimeData() | 244 | // The following code has been taken from KDirModel::mimeData() | ||
245 | // (kdelibs/kio/kio/kdirmodel.cpp) | 245 | // (kdelibs/kio/kio/kdirmodel.cpp) | ||
246 | // Copyright (C) 2006 David Faure <faure@kde.org> | 246 | // Copyright (C) 2006 David Faure <faure@kde.org> | ||
247 | QList<QUrl> urls; | 247 | QList<QUrl> urls; | ||
248 | QList<QUrl> mostLocalUrls; | 248 | QList<QUrl> mostLocalUrls; | ||
249 | bool canUseMostLocalUrls = true; | | |||
250 | const ItemData* lastAddedItem = nullptr; | 249 | const ItemData* lastAddedItem = nullptr; | ||
251 | 250 | | |||
252 | for (int index : indexes) { | 251 | for (int index : indexes) { | ||
253 | const ItemData* itemData = m_itemData.at(index); | 252 | const ItemData* itemData = m_itemData.at(index); | ||
254 | const ItemData* parent = itemData->parent; | 253 | const ItemData* parent = itemData->parent; | ||
255 | 254 | | |||
256 | while (parent && parent != lastAddedItem) { | 255 | while (parent && parent != lastAddedItem) { | ||
257 | parent = parent->parent; | 256 | parent = parent->parent; | ||
258 | } | 257 | } | ||
259 | 258 | | |||
260 | if (parent && parent == lastAddedItem) { | 259 | if (parent && parent == lastAddedItem) { | ||
261 | // A parent of 'itemData' has been added already. | 260 | // A parent of 'itemData' has been added already. | ||
262 | continue; | 261 | continue; | ||
263 | } | 262 | } | ||
264 | 263 | | |||
265 | lastAddedItem = itemData; | 264 | lastAddedItem = itemData; | ||
266 | const KFileItem& item = itemData->item; | 265 | const KFileItem& item = itemData->item; | ||
267 | if (!item.isNull()) { | 266 | if (!item.isNull()) { | ||
268 | urls << item.url(); | 267 | urls << item.url(); | ||
269 | 268 | | |||
270 | bool isLocal; | 269 | bool isLocal; | ||
271 | mostLocalUrls << item.mostLocalUrl(isLocal); | 270 | mostLocalUrls << item.mostLocalUrl(isLocal); | ||
272 | if (!isLocal) { | | |||
273 | canUseMostLocalUrls = false; | | |||
274 | } | | |||
275 | } | 271 | } | ||
276 | } | 272 | } | ||
277 | 273 | | |||
278 | KUrlMimeData::setUrls(urls, mostLocalUrls, data); | 274 | KUrlMimeData::setUrls(urls, mostLocalUrls, data); | ||
279 | return data; | 275 | return data; | ||
280 | } | 276 | } | ||
281 | 277 | | |||
282 | int KFileItemModel::indexForKeyboardSearch(const QString& text, int startFromIndex) const | 278 | int KFileItemModel::indexForKeyboardSearch(const QString& text, int startFromIndex) const | ||
▲ Show 20 Lines • Show All 2134 Lines • Show Last 20 Lines |