Explore unifying and factoring all the views
Closed, ResolvedPublic

Description

Explore the feasibility to move all real models to a not UI thread. Replace the models in the UI by proxy models.
After that, try to have a generic view that can display both all albums and all artists views.
After that, try to have a generic view that can display both one album and all tracks views.

This is necessary to allow the user to customize the kind of views he has. That should allow to match the "Simple by default, powerful when needed".

mgallien created this task.Jan 1 2018, 11:25 PM
mgallien triaged this task as High priority.
mgallien moved this task from Backlog to In Progress on the Elisa board.
mgallien moved this task from In Progress to Backlog on the Elisa board.Jan 2 2018, 9:44 PM
mgallien moved this task from Backlog to In Progress on the Elisa board.Jan 2 2018, 9:51 PM
mgallien raised the priority of this task from High to Unbreak Now!.

While sitting bored in the train for a couple of hours I started working on implementing T6294 which requires some changes to the proxy filter models. I came up with a working solution, but I've seen you started working on this one here.
Since they may interfere, I'd like to know if it still worthwhile pursuing my solution.

The plan is:
-move all the model classes (e.g. allartistmodell.h/cpp, albummodel.h/cpp etc. and the albumfilterproxymodel) to a new subdirectory "models". This is just to structure the code a little bit.
-add dedicated proxy models in the new subdirectory for allartists and alltracks (maybe with a common base class), which implement an enqueue method that adds all filtered entrys to the playlist. This can also be used for sorting in the future.
-add the enqueue and replace and play buttons

What do you think?

While sitting bored in the train for a couple of hours I started working on implementing T6294 which requires some changes to the proxy filter models. I came up with a working solution, but I've seen you started working on this one here.
Since they may interfere, I'd like to know if it still worthwhile pursuing my solution.

The plan is:
-move all the model classes (e.g. allartistmodell.h/cpp, albummodel.h/cpp etc. and the albumfilterproxymodel) to a new subdirectory "models". This is just to structure the code a little bit.
-add dedicated proxy models in the new subdirectory for allartists and alltracks (maybe with a common base class), which implement an enqueue method that adds all filtered entrys to the playlist. This can also be used for sorting in the future.
-add the enqueue and replace and play buttons

What do you think?

I only added a couple roles in the existing models without any extra modifications. I have created a new grid view and delegate that should be able to display albums, artists and tracks. I am missing the open action at this time. I would like to do the same thing for a list view.
I have reused FilterBar and NavigationBar without any modifications.

There are two options:

  • we wait for the merge (especially if you modify only NavigationBar) ;
  • we create a branch and work together on both modifications ;

What do you prefer ?

If the data models doesn't change, I can wait until the merge. I have to discuss with the VDG about the placement of the button anyways.

I am working on D9444 and will finish the grid view after that.

mgallien moved this task from In Progress to Done on the Elisa board.Jan 14 2018, 8:25 PM
mgallien closed this task as Resolved.