popupUtils.open() won't work inside Window with "null" caller

Bug #1617745 reported by Alberto Mardegan
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Committed
High
Unassigned
ubuntu-ui-toolkit (Ubuntu)
Fix Released
High
Cris Dywan

Bug Description

I think I found a regression with popupUtils.open() in rc-proposed (r512 on mako):

I have some code which is invoking a dialog in this way:

  PopupUtils.open(Qt.resolvedUrl("DeleteConfirmation.qml"), null, { ... params... })

This now doesn't work, but it works on OTA-12.

This can cause serious regression in third party applications, if dialogs stop appearing.

Furthermore, if I replace "null" with a valid item, things work again but I get a warning on the console:

  qml: 'caller' is DEPRECATED. It has no effect.

Which seems wrong, given that in the current stable documentation there is absolutely no mention of the caller property being deprecated.

Related branches

Revision history for this message
Cris Dywan (kalikiana) wrote :

Dialog.caller is deprecated - if you use PopupUtils.open with a Dialog you will see that warning, as documented in the docs for the Dialog component, and it won't do anything. The same isn't true for Popover.

A test case to demonstrate what "doesn't work" would be needed, it's not obvious from the description.

Revision history for this message
Alberto Mardegan (mardy) wrote :
Revision history for this message
Alberto Mardegan (mardy) wrote :

Attaching a test case. Run

  qmlscene --desktop_file_hint=/usr/share/applications/dialer-app.desktop ./page.qml

and click on the "+" header action: the dialog won't open.

However, if you replace "null" with "page0" in page.qml, then the dialog will appear.

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)
summary: - Regression: popupUtils.open() won't work with "null" caller
+ popupUtils.open() won't work inside Window with "null" caller
Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → High
Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Committed
Changed in canonical-devices-system-image:
status: New → Fix Committed
importance: Undecided → High
milestone: none → backlog
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.8 KiB)

This bug was fixed in the package ubuntu-ui-toolkit - 1.3.2104+16.10.20160919.3

---------------
ubuntu-ui-toolkit (1.3.2104+16.10.20160919.3) yakkety; urgency=medium

  [ Andrea Bernabei ]
  * Scrollbar: more hover related bugfixes and unit tests.
    Fixes: LP: #1616868, LP: #1616926

  [ Christian Dywan ]
  * QuickUtils.rootObject() needs to handle QQuickWindow. Fixes: LP: #1617745
  * Correctly test and fix trigger override of ComboButton. Fixes: LP: #1614045

  [ Zoltan Balogh ]
  Increase the top marging when scrolling upwards. Fixes LP: 1618581

  [ Timo Jyrinki ]
  * Temporarily skip unit tests on xenial while not all MPs to fix Qt 5.6 issues
    have landed yet.

  [ Michael Terry ]
  * Make ActivityIndicator spinner blue instead of orange. Fixes: LP: #1577828.

  [ Loïc Molinari ]
  * Changed src/ directory layout. Made the source directory layout consistent
    with Qt libs. The C++ libraries have been moved to src/ and the QML modules
    to src/imports/. That also makes it easier to differentiate between modules
    and libraries since we have a bunch of them now.
  * Moved internal tools meant to generate code for the toolkit lib from the QML
    module directory to the lib directory where it makes more sense.
  * Fixed the build as a Qt submodule.
  * Fixed, cleaned up and standardised header inclusions. Apart from the clean
    up and the readability improvements, this fixes a bunch of broken private
    header inclusions (#include "foo_p.h" in private headers instead of
    "private/foo_p.h" or better ), now all the private headers of the UITK can
    be included by the users withour compilation issues. It also removes a bunch
    of direct includes from sources and a few INCLUDEPATHs hacks.See the CODING
    file for more details.
  * Cleaned up ubuntu_qt_module.prf and the libs using it.
    1/ Moved the common config options from the pro files to the prf file to
       avoid duplications and simplify the files.
    2/ Removed the useless "TEMPLATE=lib" and "load(qt_build_config)" lines from
       the pro files since it's done for us by qt_module.prf.
    3/ Use QT= instead of QT*= since it's well defined that by default its
       content is "core gui".
    4/ Prefixed headers and sources by $$PWD/ and sorted the lines
       alphabetically.
    5/ Merged the SOURCES declarations in UbuntuToolkit.pro.
    6/ Removed the useless "DEFINES += QT_USE_QSTRINGBUILDER" line from
       UbuntuToolkit.pro since it's done for us by qt_module.prf.
    7/ Removed the useless "QMAKE_CXXFLAGS -= -Werror=deprecated-declarations"
       and "DEFINES -= QT_DEPRECATED_WARNINGS" lines from UbuntuToolkit.pro
       since it's already done in ubuntu_qt_module.prf.
    8/ Added a few comments.
  * Made use of Qt builtin to check GCC version.

  [ Tim Peeters ]
  * Improve the initialization of Action when it gets both iconName and
    iconSource from an external component when iconSource is undefined. This
    fixes the some times missing overflow button in the ActionBar with Qt 5.6.
    I also removed action: modelData from the OverflowPanel because this is
    already set automatically in ActionSelectionPopover after everything is
    initia...

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.