SlotsLayout height is not dynamically updated when main paddings change

Bug #1628161 reported by Marco Trevisan (Treviño)
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Committed
Undecided
Unassigned
ubuntu-ui-toolkit (Ubuntu)
Fix Released
High
Marco Trevisan (Treviño)
ubuntu-ui-toolkit (Ubuntu RTM)
Fix Released
Undecided
Unassigned

Bug Description

You can see this in the attached testcase.

When paddings are changed, the SlotsLayout height is not updated dynamically.

Related branches

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Revision history for this message
Andrea Bernabei (faenil) wrote :

Here is a report of my investigation and my chat with Marco this afternoon:

The problem is topChanged and bottomChanged are connected to _q_relayout().
The relayout function does the relayout of the element, it doesn't update the height of the layout.

They should instead trigger _q_updateSize(), that will call _q_relayout() after updating the size.

There were already functionality and unit tests in place that ensure that the height is updated whenever the slot-specific paddings change.

There was a test checking that having the "global" top/bottom padding *initialized* to a *custom* value would produce a layout with the correct height, but there was no test checking that *changing
* the global padding *after* initialization would update the layout height.

Well spotted, and sorry for the inconvenience, Marco!

Thanks a ton for the fix and the unit test! :)

Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Łukasz Zemczak (sil2100) wrote :
Download full text (4.5 KiB)

This bug was fixed in the package ubuntu-ui-toolkit 1.3.2135+15.04.20161003.1 in https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay

---------------

ubuntu-ui-toolkit (1.3.2135+15.04.20161003.1) vivid; 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 alwa...

Read more...

Changed in ubuntu-ui-toolkit (Ubuntu RTM):
status: New → Fix Released
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
Changed in canonical-devices-system-image:
status: New → Fix Committed
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.