X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a07d63d419469592b2600e668795cea2f9bee403..5593c252e8d9638c86dcc2bb9edd394ea14f8ba1:/src/views/dolphinview.cpp diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index cb25c6555..c3df3a9a8 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -49,15 +49,13 @@ #include #include #include -#include #include +#include #include #include #include -#include #include #include -#include #include #include "dolphinnewfilemenuobserver.h" @@ -79,7 +77,7 @@ namespace { const int MaxModeEnum = DolphinView::CompactView; -}; +} DolphinView::DolphinView(const QUrl& url, QWidget* parent) : QWidget(parent), @@ -179,8 +177,8 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : this, &DolphinView::slotVisibleRolesChangedByHeader); connect(m_view, &DolphinItemListView::roleEditingCanceled, this, &DolphinView::slotRoleEditingCanceled); - connect(m_view->header(), &KItemListHeader::columnWidthChanged, - this, &DolphinView::slotHeaderColumnWidthChanged); + connect(m_view->header(), &KItemListHeader::columnWidthChangeFinished, + this, &DolphinView::slotHeaderColumnWidthChangeFinished); KItemListSelectionManager* selectionManager = controller->selectionManager(); connect(selectionManager, &KItemListSelectionManager::selectionChanged, @@ -351,7 +349,9 @@ KFileItemList DolphinView::selectedItems() const const KItemListSelectionManager* selectionManager = m_container->controller()->selectionManager(); KFileItemList selectedItems; - foreach (int index, selectionManager->selectedItems()) { + const auto items = selectionManager->selectedItems(); + selectedItems.reserve(items.count()); + for (int index : items) { selectedItems.append(m_model->fileItem(index)); } return selectedItems; @@ -673,7 +673,7 @@ void DolphinView::trashSelectedItems() uiDelegate.setWindow(window()); if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) { KIO::Job* job = KIO::trash(list); - KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, QUrl("trash:/"), job); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, QUrl(QStringLiteral("trash:/")), job); KJobWidgets::setWindow(job, this); connect(job, &KIO::Job::result, this, &DolphinView::slotTrashFileFinished); @@ -818,7 +818,7 @@ void DolphinView::slotItemsActivated(const KItemSet& indexes) KFileItemList items; items.reserve(indexes.count()); - foreach (int index, indexes) { + for (int index : indexes) { KFileItem item = m_model->fileItem(index); const QUrl& url = openItemAsFolderUrl(item); @@ -941,6 +941,7 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos) // Apply the current column-widths as custom column-widths and turn // off the automatic resizing of the columns QList columnWidths; + columnWidths.reserve(view->visibleRoles().count()); foreach (const QByteArray& role, view->visibleRoles()) { columnWidths.append(header->columnWidth(role)); } @@ -962,6 +963,7 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos) QList columnWidths; if (!header->automaticColumnResizing()) { + columnWidths.reserve(view->visibleRoles().count()); foreach (const QByteArray& role, view->visibleRoles()) { columnWidths.append(header->columnWidth(role)); } @@ -973,10 +975,8 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos) delete menu; } -void DolphinView::slotHeaderColumnWidthChanged(const QByteArray& role, qreal current, qreal previous) +void DolphinView::slotHeaderColumnWidthChangeFinished(const QByteArray& role, qreal current) { - Q_UNUSED(previous); - const QList visibleRoles = m_view->visibleRoles(); ViewProperties props(viewPropertiesUrl()); @@ -1039,22 +1039,25 @@ void DolphinView::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even event->mimeData(), event->buttons(), event->modifiers()); + dropUrls(destUrl, &dropEvent); - QString error; - KonqOperations* job = DragAndDropHelper::dropUrls(destItem, destUrl, &dropEvent, error); - if (!error.isEmpty()) { - emit infoMessage(error); - } + setActive(true); +} - if (job && destUrl == url()) { - // Mark the dropped urls as selected. - m_clearSelectionBeforeSelectingNewItems = true; - m_markFirstNewlySelectedItemAsCurrent = true; - connect(job, &KonqOperations::itemCreated, this, &DolphinView::slotItemCreated); - //connect(job, &KIO::InteractiveDropJob::result, this, &DolphinView::slotPasteJobResult); - } +void DolphinView::dropUrls(const QUrl &destUrl, QDropEvent *dropEvent) +{ + KIO::DropJob* job = DragAndDropHelper::dropUrls(destUrl, dropEvent, this); - setActive(true); + if (job) { + connect(job, &KIO::DropJob::result, this, &DolphinView::slotPasteJobResult); + + if (destUrl == url()) { + // Mark the dropped urls as selected. + m_clearSelectionBeforeSelectingNewItems = true; + m_markFirstNewlySelectedItemAsCurrent = true; + connect(job, &KIO::DropJob::itemCreated, this, &DolphinView::slotItemCreated); + } + } } void DolphinView::slotModelChanged(KItemModelBase* current, KItemModelBase* previous) @@ -1096,8 +1099,11 @@ void DolphinView::slotItemCreated(const QUrl& url) m_selectedUrls << url; } -void DolphinView::slotPasteJobResult(KJob *) +void DolphinView::slotPasteJobResult(KJob *job) { + if (job->error()) { + emit errorMessage(job->errorString()); + } if (!m_selectedUrls.isEmpty()) { m_selectedUrls << KDirModel::simplifiedUrlList(m_selectedUrls); } @@ -1402,7 +1408,7 @@ void DolphinView::slotRenamingResult(KJob* job) const int index = m_model->index(newUrl); if (index >= 0) { QHash data; - const QUrl oldUrl = copyJob->srcUrls().first(); + const QUrl oldUrl = copyJob->srcUrls().at(0); data.insert("text", oldUrl.fileName()); m_model->setData(index, data); } @@ -1425,7 +1431,7 @@ void DolphinView::slotDirectoryLoadingCompleted() { // Update the view-state. This has to be done asynchronously // because the view might not be in its final state yet. - QTimer::singleShot(0, this, SLOT(updateViewState())); + QTimer::singleShot(0, this, &DolphinView::updateViewState); emit directoryLoadingCompleted(); @@ -1669,6 +1675,7 @@ QList DolphinView::simplifiedSelectedUrls() const QList urls; const KFileItemList items = selectedItems(); + urls.reserve(items.count()); foreach (const KFileItem& item, items) { urls.append(item.url()); }