-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101075/
-----------------------------------------------------------

(Updated April 20, 2011, 8:50 p.m.)


Review request for kdelibs.


Changes
-------

I updated my previous patch in two aspects.
(1) The code formatting has been changed to match the surrounding code.
(2) The documentation for kfiledialog.h has been rewritten to match the 
changes. See function setFilter() for the main changes. Across the 
documentation, the variants of "mimetype" and "mime-type" have been unified.


Summary
-------

When using mimetypes instead of old-fashioned '*.txt|Text file' filters for 
KFileDialog functions, there is no mimetype working like '*|All files'. 
Mimetypes 'all/all' and 'all/allfiles' have no globs associated and as such do 
not match any filenames. The current solution 'application/octet-stream' works 
as an all-files filter, but does not behave nicely in KFileFilterCombo: 
including this mimetype will render 'all supported files' to 'all files'.

The attached patch improves the situation as follows: if the developer adds a 
mimetype 'all/allfiles' to his/her list of mime types for filtering in e.g. 
KFileDialog::getOpenUrl's second parameter, function setMimeFilter recognizes 
the request for an "all files" filter option and adds it to the list of options 
in the combobox. This "all files", however, is not added to the "all support 
files" option as the 'application/octet-stream' would have been. Additional 
minor changes (moving some lines around "+= delim") were made in the same 
function for GUI consistency reasons.

To make the patch and mimetype 'all/allfiles' working (as it has no inherent 
glob like '*'), KDirLister has to be modified as well: just like 
'application/octet-stream' can act as a wildcard, so does 'all/allfiles' now.

Regarding code consistency, I am not sure why 'application/octet-stream' was 
used as a filter; this mimetype stands IMHO for binary bulk data instead of 
'any/all files'. Maybe support for application/octet-stream should be marked as 
deprecated in this situation.

If this patch does get accepted, the documentation on setMimeFilter needs to be 
adopted to explain the use of 'all/allfiles'. Furthermore, I would suggest that 
the documentation should suggest to prefer using mimetypes ('text/plain') over 
manual globs ('*.txt|Text file') as it offers better consistency ('*.txt|Text 
file' vs '*.txt|Plain Text file'), internationalization etc.


Diffs (updated)
-----

  kfile/kfilefiltercombo.cpp f32a0df 
  kio/kfile/kfiledialog.h af29a37 
  kio/kio/kdirlister.cpp df81dc8 

Diff: http://git.reviewboard.kde.org/r/101075/diff


Testing
-------


Thanks,

Thomas

Reply via email to