touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #97037
[Bug 1485674] [NEW] SortFilterModel doesn’t work with custom roles whose keys don’t start at 0
Public bug reported:
I wanted to replace a custom C++ model in webbrowser-app by a QML
SortFilterModel. My custom model simply does sorting by descending order
on a given role, but this didn’t work. I figured out the reason for
this: the source model being sorted has custom roles, and their keys
don’t start at 0. They are defined using an enum like so:
enum Roles {
Domain = Qt::UserRole + 1,
LastVisit,
LastVisitDate,
LastVisitedTitle,
LastVisitedIcon,
Entries
};
(see http://bazaar.launchpad.net/~phablet-team/webbrowser-
app/trunk/view/head:/src/app/webbrowser/history-domainlist-model.h#L42
and http://bazaar.launchpad.net/~phablet-team/webbrowser-
app/trunk/view/head:/src/app/webbrowser/history-domainlist-
model.cpp#L48).
The implementation of SortFilterModel has a
QSortFilterProxyModelQML::roleByName() method which incorrectly assumes
that role keys start at 0 (see http://bazaar.launchpad.net/~ubuntu-sdk-
team/ubuntu-ui-
toolkit/trunk/view/head:/src/Ubuntu/Components/plugin/sortfiltermodel.cpp#L112).
This method should be fixed to account for custom keys.
** Affects: ubuntu-ui-toolkit (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to ubuntu-ui-toolkit in
Ubuntu.
https://bugs.launchpad.net/bugs/1485674
Title:
SortFilterModel doesn’t work with custom roles whose keys don’t start
at 0
Status in ubuntu-ui-toolkit package in Ubuntu:
New
Bug description:
I wanted to replace a custom C++ model in webbrowser-app by a QML
SortFilterModel. My custom model simply does sorting by descending
order on a given role, but this didn’t work. I figured out the reason
for this: the source model being sorted has custom roles, and their
keys don’t start at 0. They are defined using an enum like so:
enum Roles {
Domain = Qt::UserRole + 1,
LastVisit,
LastVisitDate,
LastVisitedTitle,
LastVisitedIcon,
Entries
};
(see http://bazaar.launchpad.net/~phablet-team/webbrowser-
app/trunk/view/head:/src/app/webbrowser/history-domainlist-model.h#L42
and http://bazaar.launchpad.net/~phablet-team/webbrowser-
app/trunk/view/head:/src/app/webbrowser/history-domainlist-
model.cpp#L48).
The implementation of SortFilterModel has a
QSortFilterProxyModelQML::roleByName() method which incorrectly
assumes that role keys start at 0 (see http://bazaar.launchpad.net
/~ubuntu-sdk-team/ubuntu-ui-
toolkit/trunk/view/head:/src/Ubuntu/Components/plugin/sortfiltermodel.cpp#L112).
This method should be fixed to account for custom keys.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1485674/+subscriptions
Follow ups