No way to escape an ampersand in UCAction

Bug #1587580 reported by Stefano Verzegnassi
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ubuntu-ui-toolkit (Ubuntu)
Fix Released
Medium
Cris Dywan

Bug Description

Let's say we have an Ubuntu.Action as follow:

import Ubuntu.Components 1.3 as Ubuntu
Ubuntu.Action {
    text: "Apps & Scopes"
}

UCAction translates the ampersand as a mnemonic, using QKeySequence.
A way to escape a mnemonic in Qt is to add another ampersand. The resulting string is "Apps && Scopes".

The UITK component seems not to take in account this situation, since:

- How the string should be shown in e.g. an ActionBar:
"Apps & Scopes"

- How the string is displayed instead in an ActionBar:
"Apps && Scopes"

QKeySequence returns no mnemonic as expected, but UCAction shows two ampersands.

Related branches

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu-ui-toolkit (Ubuntu):
status: New → Confirmed
Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Christian Dywan (kalikiana)
importance: Undecided → Medium
Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → In Progress
Zsombor Egri (zsombi)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.4 KiB)

This bug was fixed in the package ubuntu-ui-toolkit - 1.3.2135+16.10.20161003.1

---------------
ubuntu-ui-toolkit (1.3.2135+16.10.20161003.1) yakkety; urgency=medium

  [ Christian Dywan ]
  * Fix warning about using implicit char* to QString conversion.
  * __styleInstance may be null, when doesn't handle that. Fixes LP: #1586013
  * Focus ring, arrow keys and space to expand OptionSelector.
    Fixes LP: #1514860
  * Use QStringLiteral with QString.replace. Fixes LP: #1625507
  * Use displayText to determine if the clear button should show.
    Fixes LP: #1461571
  * && escapes an ampersand used in a mnemonic label. Fixes LP: #1587580
  * Try harder to pass an item to QuickUtils.rootItem. Fixes LP: #1586013

  [ Timo Jyrinki ]
  * Enable arm64 unit tests on xenial and newer. Fixes LP: #1580172.
  * Add initial snapcraft.yaml

  [ Marco Trevisan ]
  * UCSlotsLayout: update the size of the element when top/bottom paddings change.
    Fixes LP: #1628161

  [ Tim Peeters ]
  * Ensure that the model in TabBarStyle is a list and not null.
    Fixes LP: #1622577.
  * Initialize the 'window' context property with null and add MainView 1.3 unit
    tests. Fixes LP: #1610231, LP: #1621509, LP: #1625993.
  * Fix libpng sRGB profile warnings on Yakkety. Fixes LP: #1625137.
  * Disable layouts unit test to work around bug 1625137 on Yakkety.

  [ Zsombor Egri ]
  * Fix AdaptivePageLayout behavior on Qt5.6. Fixes LP: #1585996.
  * Fix property binding restore on theme palette values. Fixes LP: #1570478.
  * Move activeFocusOnTab from style into components. Fixes LP: #1590005.

  [ Loïc Molinari ]
  * Added public headers extra robustness checks. Made use of the qmake
    headersclean feature to check the robustness of our public headers.
  * Excluded LTTng features from non-Linux builds.
  * Moved common C++ configs to ubuntu_common.prf. The common config file
    doesn't add -Werror directly to QMAKE_CXXFLAGS anymore, it sets the
    warnings_are_errors variable so that it is correctly handled by different
    compilers (not just GCC). That allows to remove the
    -Werror=deprecated-declarations flag since warnings_are_errors defines it
    for us. Removed the DEFINES += QT_USE_QSTRINGBUILDER lines since it's
    already handled by qt_module.prf. Set the -Wsuggest-override warning to
    QMAKE_CXXFLAGS_WARN_ON instead of QMAKE_CXXFLAGS directly.
  * Cleaned up qmake Ubuntu packaging variables. The qtbase packaging for Ubuntu
    exports the CFLAGS, CXXFLAGS and LFLAGS variables in the environment before
    running configure so that the qtbase shared libraries can be compiled with
    the required distribution defined compiler flags. That is fine (though I
    guess that could be handled better at the qtbase packaging level with maybe
    a dedicated prf) but it results in qt_build_config.prf defining the
    QMAKE_CFLAGS, QMAKE_CXXFLAGS and QMAKE_LFLAGS variables with these
    distribution specific flags. Since we load this prf, these variables end up
    being defined when building the toolkit for development purpose. This is
    problematic because -O2 and -g are always defined (whatever the debug or
    release config chosen by the developer), al...

Read more...

Changed in ubuntu-ui-toolkit (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.