kiwix-desktop icon indicating copy to clipboard operation
kiwix-desktop copied to clipboard

Library should be rewritten in Qt

Open kelson42 opened this issue 2 years ago • 8 comments

The library is the view which allows to handle books, locally (when books are already downloaded) or remotely (from the online catalog) to download them. Here is how it looks like.

Local library (with filters): image

Online library (with filters): image

Although the whole Kiwix-Desktop software is written in C++, this part is a HTML rendering widget and the details are handled in HTML/JS/CSS with the framework vue.js. The problem with vue.js is that it needs a special effort to keep the visual coherence with the rest of the app in Qt. Actually there is no "real" reason why this part should not be in Qt. We should rewrite it in Qt.

Implementing this ticket is the first part of a larger effort to improve the usability of the library of Kiwix-Desktop which is currently really not good enough. See the project for a broader understanding https://github.com/kiwix/kiwix-desktop/projects/8.

The work to do is to provide something similar (maybe a few things can be changed at that time as well, but this is not the primary goall). The primary goal is to get rid of js/css/html. So, same sidebar and similar filters and on the righ pane the list of books with same features. All the core code is already in C++ in Kiwix-Desktop or Libkiwix, so this is to 90% only a UI work.

Here are the resources to have a look to:

kelson42 avatar Aug 28 '21 09:08 kelson42

Is this something which will be done by official people only (thought that because its mentioned in Projects) or can I give it a shot using QWidget and following the design like shown in InVision

juuz0 avatar Oct 22 '21 14:10 juuz0

@juuz0 No, I would be super glad if you could take it. This is actually the main concern I have currently with Kiwix Desktop. Obviously both @mgautierfr and me are here to guide you if needed... but this task is significantly more complex than what you have done so far.

kelson42 avatar Oct 22 '21 16:10 kelson42

@kelson42 Yea, I agree this will be significantly more complex but I've the time anyway. Thanks for the assurance with mentorship too, loved working with y'all till now.

I'll be starting soon, going to replicate the UI first then moving on to functionality :)

juuz0 avatar Oct 22 '21 16:10 juuz0

So, I'm thinking a QTableWidget/QTableView to display the library contents. @kelson42 @mgautierfr Thoughts? Are there any other better ways to display

juuz0 avatar Oct 25 '21 14:10 juuz0

@juuz0 On my side, as far as it looks like and behaves like in https://github.com/kiwix/kiwix-desktop/wiki/kiwix-desktop-2-concept It is good to me. @mgautierfr more to say?

kelson42 avatar Oct 28 '21 14:10 kelson42

I wonder if QML/QtQuick could be a solution here. I know a very little about QML (mainly the main principles/behaviors) so it is maybe a wrong idea. It would be nice to have a pro/cons comparison. (And the main question is : is it possible to have QML "widget" inside a Qt "cpp" widget)

Else, QTable* is probably a good idea if we stick to "cpp" widgets.

mgautierfr avatar Nov 15 '21 16:11 mgautierfr

This issue has been automatically marked as stale because it has not had recent activity. It will be now be reviewed manually. Thank you for your contributions.

stale[bot] avatar Jun 13 '22 03:06 stale[bot]

This issue has been automatically marked as stale because it has not had recent activity. It will be now be reviewed manually. Thank you for your contributions.

stale[bot] avatar Aug 14 '22 01:08 stale[bot]