Merge lp://qastaging/~renatofilho/address-book-app/keyboard-navigation into lp://qastaging/address-book-app

Proposed by Renato Araujo Oliveira Filho
Status: Merged
Approved by: Bill Filler
Approved revision: 550
Merged at revision: 522
Proposed branch: lp://qastaging/~renatofilho/address-book-app/keyboard-navigation
Merge into: lp://qastaging/address-book-app
Diff against target: 1460 lines (+464/-156)
28 files modified
src/app/addressbookapp.cpp (+17/-1)
src/app/addressbookapp.h (+7/-0)
src/imports/ABContactEditorPage.qml (+7/-5)
src/imports/ABContactListPage.qml (+156/-32)
src/imports/ABContactViewPage.qml (+12/-0)
src/imports/BottomEdge.qml (+18/-1)
src/imports/MainWindow.qml (+27/-1)
src/imports/Settings/SettingsPage.qml (+59/-3)
src/imports/Ubuntu/AddressBook/Base/ContactDetailBase.qml (+22/-8)
src/imports/Ubuntu/AddressBook/Base/ContactDetailGroupBase.qml (+2/-1)
src/imports/Ubuntu/AddressBook/Base/RemoveContactsDialog.qml (+10/-2)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactDetailAvatarEditor.qml (+1/-0)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactDetailGroupWithTypeEditor.qml (+12/-23)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactDetailNameEditor.qml (+1/-0)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactDetailSyncTargetEditor.qml (+7/-2)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactDetailWithTypeEditor.qml (+0/-1)
src/imports/Ubuntu/AddressBook/ContactEditor/ContactEditorPage.qml (+23/-17)
src/imports/Ubuntu/AddressBook/ContactEditor/TextInputDetail.qml (+24/-10)
src/imports/Ubuntu/AddressBook/ContactView/ActionButton.qml (+1/-0)
src/imports/Ubuntu/AddressBook/ContactView/BasicFieldView.qml (+1/-0)
src/imports/Ubuntu/AddressBook/ContactView/ContactDetailAvatarView.qml (+1/-0)
src/imports/Ubuntu/AddressBook/ContactView/ContactDetailGroupWithTypeView.qml (+13/-21)
src/imports/Ubuntu/AddressBook/ContactView/ContactDetailNameView.qml (+1/-1)
src/imports/Ubuntu/AddressBook/ContactView/ContactDetailSyncTargetView.qml (+2/-1)
src/imports/Ubuntu/AddressBook/ContactView/ContactDetailWithTypeView.qml (+3/-0)
src/imports/Ubuntu/Contacts/ContactListView.qml (+26/-1)
src/imports/Ubuntu/Contacts/ContactSimpleListView.qml (+7/-13)
src/imports/Ubuntu/Contacts/FastScroll.qml (+4/-12)
To merge this branch: bzr merge lp://qastaging/~renatofilho/address-book-app/keyboard-navigation
Reviewer Review Type Date Requested Status
Florian Boucault (community) Approve
PS Jenkins bot continuous-integration Needs Fixing
Bill Filler (community) Needs Fixing
Review via email: mp+277176@code.qastaging.launchpad.net

Commit message

Implement keyboard navigation for contact list.
Fix 'tab' navigation for contact editor page.
Added shortcuts for the page actions.

Description of the change

Available shortcuts:

General
=======
Esc = Back (Page stack)

Contact List
============
Ctrl + F = Search
Ctrl + N = Bottom edge (create new)

Contact View
============
Ctrl + E = Edit

Contact Editor
==============
Ctrl + S = Save
Ctrl + Delete = Delete contact

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
506. By Renato Araujo Oliveira Filho

Fixed focus on test fields.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
507. By Renato Araujo Oliveira Filho

Fixed visual for field header.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
508. By Renato Araujo Oliveira Filho

Merged: ~renatofilho/address-book-app/fix-1511477

509. By Renato Araujo Oliveira Filho

Make ActionButton icons 'orange' when it has focus.
Fixed some focus misbehavior.

Revision history for this message
Bill Filler (bfiller) wrote :

Some problems:

1) Ctrl F to search, then type your search string, press enter, down arrow should navigate to first item in results list and select it

2) When at top of the contact list and press up arrow focus should go to the section selector
a) right/left arrow in section selector should navigate between sections
b) down arrow when in section selector should navigate back to list

3) After saving a new contact, the new contact should be selected in the list and scrolled into view, but this is not working and first item in list is selected instead.

4) When you create a new contact and cancel (via esc), we should either select what was previously selected or the first item, but something should be selected. Currently nothing selected and right panel is blank which is not desirable.

5) When you enter edit mode, focus needs to be placed in the first field

6) In edit mode, Up/Down arrow keys should navigate the fields on the edit screen same as tabs do

