Before this change a library entry having keyboard focus (selected with
tab and up/down keys) was not readable since the text was displayed in
white colour on light blue background.
Now ContentManagerModel returns for 0th column an icon object that can
be painted by `QStyledItemDelegate::paint()` correctly (albeit in a
slightly less indented position).
As a side-effect of this minor improvement of the design, the thumbnail
column is included in highlighting on mouse hover.
This change adds a new widget called KiwixChoiceBox
The design inspiration is taken from here: https://harvesthq.github.io/chosen/#multiple-select
setType() takes a string to put on the label
We can add possible choices using the setSelections() method
created ContentManagerHeader, inherited from QHeaderView, to implement not showing the sort indicator for first column.
Changed sort indicator position to left of text
When an item is hovered, colour changes to grey.
Change cursor to HandPointer in treeview
Open book description when item is clicked
Increase description box width
Added a menu on right click to show options.
Current actions supported:
1. Open Book (if the library is showing local files)
2. Download Book (if the library is showing remote files)
3. Delete Book
Use a new api of listBooksIds
Click on a column header sets the "activeSort" variable with the sort's type
and the "sortOrderAsc" to true or false according to ascending or descending
sort. These variables are used to set css classes and to set the m_sortBy
ContentManager's member and m_sortOrderAsc ContentManager's member which are
used to get the books id's list sorted.
To align vertically the flexboxes of the same column when the window is too
small, set the flexbox property "overflow" to "hidden" allows all these flexboxes
to have the same width no matter what its content