Bug 83495 - [wish] JuK could move files to trash when removing them from disk
Summary: [wish] JuK could move files to trash when removing them from disk
Status: RESOLVED FIXED
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Other
: NOR wishlist
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-06-16 15:59 UTC by Mikko Yliniemi
Modified: 2004-09-05 03:15 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mikko Yliniemi 2004-06-16 15:59:15 UTC
Version:           JuK 2.0.1 (using KDE KDE 3.2.2)
Installed from:    Unspecified
OS:                I Don't Know

There's feature in JuK whcih allows you to remove files from disk. I accidentally removed important music files once. It could be nice feature if JuK moved files to trash instead of removing them immediately.
Comment 1 Michael Pyne 2004-08-29 03:14:47 UTC
CVS commit by mpyne: 

Fix bug 83495 by making JuK move deleted music to the Trash instead of removing them immediately.  This also caught a poor KDE developer whom I'll leave nameless, so I figured it was time to hurry up and fix this. =D

A better move IMO would be making this action undo-able, or perhaps removing the option from the default RMB menu.

We already have a mean dialog up, but that's been proven to not have much of an effect. ;-)

CCMAIL:83495-done@bugs.kde.org


  M +11 -12    playlist.cpp   1.248


--- kdemultimedia/juk/playlist.cpp  #1.247:1.248
@@ -24,4 +24,7 @@
 #include <kdebug.h>
 #include <kinputdialog.h>
+#include <kglobalsettings.h>
+#include <kurl.h>
+#include <kio/netaccess.h>
 
 #include <qheader.h>
@@ -735,23 +738,19 @@ void Playlist::removeFromDisk(const Play
             files.append((*it)->file().absFilePath());
 
+        KURL trashDir = KGlobalSettings::trashPath();
+
         QString message;
 
         if(files.count() == 1)
-            message = i18n("Do you really want to delete this item from your disk?");
+            message = i18n("Do you really want to move this item to the trash?");
         else
-            message = i18n("Do you really want to delete these %1 items from your disk?").arg(QString::number(files.count()));
+            message = i18n("Do you really want to move these %1 items to the trash?").arg(QString::number(files.count()));
 
         if(KMessageBox::warningContinueCancelList(this, message, files, i18n("Delete Items?"), KGuiItem(i18n("&Delete"),"editdelete")) == KMessageBox::Continue) {
             for(PlaylistItemList::ConstIterator it = items.begin(); it != items.end(); ++it) {
-
-                // If we delete the item we're playing, we have to switch songs because of the
-                // m_playingItem pointer.  The 'best' thing to do would be to switch to the
-                // next song (or stop if that's it and loop isn't set), but I don't feel like
-                // duplicating all the code, so we'll just stop playback.
-
                 if(m_playingItem == *it)
-                    PlayerManager::instance()->stop();
+                    action("forward")->activate();
 
-                if(QFile::remove((*it)->file().absFilePath())) {
+                if(KIO::NetAccess::move((*it)->file().absFilePath(), trashDir)) {
                     if(!m_randomList.isEmpty() && !m_visibleChanged)
                         m_randomList.remove(*it);
@@ -763,5 +762,5 @@ void Playlist::removeFromDisk(const Play
                 }
                 else
-                    KMessageBox::sorry(this, i18n("Could not delete ") + (*it)->file().absFilePath() + ".");
+                    KMessageBox::sorry(this, i18n("Could not move ") + (*it)->file().absFilePath() + ".");
             }
 


Comment 2 MaxAuthority 2004-09-05 03:02:39 UTC
In my opinion there would be an even better solution:

Why not just use this type of a message box? :
-----------------------------------------------------------
"What do you want to do with these files?"
file1.mp3
file2.mp3

"Move to Trash" (=default button) "Delete from Disk" "Cancel"
-----------------------------------------------------------
Comment 3 Scott Wheeler 2004-09-05 03:15:00 UTC
There's now a checkbox to actually remove the files and the setting is stored between invocations.