7) In edit mode, left arrow key should bring focus back to contact list, if in contact list right arrow should navigate to first field in edit mode

8) Seeing of lots of these errors in log: file:///usr/share/address-book-app/imports/ABContactEditorPage.qml:45:9: QML Action: Invalid shortcut:

8)

review: Needs Fixing
Revision history for this message
Bill Filler (bfiller) wrote :

When press Settings button, focus should move to first item in settings list and up/down arrow should navigate, right arrow/enter should expand the item

review: Needs Fixing
Revision history for this message
Bill Filler (bfiller) wrote :

In edit mode, tab key and arrow keys should navigate to the Add Field button and Delete buttons, currently these are skipped in the navigation.

review: Needs Fixing
Revision history for this message
Bill Filler (bfiller) wrote :

In edit mode after making changes and saving the contact, the next contact in the list is selected instead of keeping the selection on the contact you just edited.

review: Needs Fixing
Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :

> Some problems:
>
> 1) Ctrl F to search, then type your search string, press enter, down arrow
> should navigate to first item in results list and select it
I do not like to use arrows to navigate btw objects, the arrows is alreary consumed by the text input to navigate internally (up/down when multilines).
Could we use "Tab" here?

>
> 2) When at top of the contact list and press up arrow focus should go to the
> section selector
> a) right/left arrow in section selector should navigate between sections
> b) down arrow when in section selector should navigate back to list

This need to be implemented by SDK. We can implement WORKAROUNDS here to support that but I would like to avoid it if possible.

The correct here is set focus to the page section and it handle the arrows or tab.

>
> 3) After saving a new contact, the new contact should be selected in the list
> and scrolled into view, but this is not working and first item in list is
> selected instead.
>
> 4) When you create a new contact and cancel (via esc), we should either select
> what was previously selected or the first item, but something should be
> selected. Currently nothing selected and right panel is blank which is not
> desirable.
I will implement that.

>
> 5) When you enter edit mode, focus needs to be placed in the first field
As discussed on IRC, this is not possible at the moment since we can not detect if there is a keyboard connect to device or not.
Implementing it ad default behavior you bring regressions on the phone use case.
check: https://bugs.launchpad.net/ubuntu/+source/address-book-app/+bug/1268042

>
> 6) In edit mode, Up/Down arrow keys should navigate the fields on the edit
> screen same as tabs do
Are you sure about that? This is not how desktop apps work. Most of the apps uses Tab to go foward and "shift+tab" to go backward on items in the screen.

>
> 7) In edit mode, left arrow key should bring focus back to contact list, if in
> contact list right arrow should navigate to first field in edit mode

Left and Right arrow is already used by the fields to navigate internally on the text. The correct will be use "tab".

But again we will need some big WORKAROUNDS here, since the item that receives focus on the page will be the header and it does not handle focus very well at the moment.

>
> 8) Seeing of lots of these errors in log: file:///usr/share/address-book-
> app/imports/ABContactEditorPage.qml:45:9: QML Action: Invalid shortcut:
This is because a WORKAROUND that I am using to avoid bug #1514856.

Right now all shortcuts are enable even if the action is not active/visible, because of that I am using this WORKAROUND:

shortcut: root.active ? "Ctrl+s": ""

this warning message appear when setting the shortcut to "" (empty).

>
> 8)

Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :

> In edit mode, tab key and arrow keys should navigate to the Add Field button
> and Delete buttons, currently these are skipped in the navigation.

The current SDK does not have focus visual feedback for buttons, allowing it to receive focus can cause confusion since the user will never know which button or item has focus or not.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
510. By Renato Araujo Oliveira Filho

Use tab to navigate to contact list from the search field.

511. By Renato Araujo Oliveira Filho

Move backwards on fields navigation when pressing 'Shif+Tab'

512. By Renato Araujo Oliveira Filho

Avoid load contact view page twice for the same contact.

513. By Renato Araujo Oliveira Filho

Make sure the contact list currentIndex does not change after editing a contact.

514. By Renato Araujo Oliveira Filho

Make sure that the app alwasy start with a selected contact when running on multi column.

Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :

> Some problems:
>
> 1) Ctrl F to search, then type your search string, press enter, down arrow
> should navigate to first item in results list and select it
Fixed on rev. 510

> 3) After saving a new contact, the new contact should be selected in the list
> and scrolled into view, but this is not working and first item in list is
> selected instead.
Fixed on rev. 513

>
> 4) When you create a new contact and cancel (via esc), we should either select
> what was previously selected or the first item, but something should be
> selected. Currently nothing selected and right panel is blank which is not
> desirable.
Fixed on rev. 513

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
515. By Renato Araujo Oliveira Filho

Move focus to contact list when pressing 'down' key on search field.

