diumenge, 26 de juny del 2016

#7 Weekly report

Hello everyone,

this week have been the Midterm evaluations and everything in the schedule was working. I spend many time of this week studying for my last exams (electric engineering and logic) and I finally finished my 3rd course of engineering.

Also, I added the option to drag and drop from one table to another making the two (or more) panes layout more useful. I started too to code a breadcrumb for the panes that should allow the user to see what feature is shown in each pane.

Also talking with my mentor we Decided to pave the way to add features as plugins through the LibraryFeature interface and maybe a factory system.

divendres, 17 de juny del 2016

#6 Weekly report

Hi everyone,

this week has been a coding week. I fixed some of the last week bugs and added some new things. I implemented the following:


  • Fix bug with SidebarExpanded not focusing some panes.
  • Design new pane focus implementation as there can be multiple options where it can be changed the focus without the user doing it explicitly.
  • Implement new focus automatically switching and allowing the user a more confortable focus change
  • Add new LibraryLayout to LateNight skin
  • Add more evident focus in the panes this should also solve https://bugs.launchpad.net/mixxx/+bug/1584613
  • Add scrollbar to AutoDJ buttons and change space in Deere skin
  • Add library root node
  • Allow to right click in playlists/crates empty area to add a new playlist/crate
  • Fix missing treeview in Browse / Rhythmbox
  • Fix minimum track table width being to big: this was due the already existing Buttons in the AutoDj like features. Currently there are a couple still to be removed
  • Fix selection of the track table jumping around when the Library button is clicked repeatedly, this was due the Library was always sending the activate() signal to the LibraryFeatures although there were the currently shown feature.
  • Fixed Sidebar buttons chopped in some languages, this was due to the buttons had a fixed width when I added them in the Deere skin, now their size is the minimum needed size to be shown.
As I commented in the list we added a new feature focus behavior. Now all features have their "featureFocus" which helps the features know in which pane they are being shown. This is useful in features like AutoDJ or Library that only have to be shown once. When the user clicks a feature that it's already showing in some pane the focus changes to focus the pane where the feature is being shown. This is explained by Daniel in this pull request comment: https://github.com/daschuer/mixxx/pull/10#issuecomment-226400779 .
 

dimarts, 14 de juny del 2016

#5 Weekly report

Hi everyone,

I forgot last Friday to post my weekly report. This week I've been coding all the features discussed in the Mixxx-devel mailing list and the ones shown in the wiki. I added the following elements


  • Created the LibraryPaneManager class and implemented all the needed functions
  • Changed LibraryFeature class to respect the current design
  • Moved many functions from Library to LibraryPaneManager
  • Fixed broken things not compiling in all the features inheriting LibraryFeature
  • Added two panes example in the Deere skin
  • Separate AutoDJ widget in the SidebarExpanded Widget and the Pane widget

divendres, 3 de juny del 2016

#4 Weekly report

Hello everyone,

this Tuesday I finally finished classes and until June 23rd I will only have two or three exams per week and this will allow me to work more time in Mixxx.

During this week my mentor and I finished the idea of having multiple features showing at the same time in different panes. To handle this we created the LibraryViewManager concept and I wrote about it in the Mixxx-devel mailing list. Unfortunately the design was not correct and RJ made me realize about it. Many things that were going to be in the LibraryViewManager were already added in the Library class (which is in fact the Library Manager).

With this change I had to create another concept to manage the option to have multiple features showing at the same time in the library and I created the LibraryPaneManager that will handle all the
shown panes in the GUI. I spend some hours to finish the idea and I had to do several mockups, that are currently on the wiki.

 Then after I had to change many code that I've already added to fit the new idea and the new manager. The LibraryPaneManager idea is to have a manager for every pane shown in the Library GUI. Since there will be one left pane shared between all right panes the LibraryPaneManager purpose is to allow to add to the existing code as few changes as I can. And to do this I spend many time trying understand at 100% how the Library code works.

Here is an exploded drawing of how the features' widgets will go and how each pane manager will handle the right pane and the left pane.