Review Request 123888: [krunner] Bring back history
Mark Gaiser
markg85 at gmail.com
Sat May 23 23:21:00 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123888/#review80757
-----------------------------------------------------------
krunner/view.h (line 48)
<https://git.reviewboard.kde.org/r/123888/#comment55368>
const QStringList &history() const;
Saves a copy and prevents users from manipulating this object.
You do manipulate this, but that in the QML and you put it in a "var history" which probably copies it also in a javascript object?
Or i'm wrong... In that case you can ignore this comment :)
lookandfeel/contents/runcommand/RunCommand.qml (lines 97 - 101)
<https://git.reviewboard.kde.org/r/123888/#comment55369>
Hmm, this looks interesting.
Suppose my history looks like this:
- plasmashell
- konsole
- dolphin
now imagine i type "plasma". It should then show:
- plasmashell
Thus far it probably works fine.
Now imagine i clear whatever i typed (so a clean inputfield). All without closing krunner! When i clear it the history probably shows one entry:
- plasmashell
What happened to the other two?
Well, you've rewritten history when i typed a search query.
And because you call "runnerWindow.history = history" it will call the C++ setHistory method which will overwrite your history value in the config.. Ouch!
I could be wrong, but this is how i think it behaves when reading the code.
I think you should use something with a tree. A radix tree would be the easiest, fastest and cheapest in memory, but that doesn't exist in Qt nor the C++ STL.
I'm curious (since i don't see that code here). Where do you add items to your history?
- Mark Gaiser
On mei 23, 2015, 10:01 p.m., Kai Uwe Broulik wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123888/
> -----------------------------------------------------------
>
> (Updated mei 23, 2015, 10:01 p.m.)
>
>
> Review request for Plasma, KDE Usability and Vishesh Handa.
>
>
> Bugs: 335731
> https://bugs.kde.org/show_bug.cgi?id=335731
>
>
> Repository: plasma-workspace
>
>
> Description
> -------
>
> This turns KRunner's TextField into an editable ComboBox to provide a history.
>
> When a result is invoked, the query string is prepended to the history, query strings are only added once. ComboBox provides letter-by-letter auto completion.
>
>
> Diffs
> -----
>
> krunner/view.h 1ad5075
> krunner/view.cpp 8640e1d
> lookandfeel/contents/runcommand/RunCommand.qml 4c6eb30
>
> Diff: https://git.reviewboard.kde.org/r/123888/diff/
>
>
> Testing
> -------
>
> Somehow I have a feeling it doesn't always save the history or nukes it at times. It also has some shortcomings due to ComboBox:
>
> 1.) You cannot use the arrow keys to cycle between entries (when the popup's not opened) because arrow keys navigate through results
> 2.) forceActiveFocus() on the ComboBox will not activate the embedded TextField - when you had opened the popup there's a slight chance the input field won't get focussed I'll prepare a Qt patch for this.
> 3.) Before Qt 5.4.2 (not sure if my patch ended up in 5.4.1) pressing space in the edit combobox will open the popup, not insert a space (nasty show stopper)
> 4.) Plasma's edtiable ComboBox looks a bit strange imho
> 5.) Plasma's editable ComboBox doesn't support clearButtonShown
> 6.) Plasma's ComboBox has strange bullets and margins in it, that's probably a bug in Plasma Style (need to look what Desktop style does differently from us)
> 7.) ComboBox doesn't have a cursorPosition, I'll prepare a Qt patch for this.
>
>
> File Attachments
> ----------------
>
> History popup
> https://git.reviewboard.kde.org/media/uploaded/files/2015/05/23/7ad7e5eb-4874-4f9f-9796-738fa2ac9ed5__krunnerhistory.png
> Auto completion
> https://git.reviewboard.kde.org/media/uploaded/files/2015/05/23/18714844-ef28-4cdd-af00-e6685caece9b__krunnerautocompletion.png
>
>
> Thanks,
>
> Kai Uwe Broulik
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20150523/efe1224b/attachment.html>
More information about the Plasma-devel
mailing list