┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/folders/folderspanel.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-04-17 18:13:31 +0200
committerPeter Penz <[email protected]>2012-04-17 18:15:12 +0200
commitb2e54c3a316b502ab4f7a95250f8316dc591c057 (patch)
tree227eda97fcf699633f49fa7ea6ccdf38a19626e7 /src/panels/folders/folderspanel.cpp
parenteb1b53103d67784c68bb33e5fe3fefcad4cdbdea (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.cpp29
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) {