Bug 75063 - Dangerous usability issue: when Juk asks to delete files, "Yes" button is default
Summary: Dangerous usability issue: when Juk asks to delete files, "Yes" button is def...
Status: RESOLVED FIXED
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-12 13:32 UTC by Thibaut Cousin
Modified: 2004-02-14 16:09 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 Thibaut Cousin 2004-02-12 13:32:24 UTC
Version:           2.0 (using KDE 3.2.0, SuSE)
Compiler:          gcc version 3.3.1 (SuSE Linux)
OS:          Linux (i686) release 2.4.21-166-athlon

I've just nuked my whole music collection by mistake... It's no big deal, but I thought I would share with you how I came to do that with Juk.

As Juk isn't able (or so it seems) to monitor some folders for some new files regularly, I selected my whole collection with the intention to delete it from Juk (just the collection, not the files themselves) and then to recreate it, making Juk re-read my whole music folder.

When I selected all the playlists in the left panel and asked to remove them, Juk asked me whether I wanted to delete the files as well, Yes, No or Cancel. The "Yes" button was selected by default and I was a bit too quick, and in a blink my whole collection had been wiped out...

My suggestion is twofold:

- Never make "Yes" the default with that sort of question. Back when I was a KDE translator, I think it was discussed for the KDE usability guidelines.
- Have a global option in Juk to remove the possibility to delete files. It could prevent any mistake of that sort.

Last but not least, apart from that little adventure, I'm really pleased with Juk as it is in KDE 3.2. Keep up the good work!

Thanks for your attention!
Comment 1 Scott Wheeler 2004-02-12 14:30:05 UTC
Well, the menu option is "Remove From Disk" and the prompt says "Do you really want to remove these files from your disk?"  I'm not really sure how to make that more clear.

This is actually currently a problem with the default KDE warning dialog -- it defaults to yes.  I'm not sure how many apps depend on that though so I'll probably have to write a new dialog...
Comment 2 Thibaut Cousin 2004-02-12 14:47:59 UTC
Well, the most important thing is the default choice in the dialog box. I'm very surprised that this problem is KDE-wide... Is it a bug?

As for the other option, it was just an added bonus, since Juk is able to delete an awful lot of file by mistake. But it's less important, as you pointed out.

Thanks for your quick answer.
Comment 3 Christian Loose 2004-02-13 10:08:07 UTC
Scott, you are using KMessageBox::questionYesNoList() method to show the question and that seems to be the problem. Change it to KMessageBox::warningYesNoList() and the default will be the "No" button.

No need for a for a new dialog...

Christian
Comment 4 Scott Wheeler 2004-02-13 10:20:19 UTC
On Friday 13 February 2004 10:08, Christian Loose wrote:
> Scott, you are using KMessageBox::questionYesNoList() method to show the 
> question and that seems to be the problem. Change it to 
> KMessageBox::warningYesNoList() and the default will be the "No" button.  

Ah, that's relatively new in kdelibs -- also I had in mind the fact that 
warningYesNoCancelList() defaults to "yes".

Comment 5 Scott Wheeler 2004-02-14 16:09:02 UTC
CVS commit by wheeler: 

Use a warning dialog instead of a question dialog.

CCMAIL:75063-done@bugs.kde.org


  M +1 -1      playlist.cpp   1.170


--- kdemultimedia/juk/playlist.cpp  #1.169:1.170
@@ -600,5 +600,5 @@ void Playlist::removeFromDisk(const Play
             message = i18n("Do you really want to delete these %1 items from your disk?").arg(QString::number(files.count()));
 
-        if(KMessageBox::questionYesNoList(this, message, files) == KMessageBox::Yes) {
+        if(KMessageBox::warningYesNoList(this, message, files) == KMessageBox::Yes) {
             for(PlaylistItemList::ConstIterator it = items.begin(); it != items.end(); ++it) {
                 if(QFile::remove((*it)->filePath())) {