- const KUrl::List urls = selectedUrls();
- if (urls.count() > 1) {
- // More than one item has been selected for renaming. Open
- // a rename dialog and rename all items afterwards.
- RenameDialog dialog(urls);
- if (dialog.exec() == QDialog::Rejected) {
- return;
- }
-
- DolphinView* view = mainWindow()->activeView();
- const QString& newName = dialog.newName();
- if (newName.isEmpty()) {
- view->statusBar()->setMessage(i18n("The new item name is invalid."),
- DolphinStatusBar::Error);
- }
- else {
- // TODO: check how this can be integrated into KonqUndoManager/KonqOperations
-
- //UndoManager& undoMan = UndoManager::instance();
- //undoMan.beginMacro();
-
- assert(newName.contains('#'));
-
- const int urlsCount = urls.count();
-
- // iterate through all selected items and rename them...
- const int replaceIndex = newName.indexOf('#');
- assert(replaceIndex >= 0);
- for (int i = 0; i < urlsCount; ++i) {
- const KUrl& source = urls[i];
- QString number;
- number.setNum(i + 1);
-
- QString name(newName);
- name.replace(replaceIndex, 1, number);
-
- if (source.fileName() != name) {
- KUrl dest(source.upUrl());
- dest.addPath(name);
-
- const bool destExists = KIO::NetAccess::exists(dest, false, view);
- if (destExists) {
- view->statusBar()->setMessage(i18n("Renaming failed (item '%1' already exists).",name),
- DolphinStatusBar::Error);
- break;
- }
- else if (KIO::NetAccess::file_move(source, dest)) {
- // TODO: From the users point of view he executed one 'rename n files' operation,
- // but internally we store it as n 'rename 1 file' operations for the undo mechanism.
- //DolphinCommand command(DolphinCommand::Rename, source, dest);
- //undoMan.addCommand(command);
- }
- }
- }
-
- //undoMan.endMacro();
- }
- }
- else {
- // Only one item has been selected for renaming. Use the custom
- // renaming mechanism from the views.
- assert(urls.count() == 1);
- // TODO:
- /*if (m_mode == DetailsView) {
- Q3ListViewItem* item = m_iconsView->firstChild();
- while (item != 0) {
- if (item->isSelected()) {
- m_iconsView->rename(item, DolphinDetailsView::NameColumn);
- break;
- }
- item = item->nextSibling();
- }
- }
- else {
- KFileIconViewItem* item = static_cast<KFileIconViewItem*>(m_iconsView->firstItem());
- while (item != 0) {
- if (item->isSelected()) {
- item->rename();
- break;
- }
- item = static_cast<KFileIconViewItem*>(item->nextItem());
- }
- }*/