[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Review Request: Correctly handle the cases where a directory
From:       "Jonathan Marten" <jjm () keelhaul ! me ! uk>
Date:       2009-07-02 12:34:05
Message-ID: 20090702123405.22093.73937 () localhost
[Download RAW message or body]


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

(Updated 2009-07-02 05:34:05.356619)


Review request for kdelibs.


Changes
-------

Know how you feel about getting lost - every routine in kfiledialog.cpp seems to do \
things slightly differently.  Diff r3 makes everything as consistent as possible by:  \
(a) not doing anything special with the 'startDir' parameter, just passing it in to \
KFileWidget unchanged;  (b) setting KFile::LocalOnly for all the *fileName operations \
where a local file is expected.

I didn't add a kWarning() for the non-local starting place, it was there in a \
slightly different place already (but only in getSaveFileName, not in \
getOpenFileName/getOpenFileNames.  Not sure if there is any point to this warning, \
apart from for application developers.  IMHO KFileWidget is the place to enforce \
this, but it's difficult to do there because of the separation of the constructor and \
setMode().


Summary
-------

Fix bug 194900 by simplifying the code in KFileDialog.  For the \
getSaveFileName/getSaveUrl cases, this originally used to create a KFileDialog and \
then used setSelection() on it to set the starting location and/or initial file name. \
Doing this seems to always insert the basename of the setSelection() argument into \
the file name field of the dialogue - even if it is not present or is a directory.

Now the starting or special directory is passed directly to the KFileDialog \
constructor, which handles the cases where this is a directory correctly.  (The \
KFileWidget constructor does a KIO::stat() to check the filename/path, and decides \
what to do based on that).  This simplifies the code in KFileDialog too.

Extend the test cases (tests/kfiledialogtest.cpp) to check for these cases.  Since \
this test has grown quite a bit, add a caption to the dialogue of each sub-test to \
indicate what is being tested.


This addresses bug 194900.
    https://bugs.kde.org/show_bug.cgi?id=194900


Diffs (updated)
-----

  /trunk/KDE/kdelibs/kio/kfile/kencodingfiledialog.cpp 988105 
  /trunk/KDE/kdelibs/kio/kfile/kfiledialog.cpp 988105 
  /trunk/KDE/kdelibs/kio/kfile/tests/kfiledialogtest.cpp 988105 

Diff: http://reviewboard.kde.org/r/803/diff


Testing
-------

Checked operation of the file dialogue using the test case and the code in the bug \
report, correct operation observed.


Thanks,

Jonathan


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic