Bug 197195

Summary: KFileDialog: Slashes corrupt filter when converting from Qt
Product: [Applications] kfile Reporter: Felix Geyer <debfx-kde>
Component: generalAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: andresbajotierra, mpyne
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Replace "/" with "\\/" in qt2KdeFilter()

Description Felix Geyer 2009-06-19 22:07:01 UTC
Version:            (using KDE 4.2.4)
OS:                Linux
Installed from:    Ubuntu Packages

When KFileDialog converts a Qt filter that contains slashes ('/') the resulting filter doesn't match any files.
This happens when using Qt applications with the style set to Oxygen or QtCurve.

Example:
The VirtualBox frontend (written in Qt) uses the following filter: "CD/DVD-ROM images (*.iso);;All files (*)".
When using the Oxygen style the displayed filter is ", , , " and it doesn't match any files.
Other styles such as Plastique and GTK work fine.

I suspect that slash have to be escaped to "\\/" (in qt2KdeFilter() ?).
Comment 1 Michael Pyne 2009-06-20 03:15:33 UTC
I can confirm the proximate bug, but it's not caused by the style directly.  When using a KDE style Qt tries to use the native KDE file dialogs as well, which handles the filters differently, assuming the the slash represents a mimetype (so the cause is Qt "upgrading" VirtualBox's QFileDialog to a KFileDialog, but it's still a KDE bug).

If you were to do this with a KDE application the filters would never work (the API docs for KFileDialog do refer to the mimetype filter assumption).

I think it would be best to make the mimetype filter handling only take effect for valid mimetypes instead of just detecting "/".
Comment 2 Felix Geyer 2009-06-21 12:37:52 UTC
Created attachment 34711 [details]
Replace "/" with "\\/" in qt2KdeFilter()

Replacing "/" with "\\/" in qt2KdeFilter() fixes the bug.
Comment 3 Anne-Marie Mahfouf 2009-06-21 13:39:53 UTC
Comment on attachment 34711 [details]
Replace "/" with "\\/" in qt2KdeFilter()

patch
Comment 4 Felix Geyer 2009-07-03 19:22:22 UTC
Comment on attachment 34711 [details]
Replace "/" with "\\/" in qt2KdeFilter()

Submitted to Review Board:
http://reviewboard.kde.org/r/934/
Comment 5 Dario Andres 2009-07-22 17:24:41 UTC
@Michael: any possibility of reviewing the patch before commiting ?
Comment 6 Christoph Feck 2009-07-22 23:30:11 UTC
SVN commit 1001314 by cfeck:

Correctly handle slashes when converting filters from Qt

Patch by Felix Geyer, reviewed by Albert Astals Cid
See http://reviewboard.kde.org/r/934/

BUG: 197195


 M  +1 -1      kfiledialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1001314
Comment 7 Christoph Feck 2009-07-22 23:31:33 UTC
SVN commit 1001316 by cfeck:

Correctly handle slashes when converting filters from Qt (backport r1001314)

CCBUG: 197195


 M  +1 -1      kfiledialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1001316
Comment 8 Michael Pyne 2009-07-23 03:34:08 UTC
I'm late to the party but the patch looks good IMO.