| Summary: | Save As overwrites file when choosing rename | ||
|---|---|---|---|
| Product: | [Applications] kdepim | Reporter: | Albert Astals Cid <aacid> |
| Component: | messageviewer | Assignee: | kdepim bugs <pim-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | montel |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | http://commits.kde.org/kdepim/268987b77e8a18edf49d024147e882840cbf3593 | Version Fixed In: | 4.12 |
| Sentry Crash Report: | |||
Waou good test I never think that user can do it :) Ok will look at today. Thanks for reporting bug. Will fix in all area. Git commit 268987b77e8a18edf49d024147e882840cbf3593 by Montel Laurent. Committed on 17/08/2013 at 17:34. Pushed by mlaurent into branch 'master'. Fix Bug 323636 - Save As overwrites file when choosing rename FIXED-IN: 4.12 M +7 -0 pimcommon/widgets/renamefiledialog.cpp http://commits.kde.org/kdepim/268987b77e8a18edf49d024147e882840cbf3593 |
How to reproduce: * Get a mail with an attachment named Q * Right click on the attachment and choose save as * Go to a folder where you have a file named Q * Press Save * Get a dialog "there's already a file named Q" * Now you're going to loose your file named Q * Press "rename" * The file you had named Q is overwritten It could be fixed by doing this diff --git a/messageviewer/utils/util.cpp b/messageviewer/utils/util.cpp index 18717d4..c0448e6 100644 --- a/messageviewer/utils/util.cpp +++ b/messageviewer/utils/util.cpp @@ -272,7 +272,7 @@ bool Util::saveContents( QWidget *parent, const QList<KMime::Content*> &contents if( !(result == PimCommon::RenameFileDialog::RENAMEFILE_OVERWRITEALL || result == PimCommon::RenameFileDialog::RENAMEFILE_IGNOREALL )) { - if ( KIO::NetAccess::exists( curUrl, KIO::NetAccess::DestinationSide, parent ) ) { + while ( KIO::NetAccess::exists( curUrl, KIO::NetAccess::DestinationSide, parent ) ) { if ( contents.count() == 1 ) { PimCommon::RenameFileDialog *dlg = new PimCommon::RenameFileDialog(curUrl,false, parent); result = static_cast<PimCommon::RenameFileDialog::RenameFileDialogResult>(dlg->exec()); But probably should be fixed inside RenameFileDialog itself since there are more users like kaddressbook/ that also seem to assume that the file they get out of RenameFileDialog is good to go.