<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/106125/">http://git.reviewboard.kde.org/r/106125/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 26th, 2012, 7:44 a.m., <b>Greg T</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Review: This doesn't really fix 297842, or does it? If I understand the reporter correctly, he wants to move with Up/Down keys in the search view as soon as he enters a search query. With your patch applied I still have to hit the tab key first. Can you set the focus automatically on the view?</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Per my unhappy code comment, we don't actually know the 'currently focused view' OR the view which is currently in the middle area (flipScrollView versus search results). AFAIK, and I'm a very _weak_ programmer, I would need to introduce some kind of mostRecentActiveView variable/property or a "nextViewRequested" API, in order to make errors work everywhere.

Tab will always work, while up/down arrows might not. They will not, for example, abandon the flipScrollView of applications, or the Search results View, if you happen to press "Down" one extra time: That's because down arrows need to be sent back into that view, in case there *is* another item within the column. And so, without making more information available to "launcher", it sits there in a loop. (Key_Down -> back into flipScrollView -> don't move, I'm at the bottom, but push the Key_Down Evt. back up to the launcher -> back into flipScrollView, doesn't move, back up to launcher, and etc.) Without a property or new Method, Search Results behaves the same.

Please feel free to take over the bug and fixup along those lines (or another way which you can make to work.) But, since we have 4 views in which arrow keys are applicable (flipScrollView, tabView, Search Bar, and Search results, I prefered to implement movement between views as a Tab function. It's reliable and testable, bcause function of the Key is unique. Up/Down arrows _must_ be made to do different things within different views.

The "key problem" ;) in the bug is that they're trapped in the search TextEdit, with absolutely no way out. I'm nearly certain that they don't require Down Arrow - and in fact, Key_Tab is traditionally used for moves of "larger scope". Implementing Key_Tab is a good scheme, IMO, although some doco might be relevant (somewhere -- I don't know where GUI launcer documentation even exists.)

Good question, and feel free to take over for 9.1 I can't review, unfortunately, leaving on vacation in minutes.</pre>
<br />








<p>- Richard</p>


<br />
<p>On August 26th, 2012, 3:52 p.m., Richard Stockton wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Plasma, Ivan Čukić and Lamarque Vieira Souza.</div>
<div>By Richard Stockton.</div>


<p style="color: grey;"><i>Updated Aug. 26, 2012, 3:52 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Keyboard control of Kickoff-Widget GUI, using arrow keys and Qt::Key_Tab. This version combines https://git.reviewboard.kde.org/r/104422/ and https://git.reviewboard.kde.org/r/106123/, preventing a repeat of bug 297842 when the feature (RFE bug 276932) is added to 4.9 and Trunk.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">#1 Arrow key movement among programs in the flipscrollview (Right, back to Left, and Up/Down). Activbation of highlighted/selected programs.
#2 Search bar entry, movement into View of matches using the Tab key. Move among multiple matching prgrams via arrow keys. Tab goes back to the search TextEdit field, allowing the search to be modified; and it is highlighted, allowing the search text to be deleted.
#3 an empty search text field re-shows the tab bar and flipscrollview; tab selection is again enabled via left/right arrow keys.

NOTE: It requires 2, even 3 Tabs to get exactly where you want to be via keyboard. Up/Down arrows are sometimes ignored, because the MVC Controller has insufficient knowledge of where you came from, and often tries to send your keystroke to an invisible, non-responsive View. IMO, Re-design or total replacement (Kickoff-QML) IS appropriate.

But it works.... sort of.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=276932">276932</a>, 

 <a href="http://bugs.kde.org/show_bug.cgi?id=297842">297842</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>plasma/desktop/applets/kickoff/ui/launcher.cpp <span style="color: grey">(3662ef0)</span></li>

 <li>plasma/desktop/applets/kickoff/ui/searchbar.cpp <span style="color: grey">(6937f93)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/106125/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>