On Fri, Mar 31, 2017 at 06:59:48PM +0300, Anast Gramm wrote: > Hello, I wrote a more detailed plan for those two features you metioned for > the project > scope. I will send it soon after some polishing. here it is (also in pdf below)
1 Nested Crates =============== A preview for the nested crates is included. Tree like view. (If you don't listen to the Jazz/Trance sub-genre of Dub, you should!! :D ) The following is derived by the comments on launchpad and my thoughts on them. 1.1 Overview ~~~~~~~~~~~~ 1.1.1 What can a crate contain? ------------------------------- A crate can contain the following: - Another crate (smart or not) - Songs 1.1.2 Can a song be in multiple crates? --------------------------------------- Yes. 1.1.3 What happens when I click on a crate ------------------------------------------ Recursively lists all the songs that exist in the crate or the subcrates that it contains. DISTINCT! (eliminates duplicate songs) ["mixxx's unique selling point!"] ["mixxx's unique selling point!"] https://bugs.launchpad.net/mixxx/+bug/671632/comments/37 1.1.4 What happens when I drag&drop a crate into another one ------------------------------------------------------------ If the crate you drag is a parent crate to the one you drop it then nothing happens. (or an error!) Else the drag crate and everything that it contains become members of the drop crate. (like moving files in a file system) 1.1.5 How do I insert a song to a multilevel crate -------------------------------------------------- You place the song to the crate you want it to become a member of. If you have multiple levels, the above still holds. If a crate/song belongs to a child, it belongs to the parent as well. 1.1.6 How many levels will be supported? ---------------------------------------- As many as the user wants. 1.1.7 What if I want two crates with different parents have the same name? -------------------------------------------------------------------------- Every crate will contain information about it's parent, so the following can work: Crate1/sameSubcrateName Crate2/sameSubcrateName 1.2 Implementation ~~~~~~~~~~~~~~~~~~ Here are some first thoughts on the way the above will get implemented. 1.2.1 Modifications ------------------- In order for crates to be able to hold both other crates and songs some modifications need to be made in the database schema. A new table with columns: PARENT_ID CHILD_ID --------------------- ... ... Here the CRATE_ID will be linked with other CRATE_ID's depending on the parent/child state of those. While populating this table checks will occur so that a crate can't be it's own parent, or a child can't have his parent as a child etc. The whole crate side of the database might need a revamp for this to work efficiently and be expandable at the same time. I will look at it in depth in time. 2 Search filter for Crates ========================== Due to the nested crate's complexity I will work on search filters first, while keeping in mind the future adjustments it might need in order to work well with nested crates. 2.1 Overview ~~~~~~~~~~~~ 2.1.1 What is the search filter for crates ------------------------------------------ Typing "crate:" in the search bar, will act like a filter listing whatever any song within a crate named whatever comes after "crate:" (fuzzy style). Like "artist:" 2.1.2 What about nested crates ------------------------------ Say you have a top level crate named (creatively) Crate1 with subcrates and songs nested under it. Typing crate:Crate1 in the search will list every song this crate contains and every subcrate's song as well. 2.1.3 What about the same name subcrates we talked before --------------------------------------------------------- Typing crate:sameSubcrateName will get you both the crates with the same name. If you want your search to stay in one crate you have to type it's parent crate (in case this is the same as well, you need the full path) 2.2 Implementation ~~~~~~~~~~~~~~~~~~ Here I will make things work like the other filters, already existing (artist: etc). I believe this part will be not that hard to pull off. I will have a more detailed plan for the implementation after the community bonding period where I will read the whole code, and understand it completely.
notes.pdf
Description: Adobe PDF document
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Get Mixxx, the #1 Free MP3 DJ Mixing software Today http://mixxx.org Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel