Merge lp://qastaging/~mhaulo/mixxx/multilevel_crates_playlists into lp://qastaging/~mixxxdevelopers/mixxx/trunk

Proposed by Mika Haulo
Status: Work in progress
Proposed branch: lp://qastaging/~mhaulo/mixxx/multilevel_crates_playlists
Merge into: lp://qastaging/~mixxxdevelopers/mixxx/trunk
Diff against target: 1727 lines (+748/-280)
19 files modified
mixxx/res/schema.xml (+29/-0)
mixxx/src/library/cratefeature.cpp (+146/-66)
mixxx/src/library/cratefeature.h (+10/-3)
mixxx/src/library/dao/cratedao.cpp (+118/-29)
mixxx/src/library/dao/cratedao.h (+12/-1)
mixxx/src/library/dao/playlistdao.cpp (+123/-38)
mixxx/src/library/dao/playlistdao.h (+15/-2)
mixxx/src/library/playlistfeature.cpp (+146/-77)
mixxx/src/library/playlistfeature.h (+9/-4)
mixxx/src/library/sidebarmodel.cpp (+6/-0)
mixxx/src/library/trackcollection.cpp (+1/-1)
mixxx/src/library/treeitem.cpp (+16/-1)
mixxx/src/library/treeitem.h (+8/-0)
mixxx/src/library/treeitemmodel.cpp (+16/-0)
mixxx/src/library/treeitemmodel.h (+3/-0)
mixxx/src/mixxx.cpp (+0/-20)
mixxx/src/mixxx.h (+0/-2)
mixxx/src/widget/wtracktableview.cpp (+88/-36)
mixxx/src/widget/wtracktableview.h (+2/-0)
To merge this branch: bzr merge lp://qastaging/~mhaulo/mixxx/multilevel_crates_playlists
Reviewer Review Type Date Requested Status
Daniel Schürmann Needs Fixing
Review via email: mp+62378@code.qastaging.launchpad.net

Description of the change

Oh hi!

Shame on me for letting this take so long... I wouldn't like to come up with any excuses, but I've had some difficulties in finding time for Mixxx lately.

Moving crates and playlists by dragging and dropping is not implemented in my branch, but I'm suggesting merging the current stuff now and adding the rest later. If there's anything that needs to be changed or fixed, just let me know. But I won't mind if someone else would like to do any finalization.

Thanks,

--
MH

To post a comment you must log in.
Revision history for this message
RAFFI TEA (raffitea) wrote :

Hey Mika,

thanks for your great set of new features.

Although there's enough time until 1.11 comes out, here are my preliminary concerns.

1. Crates and playlists follow the concept "A crate can have one or many subcrates which in turn can have subcrates too." I am not sure about the semantics here. Some of our commercial competitors use the concept of folder and playlist: A folder can have subfolders and playlists. A playlist cannnot have subfolders nor subplaylists". I would be glad to hearing other opinions.

2. You've introduced schema version #14. It is not really compatible with version 3.
If one creates subcrates with your branch, older Mixxx versions are not able to display the tree. Instead all your subcrates are leaves below the sidebar item of "crates".

3. Please add a comment to CrateDAO::getCrates() and PlaylistDAO::getPlaylists(). They both return a QMap which is sorted by its key value. I forgot that when I helped you out :-)

Tobias

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Hey Mika,

Thank you for your work!

Sorry for not including this in 1.11.

Here are some comments:

If I understand right, your concept turns Crates into virtual Folders, with files and sub-folders.
Each crate has exactly one parent crate.

I would prefer if a crate can be member of different parent crates.
This can be done for example by an additional table which stores the crates included in a parent crate.

I think We need also a duplication handling when deleting songs from a crate.
If you have the same track in crate "Rock" and in crate "Punk", you make "Rock" the parent of "Punk" and then delete it from "Rock" ...

Kind regards,

Daniel

review: Needs Fixing
Revision history for this message
Mika Haulo (mhaulo) wrote :

Hi Daniel & the team

> If I understand right, your concept turns Crates into virtual Folders, with
> files and sub-folders.
> Each crate has exactly one parent crate.

> I would prefer if a crate can be member of different parent crates.
> This can be done for example by an additional table which stores the crates
> included in a parent crate.
>

If I remember correctly (it's been a while since the last time I've worked on Mixxx...), the virtual folder thing you described is how it works right now. But I agree with you that it doesn't make sense to restrict a crate to only have one parent crate.

I'm not exactly sure how much time I have available for this task in the near future, so if you're in a hurry with this one, please feel free to take over the task. Even though the changes you proposed (including duplication handling and any other stuff needed) don't sound like anything huge, I might need some extra time to set up a development environment and to recap where I left off almost two year ago :-)

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Hi Mika,

Thank you for your comment.

It would be nice, if that can be part of 1.12.
But I have myself other tasks with a higher priority.

So I would be glad if you will find time later or someone else will pick up this task.

Revision history for this message
RAFFI TEA (raffitea) wrote :

> Hi Mika,
>
> Thank you for your comment.
>
> It would be nice, if that can be part of 1.12.
> But I have myself other tasks with a higher priority.
>
> So I would be glad if you will find time later or someone else will pick up
> this task.

I will probably continue on this branch unless you complete it.

Unmerged revisions

2741. By Mika Haulo

Some internal merge stuff

2740. By Mika Haulo

Merging from trunk

2739. By Mika Haulo

Merging from trunk

2738. By Mika Haulo

Added ability to expand and collapse crate/playlist trees

2737. By Mika Haulo

Quick fix to prevent a crash.

Mixxx was crashing if the last subcrate/playlist was deleted. I'm not sure
about the root cause (there's a null pointer, but why?), but this seems
to prevent the crash.

2736. By Mika Haulo

Merging from trunk

2735. By Mika Haulo

Bug fix: AutoDJ queue should not be in playlist tree

2734. By Mika Haulo

More restrictions to crate/playlist deletion.

If any parent or child crate/playlist is locked, deletion
is not possible.

2733. By Mika Haulo

Added menu action to indicate if there are no crates/playlists

2732. By Mika Haulo

Don't enable deletion of crate/playlist if any of its parents are locked

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.