I finally got deserializing lists working. Exposing them to QML was not
a trivial task either. Note that I didn't do it the clean way. Nested
lists are not supported. But it works!
Because I got so frustarted at one point trying to implement things the
right way, I restructured the project to seperate the Sailfish code from
the Qt code and created a new, empty desktop project. The Qt code has
been transformed into a happy little library, to which the Sailfish OS
application links.
Note that QMake doesn't seem to strip the library for some reason.
Once again I couldn't stop myself from being sidetracked.
[Collections]: Added: allow specifying sort order (Ascending, Descending)
[General]: Improved: Added video fallback page to allow unknown video types to be played, although without extra metadata.
[General]: Improved: Added folder fallback, so unknown collection types are at least displayed without metadata.
Apparently the Jellyfin server may include different fields in the
resposne depending on which SortOrder you use. This causes the model to
generate new roleNames when changing its sortOrder, but the QML part
does not know of this happening and there's no way of notifying the QML
part as far as I'm aware of (if so, let me know). So whenever new
generateFields() is called, it shouldn't reset its roleNames map and
recreate it anew, rather, just append the new roleNames to the current
map. If a model in QML wants to use information used in fields which are
added by changing SortOrder, please add those fields explicitly in
Fields.
* There is a basic collection page, allowing the user to browse through
collections. It has a sort function, that sort of works
* Item cards now show a bar indicating play time
* Item cards now have a black/white (depending on theme) shim, improving
readability.
* The resume watching section now actually loads items
Features so far:
- Login is working, both on back-end and GUI-wise
- Saving and reusing login tokens is working
- The home page is mostly functional
- Show details can be received and displayed in a basic manner
Following features are taken into account, but have not been fully
implemented:
- Support for multiple accounts/servers
- Securely saving login tokens