From kde-commits Tue Apr 21 22:05:27 2009 From: David Faure Date: Tue, 21 Apr 2009 22:05:27 +0000 To: kde-commits Subject: branches/KDE/4.2/kdelibs/kio/kio Message-Id: <1240351527.691676.2766.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=124035153521991 SVN commit 957388 by dfaure: Prefer most-local-urls in the drag object, rather than kde- (and user-!) specific urls. Fixes copying files from folderview to a filemanager running as root. This fix will be in 4.2.3. BUG: 184403 M +9 -9 kdirmodel.cpp --- branches/KDE/4.2/kdelibs/kio/kio/kdirmodel.cpp #957387:957388 @@ -836,21 +836,21 @@ QMimeData * KDirModel::mimeData( const QModelIndexList & indexes ) const { KUrl::List urls, mostLocalUrls; + bool canUseMostLocalUrls = true; foreach (const QModelIndex &index, indexes) { const KFileItem& item = d->nodeForIndex(index)->item(); urls << item.url(); - bool dummy; - mostLocalUrls << item.mostLocalUrl(dummy); + bool isLocal; + mostLocalUrls << item.mostLocalUrl(isLocal); + if (!isLocal) + canUseMostLocalUrls = false; } + if (canUseMostLocalUrls) { // prefer those. Useful when dropping into another user's window for instance (#184403) + urls = mostLocalUrls; + } QMimeData *data = new QMimeData(); - const bool different = mostLocalUrls != urls; urls = simplifiedUrlList(urls); - if (different) { - mostLocalUrls = simplifiedUrlList(mostLocalUrls); - urls.populateMimeData(mostLocalUrls, data); - } else { - urls.populateMimeData(data); - } + urls.populateMimeData(data); // for compatibility reasons (when dropping or pasting into kde3 applications) QString application_x_qiconlist;