X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/1b4572dac9fb529d31b786f93e4f02c6f8aeeb21..119f7a3f:/src/views/dolphinview.cpp?ds=sidebyside diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index f35c9e6ca..cb25c6555 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -124,7 +125,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : m_model = new KFileItemModel(this); m_view = new DolphinItemListView(); m_view->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); - m_view->setVisibleRoles(QList() << "text"); + m_view->setVisibleRoles({"text"}); applyModeToView(); KItemListController* controller = new KItemListController(m_model, m_view, this); @@ -1040,16 +1041,17 @@ void DolphinView::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even event->modifiers()); QString error; - KonqOperations* op = DragAndDropHelper::dropUrls(destItem, destUrl, &dropEvent, error); + KonqOperations* job = DragAndDropHelper::dropUrls(destItem, destUrl, &dropEvent, error); if (!error.isEmpty()) { emit infoMessage(error); } - if (op && destUrl == url()) { + if (job && destUrl == url()) { // Mark the dropped urls as selected. m_clearSelectionBeforeSelectingNewItems = true; m_markFirstNewlySelectedItemAsCurrent = true; - connect(op, static_cast&)>(&KonqOperations::aboutToCreate), this, &DolphinView::slotAboutToCreate); + connect(job, &KonqOperations::itemCreated, this, &DolphinView::slotItemCreated); + //connect(job, &KIO::InteractiveDropJob::result, this, &DolphinView::slotPasteJobResult); } setActive(true); @@ -1085,14 +1087,19 @@ void DolphinView::slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons } } -void DolphinView::slotAboutToCreate(const QList& urls) +void DolphinView::slotItemCreated(const QUrl& url) { - if (!urls.isEmpty()) { - if (m_markFirstNewlySelectedItemAsCurrent) { - markUrlAsCurrent(urls.first()); - m_markFirstNewlySelectedItemAsCurrent = false; - } - m_selectedUrls << KDirModel::simplifiedUrlList(urls); + if (m_markFirstNewlySelectedItemAsCurrent) { + markUrlAsCurrent(url); + m_markFirstNewlySelectedItemAsCurrent = false; + } + m_selectedUrls << url; +} + +void DolphinView::slotPasteJobResult(KJob *) +{ + if (!m_selectedUrls.isEmpty()) { + m_selectedUrls << KDirModel::simplifiedUrlList(m_selectedUrls); } } @@ -1149,7 +1156,10 @@ void DolphinView::updateSortFoldersFirst(bool foldersFirst) QPair DolphinView::pasteInfo() const { - return KonqOperations::pasteInfo(url()); + const QMimeData *mimeData = QApplication::clipboard()->mimeData(); + QPair info; + info.second = KIO::pasteActionText(mimeData, &info.first, rootItem()); + return info; } void DolphinView::setTabsForFilesEnabled(bool tabsForFiles) @@ -1276,7 +1286,7 @@ void DolphinView::observeCreatedItem(const QUrl& url) if (m_active) { clearSelection(); markUrlAsCurrent(url); - markUrlsAsSelected(QList() << url); + markUrlsAsSelected({url}); } } @@ -1503,7 +1513,7 @@ void DolphinView::slotRoleEditingFinished(int index, const QByteArray& role, con KIO::Job * job = KIO::moveAs(oldUrl, newUrl); KJobWidgets::setWindow(job, this); - KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, QList() << oldUrl, newUrl, job); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job); job->ui()->setAutoErrorHandlingEnabled(true); if (!newNameExistsAlready) { @@ -1646,12 +1656,12 @@ void DolphinView::applyModeToView() void DolphinView::pasteToUrl(const QUrl& url) { - KonqOperations* op = KonqOperations::doPaste(this, url); - if (op) { - m_clearSelectionBeforeSelectingNewItems = true; - m_markFirstNewlySelectedItemAsCurrent = true; - connect(op, static_cast&)>(&KonqOperations::aboutToCreate), this, &DolphinView::slotAboutToCreate); - } + KIO::PasteJob *job = KIO::paste(QApplication::clipboard()->mimeData(), url); + KJobWidgets::setWindow(job, this); + m_clearSelectionBeforeSelectingNewItems = true; + m_markFirstNewlySelectedItemAsCurrent = true; + connect(job, &KIO::PasteJob::itemCreated, this, &DolphinView::slotItemCreated); + connect(job, &KIO::PasteJob::result, this, &DolphinView::slotPasteJobResult); } QList DolphinView::simplifiedSelectedUrls() const @@ -1688,7 +1698,8 @@ void DolphinView::updateWritableState() if (item.isNull()) { // Try to find out if the URL is writable even if the "root item" is // null, see https://bugs.kde.org/show_bug.cgi?id=330001 - item = KFileItem(KFileItem::Unknown, KFileItem::Unknown, url(), true); + item = KFileItem(url()); + item.setDelayedMimeTypes(true); } KFileItemListProperties capabilities(KFileItemList() << item);