]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinview.cpp
Newer items go before
[dolphin.git] / src / dolphinview.cpp
index 30b07ce4222422ae1e4d8c7c06db5ac0bd1c61d4..41bee6972315c62846ee2ffd4933ffb377c3a604 100644 (file)
@@ -36,6 +36,7 @@
 #include <kfileitemdelegate.h>
 #include <klocale.h>
 #include <kiconeffect.h>
+#include <kio/deletejob.h>
 #include <kio/netaccess.h>
 #include <kio/previewjob.h>
 #include <kmimetyperesolver.h>
@@ -71,6 +72,7 @@ DolphinView::DolphinView(QWidget* parent,
     m_detailsView(0),
     m_columnView(0),
     m_fileItemDelegate(0),
+    m_selectionModel(0),
     m_dolphinModel(dolphinModel),
     m_dirLister(dirLister),
     m_proxyModel(proxyModel)
@@ -202,7 +204,6 @@ void DolphinView::setMode(Mode mode)
     const KUrl viewPropsUrl = viewPropertiesUrl();
     ViewProperties props(viewPropsUrl);
     props.setViewMode(m_mode);
-
     createView();
 
     // the file item delegate has been recreated, apply the current
@@ -221,8 +222,6 @@ void DolphinView::setMode(Mode mode)
         emit categorizedSortingChanged();
     }
 
-    loadDirectory(viewPropsUrl);
-
     emit modeChanged();
 }
 
@@ -862,6 +861,13 @@ void DolphinView::createView()
     view->setItemDelegate(m_fileItemDelegate);
 
     view->setModel(m_proxyModel);
+    if(m_selectionModel)
+       view->setSelectionModel(m_selectionModel);
+    else
+        m_selectionModel = view->selectionModel();
+
+    m_selectionModel->setParent(this);  //Reparent the selection model.  We do not want it to be deleted when we delete the model
+
     view->setSelectionMode(QAbstractItemView::ExtendedSelection);
 
     new KMimeTypeResolver(view, m_dolphinModel);
@@ -1067,6 +1073,36 @@ void DolphinView::renameSelectedItems()
     }
 }
 
+void DolphinView::trashSelectedItems()
+{
+    emit doingOperation(KonqFileUndoManager::TRASH);
+    KonqOperations::del(this, KonqOperations::TRASH, selectedUrls());
+}
+
+void DolphinView::deleteSelectedItems()
+{
+    const KUrl::List list = selectedUrls();
+    const bool del = KonqOperations::askDeleteConfirmation(list,
+                     KonqOperations::DEL,
+                     KonqOperations::DEFAULT_CONFIRMATION,
+                     this);
+
+    if (del) {
+        KIO::Job* job = KIO::del(list);
+        connect(job, SIGNAL(result(KJob*)),
+                this, SLOT(slotDeleteFileFinished(KJob*)));
+    }
+}
+
+void DolphinView::slotDeleteFileFinished(KJob* job)
+{
+    if (job->error() == 0) {
+        emit operationCompletedMessage(i18nc("@info:status", "Delete operation completed."));
+    } else {
+        emit errorMessage(job->errorString());
+    }
+}
+
 void DolphinView::cutSelectedItems()
 {
     QMimeData* mimeData = new QMimeData();
@@ -1156,4 +1192,30 @@ QPair<bool, QString> DolphinView::pasteInfo() const
     return ret;
 }
 
+KAction* DolphinView::createRenameAction(KActionCollection* collection)
+{
+    KAction* rename = collection->addAction("rename");
+    rename->setText(i18nc("@action:inmenu File", "Rename..."));
+    rename->setShortcut(Qt::Key_F2);
+    return rename;
+}
+
+KAction* DolphinView::createMoveToTrashAction(KActionCollection* collection)
+{
+    KAction* moveToTrash = collection->addAction("move_to_trash");
+    moveToTrash->setText(i18nc("@action:inmenu File", "Move to Trash"));
+    moveToTrash->setIcon(KIcon("user-trash"));
+    moveToTrash->setShortcut(QKeySequence::Delete);
+    return moveToTrash;
+}
+
+KAction* DolphinView::createDeleteAction(KActionCollection* collection)
+{
+    KAction* deleteAction = collection->addAction("delete");
+    deleteAction->setIcon(KIcon("edit-delete"));
+    deleteAction->setText(i18nc("@action:inmenu File", "Delete"));
+    deleteAction->setShortcut(Qt::SHIFT | Qt::Key_Delete);
+    return deleteAction;
+}
+
 #include "dolphinview.moc"