Bug 134960

Summary: Pasting a directory after the parent has been renamed, fails.
Product: [Frameworks and Libraries] kio Reporter: Amir Taaki <amir.taaki>
Component: generalAssignee: David Faure <faure>
Severity: normal CC: finex, frank78ac, lex.lists, peter.penz19
Priority: NOR    
Version: 4.10.2   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 4.11

Description Amir Taaki 2006-10-01 23:07:08 UTC
Version:           3.5.2 (using KDE 3.5.2, Gentoo)
Compiler:          Target: i686-pc-linux-gnu
OS:                Linux (i686) release 2.6.17-gentoo-r8

When you rename a directory it should update all the paths held by KDE- including the current cut/copied file or directory.

i.e If I try to copy or cut /somepath/pictures/thebeach, then rename pictures to photos, and paste it, then the path cannot be found.

Its a minor problem though ;) Keep up the good work.
Comment 1 lexual 2006-10-29 09:39:03 UTC
Confirming that this behaviour needs fixing. My view would be to clear the clipboard in such a case so that nothing is there to be "pasted".

3.5.5 debian packages.
Comment 2 FiNeX 2008-05-19 10:34:44 UTC
Confirmed on both konqueror 3.5.9 and dolphin in KDE 4 (trunk).
Comment 3 Dawit Alemayehu 2012-01-04 23:47:09 UTC
File management in Konqueror is now handled by a Dolphin KPart and this bug seems to affect it too ; so let us reassign this to that component.
Comment 4 Frank Reininghaus 2012-08-09 12:34:07 UTC
Not sure if this is really Dolphin's fault. The file names stored in the clipboard should be updated even if Dolphin is not running (the user might use the folderview plasmoid or some other app to cut&paste), but I'm not sure what the right product for this bug is.
Comment 5 Jeroen van Meeuwen (Kolab Systems) 2012-08-24 16:20:03 UTC
Resetting assignee to default as per bug #305719
Comment 6 Frank Reininghaus 2013-04-26 13:45:53 UTC
As I said earlier, there is nothing we can do in Dolphin to fix this issue properly.

I think the only way to fix this would be to have some code in a process that is always running (like kded) that watches all file system changes and checks if some of these changes affect the clipboard contents.

I'm not sure what to do with this report. Reassigning to KIO looks like the best solution, because that might be the place where anything like that could be implemented.
Comment 7 Dawit Alemayehu 2013-08-02 12:37:23 UTC
Git commit 2f19231bc9f32f2642df9556af81ce339307b091 by Dawit Alemayehu.
Committed on 29/07/2013 at 02:28.
Pushed by adawit into branch 'KDE/4.11'.

Update URLs copied to clipboard if they change as a result of KIO operations.
Related: bug 318757
FIXED-IN: 4.11
REVIEW: 111776

M  +84   -12   kio/kio/clipboardupdater.cpp
M  +15   -3    kio/kio/clipboardupdater_p.h
M  +10   -3    kio/kio/copyjob.cpp
M  +7    -2    kio/kio/deletejob.cpp
M  +8    -2    kio/kio/job.cpp
M  +5    -6    kio/kio/paste.cpp
M  +1    -0    kio/tests/CMakeLists.txt
A  +168  -0    kio/tests/clipboardupdatertest.cpp     [License: LGPL (v2+)]
A  +37   -0    kio/tests/clipboardupdatertest.h     [License: LGPL (v2+)]
M  +8    -8    kio/tests/fileundomanagertest.cpp
M  +1    -1    kio/tests/fileundomanagertest.h

Comment 8 Dawit Alemayehu 2013-08-02 13:57:36 UTC
Git commit 2f5218463d1b7b7fc6eb17feee1195deacda1577 by Dawit Alemayehu.
Committed on 02/08/2013 at 13:47.
Pushed by adawit into branch 'KDE/4.11'.

Updates last commit with minor and cosmetic changes.

REVIEW: 111776
Related: bug 318757

M  +10   -12   kio/kio/clipboardupdater.cpp
M  +4    -0    kio/kio/clipboardupdater_p.h
M  +3    -3    kio/tests/clipboardupdatertest.cpp

Comment 9 Dawit Alemayehu 2013-08-05 11:53:42 UTC
Git commit 9b0b5ec1a6396b051f65bf23cdf9d9949aa9c3ec by Dawit Alemayehu.
Committed on 05/08/2013 at 06:23.
Pushed by adawit into branch 'KDE/4.11'.

Fix unintended runtime dependency introduced when fixing #134960.

REVIEW: 111776
Related: bug 318757

M  +26   -7    kio/kio/clipboardupdater.cpp
M  +7    -1    kio/kio/clipboardupdater_p.h
M  +3    -3    kio/kio/copyjob.cpp
M  +2    -2    kio/kio/deletejob.cpp
M  +1    -1    kio/kio/fileundomanager.cpp
M  +2    -2    kio/kio/job.cpp
M  +3    -2    kio/kio/paste.cpp