I've been investigating this today and there's at leat two separate issues:
**Only** on the phone you get the log Timo attaches (or something along the lines). That is caused by QQmlPropertyValidator::canCoerce failing. I've talked to Simon Haussmann from Qt Company and the situation we have (two QQmlPropertyCache with different pointer but same QMetaObject pointer) is technically impossible, yet we're having it, if o change that function to do
while (fromMo && toMo) {
if (fromMo->metaObject() && toMo->metaObject() && fromMo->metaObject()->className() == toMo->metaObject()->className())
return true;
fromMo = fromMo->parent();
}
instead of the original loop comparing toMo and fromMo i can workaround the bug (but this is just a hacky) and get to the next bug
On the desktop (or on the phone after workarounding the first issue), you will get errors saying
"Unable to assign QSortFilterProxyModelQML to QSortFilterProxyModelQML"
These errors seem to be caused somehow by Ubuntu.Components since if i un-import it, they go away. You can also workaround them by changing the code from
property SortFilterProxyModel categories: categoryFilter
to
property var categories: categoryFilter
Which you could even argue it's better code in some cases, but still we need to investigate why it's happening.
In summary, there's two bugs: Bug #1 only happen on the phone (probably because of ARM) Bug #2 is triggered by importing Ubuntu.Components
Both need investigation. I'll continue tomorrow if noone beats me to it :D
I've been investigating this today and there's at leat two separate issues:
**Only** on the phone you get the log Timo attaches (or something along the lines). That is caused by QQmlPropertyVal idator: :canCoerce failing. I've talked to Simon Haussmann from Qt Company and the situation we have (two QQmlPropertyCache with different pointer but same QMetaObject pointer) is technically impossible, yet we're having it, if o change that function to do
while (fromMo && toMo) { >metaObject( ) && toMo->metaObject() && fromMo- >metaObject( )->className( ) == toMo->metaObjec t()->className( ))
if (fromMo-
return true;
fromMo = fromMo->parent();
}
instead of the original loop comparing toMo and fromMo i can workaround the bug (but this is just a hacky) and get to the next bug
On the desktop (or on the phone after workarounding the first issue), you will get errors saying yModelQML to QSortFilterProx yModelQML"
"Unable to assign QSortFilterProx
These errors seem to be caused somehow by Ubuntu.Components since if i un-import it, they go away. You can also workaround them by changing the code from Model categories: categoryFilter
property SortFilterProxy
to
property var categories: categoryFilter
Which you could even argue it's better code in some cases, but still we need to investigate why it's happening.
In summary, there's two bugs:
Bug #1 only happen on the phone (probably because of ARM)
Bug #2 is triggered by importing Ubuntu.Components
Both need investigation. I'll continue tomorrow if noone beats me to it :D