D28383: Add PageRouter component

Marco Martin noreply at phabricator.kde.org
Wed Apr 1 10:33:47 BST 2020


mart requested changes to this revision.
mart added inline comments.
This revision now requires changes to proceed.

INLINE COMMENTS

> pagerouter.cpp:154
> +
> +void PageRouter::setRoutes(QJSValue routes)
> +{

should add parsing and validation here

> pagerouter.cpp:199
> +{
> +    QMetaObject::invokeMethod(m_pageRow, "pop");
> +}

pagerow.pop will pop the *current* page and everything on top of it, so you can't rely on its behavior, it should really use its internal columnview directly (of which you have c++ access there)

> pagerouter.h:55
> +     *     }
> +     *     routes: {
> +     *         "/home": homeComponent,

add an example route of a/more/complex/path

if i have /home/login, will it always be the same component as just /login? is not clear here

> pagerouter.h:84
> +     *     routes: {
> +     *         "/home": homeComponent
> +     *     }

how many routes an app would normally be going to have?

this seems really a thing for QQmlListProperty (which then each route must become a qobject tough)
so routes: [
Route {

  name: "home"
  component: homeComponent
  cache: true
  initialProperties: {"name": "value,...}

},
Route {}
]

which kindof becomes similar to pagepoolaction (which i still think they can be merged)

> pagerouter.h:121
> +     */
> +    Q_PROPERTY(QQuickItem* pageRow MEMBER m_pageRow)
> +

i'm not sure if i 
it hadles directly the creation of the components.. so it really doesn't have a reason of being a pagerow over columnView which is the internal implementation of pagerow.
in this paramenter, it should search for a columnview property or something like that which it can statically check if it's actually a columnview which will be able to access directly hopefully without needing any invokemethod

> pagerouter.h:168
> +     */
> +    Q_PROPERTY(bool cachePages MEMBER m_cachePages NOTIFY cachePagesChanged)
> +

this property would be better per page

> pagerouter.h:308
> +     */
> +    Q_INVOKABLE bool isNavigatedToRoute(QJSValue route);
> +

quite ugly name..
maybe isRouteActive

REPOSITORY
  R169 Kirigami

REVISION DETAIL
  https://phabricator.kde.org/D28383

To: cblack, #kirigami, mart, davidedmundson
Cc: davidedmundson, plasma-devel, fbampaloukas, GB_2, domson, dkardarakos, ngraham, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200401/78764b8d/attachment.html>


More information about the Plasma-devel mailing list