diff options
| author | Peter Penz <[email protected]> | 2012-04-17 18:13:31 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-04-17 18:15:12 +0200 |
| commit | b2e54c3a316b502ab4f7a95250f8316dc591c057 (patch) | |
| tree | 227eda97fcf699633f49fa7ea6ccdf38a19626e7 /src/panels/folders/folderspanel.cpp | |
| parent | eb1b53103d67784c68bb33e5fe3fefcad4cdbdea (diff) | |
Implement inline-renaming for the new view-engine
BUG: 286893
FIXED-IN: 4.9.0
Diffstat (limited to 'src/panels/folders/folderspanel.cpp')
| -rw-r--r-- | src/panels/folders/folderspanel.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 5f1b4a7e0..40e5eca8d 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -42,7 +42,6 @@ #include <QTimer> #include <views/draganddrophelper.h> -#include <views/renamedialog.h> #include <KDebug> @@ -89,18 +88,8 @@ bool FoldersPanel::autoScrolling() const void FoldersPanel::rename(const KFileItem& item) { - // TODO: Inline renaming is not supported anymore in Dolphin 2.0 - if (false /* GeneralSettings::renameInline() */) { - //const QModelIndex dirIndex = m_dolphinModel->indexForItem(item); - //const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex); - //m_treeView->edit(proxyIndex); - } else { - RenameDialog* dialog = new RenameDialog(this, KFileItemList() << item); - dialog->setAttribute(Qt::WA_DeleteOnClose); - dialog->show(); - dialog->raise(); - dialog->activateWindow(); - } + const int index = fileItemModel()->index(item); + m_controller->view()->editRole(index, "name"); } bool FoldersPanel::urlChanged() @@ -147,6 +136,9 @@ void FoldersPanel::showEvent(QShowEvent* event) // opening the folders panel. view->setOpacity(0); + connect(view, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), + this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant))); + KFileItemModel* model = new KFileItemModel(this); model->setShowDirectoriesOnly(true); model->setShowHiddenFiles(FoldersPanelSettings::hiddenFilesShown()); @@ -261,6 +253,17 @@ void FoldersPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* eve } } +void FoldersPanel::slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value) +{ + if (role == "name") { + const KFileItem item = fileItemModel()->fileItem(index); + const QString newName = value.toString(); + if (!newName.isEmpty() && newName != item.text() && newName != QLatin1String(".") && newName != QLatin1String("..")) { + KonqOperations::rename(this, item.url(), newName); + } + } +} + void FoldersPanel::slotLoadingCompleted() { if (m_controller->view()->opacity() == 0) { |
