[WIP] move all the real models into a thread distinct from the UI thread to not block
AbandonedPublic

Authored by mgallien on Mar 9 2018, 6:33 AM.

Details

Reviewers
None
Group Reviewers
Elisa
Summary

move all the real models into a thread distinct from the UI thread to not block

mostly works like before but without blocking the UI thread

not

Test Plan

Manually test and did not notice too much problems.
Need more tests.

Diff Detail

Repository
R255 Elisa
Branch
threadedMediaPlayList
Lint
No Linters Available
Unit
No Unit Test Coverage
mgallien requested review of this revision.Mar 9 2018, 6:33 AM
mgallien created this revision.

Someone once said to me that large diffs are hard to review :)

Just from reading the code, the idea is to put the mediaplaylist to the worker thread the same as all the models, and the proxy model is basically used for interacting with the gui? If so, I'm not so sure abut this approach. Basically we are not using the functionality of qsortilterproxymodel at all, it's just an additional layer between interface and model. Or do you plan to use some of the sorting/filter options?
Can't this also be achieved by moving the playlist to the different thread and connect it by signals?

I haven't tested yet, but some comments/questions inline

src/elisaapplication.cpp
270

Does the proxy model really have to know about the ensurePlay signal?

src/qml/ElisaMainWindow.qml
877

You are reverting changes I made here. Did you do this on purpose or is this a leftover from rebase? I didn't like the extra variable just for one view, that's why I removed it and pushed the loading of the album data to the models.

Someone once said to me that large diffs are hard to review :)

Just from reading the code, the idea is to put the mediaplaylist to the worker thread the same as all the models, and the proxy model is basically used for interacting with the gui? If so, I'm not so sure abut this approach. Basically we are not using the functionality of qsortilterproxymodel at all, it's just an additional layer between interface and model. Or do you plan to use some of the sorting/filter options?
Can't this also be achieved by moving the playlist to the different thread and connect it by signals?

I haven't tested yet, but some comments/questions inline

I am working on splitting this diff to only include the fast restore of big playlist on start. This one will already be quite big due to changes to the automatic tests.

mgallien abandoned this revision.Jun 6 2018, 6:38 PM