-void DolphinView::renameSelectedItems()
-{
- const KFileItemList items = selectedItems();
- if (items.count() > 1) {
- // More than one item has been selected for renaming. Open
- // a rename dialog and rename all items afterwards.
- RenameDialog dialog(this, items);
- if (dialog.exec() == QDialog::Rejected) {
- return;
- }
-
- const QString newName = dialog.newName();
- if (newName.isEmpty()) {
- emit errorMessage(dialog.errorString());
- } else {
- // TODO: check how this can be integrated into KonqFileUndoManager/KonqOperations
- // as one operation instead of n rename operations like it is done now...
- Q_ASSERT(newName.contains('#'));
-
- // iterate through all selected items and rename them...
- int index = 1;
- foreach (KFileItem item, items) {
- const KUrl& oldUrl = item.url();
- QString number;
- number.setNum(index++);
-
- QString name = newName;
- name.replace('#', number);
-
- if (oldUrl.fileName() != name) {
- KUrl newUrl = oldUrl;
- newUrl.setFileName(name);
- KonqOperations::rename(this, oldUrl, newUrl);
- emit doingOperation(KonqFileUndoManager::RENAME);
- }
- }
- }
- } else {
- // Only one item has been selected for renaming. Use the custom
- // renaming mechanism from the views.
- Q_ASSERT(items.count() == 1);
-
- // TODO: Think about using KFileItemDelegate as soon as it supports editing.
- // Currently the RenameDialog is used, but I'm not sure whether inline renaming
- // is a benefit for the user at all -> let's wait for some input first...
- RenameDialog dialog(this, items);
- if (dialog.exec() == QDialog::Rejected) {
- return;
- }
-
- const QString& newName = dialog.newName();
- if (newName.isEmpty()) {
- emit errorMessage(dialog.errorString());
- } else {
- const KUrl& oldUrl = items.first().url();
- KUrl newUrl = oldUrl;
- newUrl.setFileName(newName);
- KonqOperations::rename(this, oldUrl, newUrl);
- emit doingOperation(KonqFileUndoManager::RENAME);
- }
- }
-}
-
-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();
- const KUrl::List kdeUrls = selectedUrls();
- const KUrl::List mostLocalUrls;
- KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true);
- QApplication::clipboard()->setMimeData(mimeData);
-}
-
-void DolphinView::copySelectedItems()
-{
- QMimeData* mimeData = new QMimeData();
- const KUrl::List kdeUrls = selectedUrls();
- const KUrl::List mostLocalUrls;
- KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, false);
- QApplication::clipboard()->setMimeData(mimeData);
-}
-
-void DolphinView::paste()