Nice work Joan!

I would like to point out one key design detail of the library. There is a
"frontend" (GUI components -- WLibrary, WLibrarySidebar, DlgRecording,
DlgAnalysis, etc.) and a "backend" (non-GUI components -- Library,
LibraryFeature, BasePlaylistFeature, CrateFeature, etc.).

There are a couple of reasons for this separation:
* The skin author can create multiple library widgets. All the frontend
widgets get connected to the library "backend" via the bindWidget methods
<https://github.com/mixxxdj/mixxx/blob/master/src/library/library.cpp#L178>.
* When we have an Android/iOS port, we will need a completely separate GUI
implementation but ideally we can reuse all the non-GUI backend code. (I
realize there are certain parts of GUI logic that got intertwined in the
LibraryFeatures over the years and for an Android port that would need to
be disentangled).

>From your design doc -- your class hierarchy seems to combine both frontend
and backend. The library frontend is split into 4 independent widgets
instead of a monolithic widget -- WLibrary, WLibrarySidebar,
WSearchLineEdit, and WCoverArt. We used to have one monolithic library
widget but this wasn't very flexible for skin authors -- for example we
would have to add configuration to control every possible option we could
think of (like where the cover art should be positioned, or whether to show
cover art at all) and it was very hard to style each widget independently.
Now that the widgets are split, we have full control over
grouping/positioning, style via <Style> blocks, etc. I would prefer that we
not go back to one monolithic library widget -- so I think one of the main
complexities of your design doc will be how to implement this functionality
while preserving this flexibility.

What will the widget hierarchy look like in your approach?

I think your design doc could use a section on how MIDI / HID control will
control the library once it goes split pane. Things could get very
confusing. Will controllers need a "focus" highlight to tell us which part
of the library e.g. a select knob is affecting?



On Tue, May 31, 2016 at 2:48 PM, Joan Marcè i Igual <j.marce.ig...@gmail.com
> wrote:

> Hi everyone,
>
> I have been working with the design of the new Library Layout and I have
> created
> a new page in the wiki (
> http://www.mixxx.org/wiki/doku.php/library_layout_redesign )
> showing all the ideas.
>
> With this new design the user will be able to show two library features at
> once
> (it can be decided by the user to show two library features or only one).
>
> I will be waiting to your feedback and thoughts about this design.
>
> Regards,
> Joan
>
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and
> traffic
> patterns at an interface-level. Reveals which users, apps, and protocols
> are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> _______________________________________________
> 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
>
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
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

Reply via email to