masonm created this revision. masonm added reviewers: Kirigami, mart. Herald added a project: Kirigami. masonm requested review of this revision.
REVISION SUMMARY Currently PagePool allows pages to be pushed onto the stack but there is no way to pass initialization properties to the newly-created page. This change adds support for this, and also provides asynchronous object creation to speed things up a bit. TEST PLAN After running the following main.qml the page stack will first push a page with the default title "NO PROPERTIES" because it invokes the no-property behavior. Afterward the same page gets pushed on the stack but this time it sets the title to "PROPERTIES" using the passed-in properties object. // main.qml Kirigami.ApplicationWindow { id: window Kirigami.PagePool { id: pool } Kirigami.PagePoolAction { id: noprops text: "Action with props" pagePool: pool pageStack: window.pageStack page: "qrc:/TestPage.qml?hasProps=" + false } Kirigami.PagePoolAction { id: props text: "Action with props" pagePool: pool pageStack: window.pageStack page: "qrc:/TestPage.qml?hasProps=" + true properties: { title: "PROPERTIES" } } Component.onCompleted: { noprops.trigger() props.trigger() } } // TestPage.qml Kirigami.Page { title: "NO PROPERTIES" } REPOSITORY R169 Kirigami BRANCH add-pagepool-properties (branched from master) REVISION DETAIL https://phabricator.kde.org/D28468 AFFECTED FILES src/controls/PagePoolAction.qml src/pagepool.cpp src/pagepool.h To: masonm, #kirigami, mart Cc: plasma-devel, mart, fbampaloukas, GB_2, domson, dkardarakos, ngraham, apol, ahiemstra, davidedmundson