tl;dr: Allowing double-quotes in filenames in KFileWidget by escaping them with
\ and modifying the tokenizer to understand this.
In this patch:
escapeDoubleQuotesfunction that is used to escape selected file paths and correctly populate the
Disabling old KFileWidgetPrivate::tokenize and writing a new one which works by iterating each character in the
locationEditwhile it remembers if it is in "escape mode" (seen a '') or not.
Introducing public API
KFileWidget::setSelectedUrls. This was mainly needed for the tests to work. I originally wanted to test only the tokenizer but (a) this is in private implementation and (b) testing that things are escaped properly in the text-box is also very important
Adding a test for various filenames that contain a mix of backslashes and quotes
Adding a new logging category for the kfilewidget.cpp (KIO_KFILEWIDGETS_FW)
Adding command-line options to
kfilewidgettest_saving_guiwhich I used for functional tests at some point. My work there is a bit sloppy atm but I assume this is an auxiliary file (let me now if you want me to clean it up)
Do I need to add a @since in the docblock?
Do I need to change minor/major version here (and how would I do this)? I am not sure if the addition of
setSelectedUrlsis backwards compatible