Initial attemp to migrate to a MVC-like structure, separating the UI elements from the programs logic and it's model data. For instance, I initially migrated the PlaylstPopupButtom to a Controller, and rewrote the PopupButton to accept a controller. This way, all PopupButtons are the same, but changing it's internall controller changes it's behavior and looks. This will also allows us to share a controller between UI elements, making the transitions from toolbar to sidebar and vice versa a lot easier.
Finished cleaning up the Controller concept, adding and removing some stuff to make it more concise and easy to use.
Ported the genre popup logic to a controller
Removed images from UI file
Completely removed the ported buttons from the sidebar, the catalog and the widgets module
Ported the SortPopup logic to it's own controller. Modified all the necesary code around it to adapt it
Ported decade popup logic to a controller
Various changes:
* Changed the widgets hierarchy; now the PopupButton and ImageToggleButton are based on the OptionsButton, that represents a button which various options connected to a controller that provides those options and which is the responsible of doing an action on the model when the UI gets certain signals.
* Modified the ImageToggleButton to accept more than two states. Not really necesary but it could come handy sometime.
* Added the create_pixbuf_from_file_at_size on the utils module. This function returns a pixbuf with the given width and height, created from a file. The reason to add this function is that the Pixbuf's constructor 'new_from_file_at_size' tries to respect the image scale, so if the given width and height aren't in the same scale (eg 1:2), one of the two gets ignored.
* Ported the logic of the SortOrderToggleButton to a controller, modifying all the necesary code for it to work.
Changed the name of the item_selected method for option_selected, since it's a somewhat more general name
Moved all the code related to the toolbar managment to a manager object, ToolbarManager. This object takes care of the creation of the toolbars and of the correct visualization of the selected toolbar position
Rewrote the search widget as a combination of a new widget (SearchEntry) and a controller (AlbumSearchEntryController). For that, I reacomodated some code and made a more diversified hierarchy on the widgets module, saving some code from being duplicated. Modified the code on the coverart_browser_source module to implement this new schema for the search entry. Now all the toolbar widgets from all the toolbars (topbar and sidebars) are synchronized through the controllers
Removed now unused popup ui file
Removed the now unused create_popup method from the ToolbarManager class
Fixed warning and some minor stuff on the SearchEntry widget
Moved the quick search to an independant widget. Probably gonna separate the logic from the widget in the future
various changes - still more to do to refactor and simplify
Divided the Album quick search logic into a standalone controller that connects to the quick search widget
Readded the has_popup construction parameter that I erroniously removed on d74d5ca
finished coding - to be tested with translations
Merge branch 'ui-controllers' into translationfixes