516. By Renato Araujo Oliveira Filho

WORKAROUND: SDK does not allow us to disable focus for items due bug: #1514822
because of that we create a new property called '_allowFocus' that we chack before set focus for any object.

517. By Renato Araujo Oliveira Filho

Added support for shortcuts on RemoveContactsDialog.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
518. By Renato Araujo Oliveira Filho

Trunk merged.

519. By Renato Araujo Oliveira Filho

Fixed bottom edge visibility.

520. By Renato Araujo Oliveira Filho

Implemented keyboard navigation on settings page.

521. By Renato Araujo Oliveira Filho

Fixed duplicated shortcut while editing a contact while searching.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
522. By Renato Araujo Oliveira Filho

Only set focus on list item after the key down pressed.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
523. By Renato Araujo Oliveira Filho

Fixed focus chain on TextField.

524. By Renato Araujo Oliveira Filho

Fixed currentIndex change while editing a contact.
Right arrow on search field give focus to First Field on editor page.

525. By Renato Araujo Oliveira Filho

"Right" arrow give focus for first field while editing.

526. By Renato Araujo Oliveira Filho

Get rid of 'invalid shortcut' error messages.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
527. By Renato Araujo Oliveira Filho

Fixed bottom edge editor page behaviour.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
528. By Renato Araujo Oliveira Filho

Avoid move contact index after editing it.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
529. By Renato Araujo Oliveira Filho

Trunk merged.

530. By Renato Araujo Oliveira Filho

Fixed view page connections after edit a contact.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
531. By Renato Araujo Oliveira Filho

Update FastScroll colors.

532. By Renato Araujo Oliveira Filho

Move list to desired contact on 'positionViewAtContact'.

533. By Renato Araujo Oliveira Filho

Change selected item color to organge if the contact list has focus.

534. By Renato Araujo Oliveira Filho

Do not move focus to next item when in the bottom of the list.

535. By Renato Araujo Oliveira Filho

Avoid warning messagins while creating Connection signals with null targes.
Move focus to editor when pressing tab in the contact list.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
536. By Renato Araujo Oliveira Filho

Disable contact editor page while on bottom edge to avoid focus problems.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
537. By Renato Araujo Oliveira Filho

Centralize contact when moving the list to it.

538. By Renato Araujo Oliveira Filho

Do not select any contact while creating a new one.

539. By Renato Araujo Oliveira Filho

Deos not change the foregroundColor of item on settings page if using the single column layout.

540. By Renato Araujo Oliveira Filho

Do not move to next item on right arrow press, while in search field.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
541. By Renato Araujo Oliveira Filho

Removed FastScroll magnified border.

542. By Renato Araujo Oliveira Filho

Does not move focus to search field on right key press.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
543. By Renato Araujo Oliveira Filho

use gray background color for fasctroll tooltip.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
544. By Renato Araujo Oliveira Filho

Close settings page with 'Esc' or 'left arrow'.

545. By Renato Araujo Oliveira Filho

Activate actions on settings page by pressing 'right' key.

546. By Renato Araujo Oliveira Filho

Use a orange rectangle to show the selected item in the settings page.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Florian Boucault (fboucault) wrote :

Can you explain the purpose of forceActiveFocus() in src/imports/ABContactListPage.qml

    function reloadContact() {
        [...]
        contactList.forceActiveFocus()
    }

Revision history for this message
Florian Boucault (fboucault) wrote :

Can you explain the purpose of
    Timer {
        id: fetchNewContactTimer
        [...]
    }

Is it a workaround? if so of what?

547. By Renato Araujo Oliveira Filho

Fixed severam comments from reviewer;

548. By Renato Araujo Oliveira Filho

Removed 'focus' property change.

549. By Renato Araujo Oliveira Filho

Fixed selected color.

550. By Renato Araujo Oliveira Filho

Use palette color instead of hardcoded one.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Florian Boucault (fboucault) wrote :

Much better! Thank you, code is good to go.

review: Approve
551. By Renato Araujo Oliveira Filho

Trunk merged.

552. By Renato Araujo Oliveira Filho

Created 'saveActionEnabled' property to avoid problems on tests.
Used that new property instead of search for Action.

553. By Renato Araujo Oliveira Filho

Switch to keyboard visuals as soon as any key is pressed.
Avoid crash on Contact list page with 'esc' key.

554. By Renato Araujo Oliveira Filho

Avoid crash app while saving a contact using shortcut.

555. By Renato Araujo Oliveira Filho

Avoid ambiguous shortcut while search and view contact page openend.

556. By Renato Araujo Oliveira Filho

Removed workarounds necessary for bug #1518420 (fixed)

557. By Renato Araujo Oliveira Filho

Trunk merged.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches